いばらを介しお垂堎ぞ

画像

Windows Phone 7.5でアプリケヌションを開発し、それをWindows Phone 8に移行した経隓ず、䞀般的な芋通しに぀いお考えたいこずを共有したいず思いたす。 私自身は最近、Web開発からモバむルに切り替えたばかりであり、ただあたり経隓がないため、この情報は䞻に初心者の開発者に興味がありたす。


Windows PhoneWPの開発は地獄だずいう蚘事を読んだ埌、すぐにお話ししたす。
マむクロ゜フトのスタッフは玠晎らしいです。優れたSDK、手頃な䟡栌のポリシヌ、倚くのドキュメント、優れたコミュニティ、C-これらすべおが、開発プロセスを快適で刺激的なものにしたす。 私が盎面した困難を正確に䌝えたいだけです。

私がやったこずに぀いお少し。 タスクは非垞に簡単でした
Iphone、Android、Ipad、Mac os、Windows 興味のある人 に成功したアプリケヌションがあり、それをWPに転送する必芁がありたした。 Microsoft Phone垂堎でWindows Phone 7.5が最前線にあり、Windows Phone 8が登堎しようずしおいたずきに開発を開始したした。問題を明確にした埌、次に䜕を曞くか、どのように曞くかを決めたした。 䜕を曞くべきかに぀いお質問がなければ、私は曞く方法に぀いお考えなければなりたせんでした。 実際、WP7プラットフォヌム甚のアプリケヌションを既に䜜成したしたが、それは単玔であり、耇雑なデザむンパタヌンを必芁ずしたせんでした。 MVVMパタヌンのクヌルさに぀いお読んだ埌、私はそれを詊しおみるこずにし、その実装のためのフレヌムワヌクを探し始めたした。 䜕よりも、 Mvvm Lightツヌルキットがシンプルで入門のしやすさで気に入っおいたした 。 MVVMの䜿甚のおかげで、WP8ぞの移行プロセス、そしおWindows 8ぞの移行プロセスがはるかに簡単になりたした。

蚭蚈

蚭蚈に非垞に長い時間がかかりたした。 私たちにずっお、これは初めおの経隓であり、倚くの埮劙な点がありたした。 さらに、矎しく芋えるものすべおが電話ですぐに機胜するわけではありたせんたずえば、ピボットずパノラマの遞択。 すぐに明るいトピックず暗いトピックをサポヌトするこずに決めたので、ペヌゞの背景を遞択するこずに長い間悩んでいたしたが、私たちに合ったオプションは思い぀きたせんでしたApplicationBarぞの別のこんにちは、これは目障りです。 アプリケヌションのすべおのメニュヌずApplicationBarの内容保存、削陀、キャンセル、远加など、最も必芁なものだけが含たれおいたすをすぐに怜蚎するこずをお勧めしたす。 アクセントカラヌをどのように䜿甚し、さたざたなトピックでどのように芋えるかを考えおください。 グリッドを詊しおみたしたが、成功したせんでした。 それから、最初にハヌフピクセルが8であるこずを知りたしたアプリケヌションでは、今日でも8がポップアップしたす。 ミニマリズムは良いですが、䜕かを際立たせるこずは本圓に難しいです。

コンポヌネントずコントロヌルはどうですか

必芁なすべおのコンポヌネントずコントロヌルはありたすが、すべおが正垞に機胜するわけではありたせん。 Windows Phone Toolkitを䜿甚しお開始したした。 すべおがうたく機胜したしたが、耇雑さに関しおは、特にパフォヌマンスずナヌザビリティに関しおは、ファむルに取り組む必芁がありたした。 䜕よりも、速床が䜎䞋したLongListSelectorに倢䞭になりたした。 䌚議の1぀で、私はRadControlsに぀いお聞いたこずがありたしたが、他の人ず仕事をするこずができなくなりたした。 それらは高䟡ではありたせんが、倚くの時間を節玄し、TextBox、PasswordBoxなどの暙準的な芁玠でさえもはるかに䜿いやすいです基本的なアニメヌション、クリアボタン、PasswordBoxでアスタリスクを開く。 この問題は、Multiselect ListPickerで発生したした。これは、Two-wayデヌタバむンディングの䜿甚を完党に拒吊し、少しシャヌマンにならなければなりたせんでした。

さらに、いく぀かのこずに倢䞭になりたした。

-仮想キヌボヌドは、衚瀺されるずフォヌムの䞋郚を芆いたすが、この機胜ではすべおのペヌゞで戊ったため、完党に勝぀こずはできたせんでした。 ScrollViewerで各フォヌムをラップし、キヌボヌドが衚瀺されたら䞋郚からマヌゞンを远加する必芁がありたした。 Iphoneのように機胜しない理由が本圓にわかりたせん。
画像

-仮想キヌボヌドの↲ボタンを抌しお遷移しおも、フォヌカスは別の芁玠に移動したせん。自分で凊理する必芁がありたす。 このような単玔な操䜜のために、トリッキヌなヘルパヌを䜿甚したした

-仮想キヌボヌドが開いおいるずきに芁玠のフォヌカスを倉曎するず、フォヌカスが移動するスリヌプ芁玠がキヌボヌドの䞋にあるずいう事実に぀ながりたす。 focusを抌しおタむトルを元のタむトルに倉曎したした
画像

-フォヌカスが双方向のDataBindingフィヌルドを離れるたで、それは起こりたせん。 たずえば、䞊の図に瀺されおいる状況で、AppBarの保存ボタンをクリックするず、ViewModelの[元のタむトル]フィヌルドにあるすべおのものが衚瀺されなくなりたす。 これはコヌドで回避する必芁がありたした

private void UpdateSource()

{

object focusObj = FocusManager.GetFocusedElement();

if (focusObj != null && focusObj is TextBox)

{

var binding = (focusObj as TextBox).GetBindingExpression(TextBox.TextProperty);

binding.UpdateSource();

}

if (focusObj != null && focusObj is Telerik.Windows.Controls.RadTextBox)

{

var binding = (focusObj as Telerik.Windows.Controls.RadTextBox).GetBindingExpression(Telerik.Windows.Controls.RadTextBox.TextProperty);

binding.UpdateSource();

}

}


-ApplicationBarはコマンドでは機胜せず、プログラムでのみロヌカラむズできたす。 さらに、動的なApplicationBarたずえば、各ピボットアむテムに独自のApplicationBarがあるを䜜成するこずは、䟝然ずしお束葉杖です。 Expression Blendの非垞に悪い友人であるBindableApplicationBarを䜿甚する必芁がありたした。

-ペヌゞに倧量のテキストを衚瀺したい堎合は、制限ずいう圢で倱望し、2048x2048ピクセルに収たらないものはすべおMicrosoftブラックホヌルに吞収されたす。この蚘事だけが圹立ちたす。

-さたざたな画面で同じように芋えるように写真を操䜜するのがどれほど簡単か、私は理解しおいたせんでした

デヌタベヌス

デヌタベヌスは最倧の問題であるこずが刀明したした。 バヌゞョンWP7.5およびそれ以降には、独自の組み蟌みDBMS-SQL CEがありたす。 プログラムの最初のバヌゞョンは、このDBMSに実装されたした。 Iphone、Ipad、Android、その他のOS甚のプログラムはSQliteを䜿甚しお䜜成されたず蚀わなければなりたせん。 しかし、WP7の堎合、その時点では公匏ドラむバヌはありたせんでした珟圚でもドラむバヌがないため、Windows Phone 8のバヌゞョンでのみ登堎したしたが、非公匏ドラむバヌには連絡したくありたせんでした。 これはクラむアントにずっお少しショックでしたが、既補のsqliteデヌタベヌスをSQL CEに移怍し、モデルを䜜成し、関係、むンデックスなどを蚘述したした。

少量のデヌタを凊理する堎合、デヌタベヌスは問題なく動䜜したしたが、レコヌド数が数千を超えるず、ここから具䜓的なブレヌキが開始されたした。 長い間、私はデヌタベヌスでの䜜業を最適化しようずしたしたが、䜕もできたせんでした。 さらに、無料版のスタゞオがあり、デヌタベヌスの操䜜には少し問題があり、ビュヌアヌがむンストヌルされおいなかったため、sdfファむルを長く退屈な時間操䜜するプログラムを芋぀ける必芁がありたした。

その埌、Windows 8 \ RTでの開発を開始するこずが決定されたしたが、Windows 8 \ RTはSQL CEをサポヌトしおおらず、sqliteの䜿甚を掚奚しおいるこずが刀明したずきの䞀般的な驚きでしたその頃たでにWindows 8 \ RT甚のsqliteドラむバヌはすでにリリヌスされおいたした電話8。

衝撃でした。 すべおに぀たずいたので、Windows 7.5でsqliteを操䜜するためのオプションを探すこずにしたした。 倚くの時間を費やしお、時代遅れのラむブラリを芋぀けたした。 幞いなこずに、これにはトランザクションサポヌトが含たれおいたため、それなしでは䜜業できたせんでした。 ラむブラリを操䜜する小さなヘルパヌが䜜成されたした苊しんでいる人に䞎えるこずができたす。 そしお、すべおがうたくいくように芋えたが、それでも今日たでその䞭のわき柱を掘り䞋げおいる。 さらに、UTF8では非垞にうたく機胜したせん。

個人的には、デヌタベヌスを操䜜する必芁がある堎合は、sqliteのみを䜿甚し、Windows Phone 8以降のみを䜿甚したす。

サヌバヌを操䜜する

サヌバヌでの䜜業はそれほど難しくありたせんでした。 RestSharpラむブラリヌ.NET甚のシンプルなRESTおよびHTTP APIクラむアント http://restsharp.org/は、APIを䜿甚するのに圹立ちたした。 唯䞀の問題は、同期ク゚リを実行するこずでした。 WP7では、デリゲヌトを䜿甚しおこれを行うこずができたす。 確かに、コヌルバックの耇雑さに完党に混乱し、リファクタリングしなければならなかったように思えた。

さらに、SSLを䜿甚するこずは䞍可胜であるこずが刀明し、非垞に残念です。 しかし、䞀般的に、すべおがデヌタベヌスを操䜜するほど怖いわけではありたせん。

ロヌカリれヌション

ロヌカラむズに特別な問題はありたせんでした。 プログラムの最初のバヌゞョンでは、12蚀語をサポヌトするこずが決定されたした。 翻蚳は、サヌビスhttp://www.icanlocalize.comを䜿甚しお行われたした。 サヌビスの動䜜に぀いお䜕も悪いこずは蚀えたせんが、1぀ありたす。それはIphone \ Androidでのみ動䜜し、XMLをresxに、たたはその逆に倉換するためのコンバヌタヌを䜜成する必芁がありたした必芁な堎合は提䟛できたす。 繰り返しになりたすが、Windows PhoneずWindows 8 \ RTの間でロヌカラむズファむルにわずかな非互換性がありたすMicrosoftは非垞に゜フトです。 AppBarのロヌカラむズでは小さな問題が発生したしたが、簡単に回避できたす。

「䞇歳」新しいりィンドり

開発が動いおいる間、新しいWP8があるずいうニュヌスは垞に聞かれたした。 2012幎6月にWindows Phone 8が発衚された埌、Windows Phone 7.5ベヌスの電話はWP8では動䜜しないが、欠陥のある曎新プログラムを受け取るこずが明らかになりたした。 これは私たちにずっおかなり䞍快なニュヌスであるこずが刀明したした。 蜂蜜のスプヌンは、WP7.5甚に曞かれたプログラムがWP8を搭茉した携垯電話で動䜜するこずですが、新しいOSのすべおの機胜を䜿甚するこずはできたせん。 私たちは考えたしたたあ、OK、私たちは圌らのために圹に立たないようです。 しかし、電話は泚文されたした。

電話が到着したずき、新しいスタゞオ2012をむンストヌルする必芁がありたした 。その埌、スタゞオに加えお、新しいラップトップを賌入したす SLATテクノロゞヌをサポヌトするi3より䞊のプロセッサヌが必芁なため 。 そしおもちろん、Windows 8それがなければ...。 䞀般的に、移行は時間ずお金の䞡方で非垞に費甚がかかるこずが刀明したした。 WP8にむンストヌルし、叫び、考えたした次に䜕をすべきか。 もちろん、すべおがそれほどひどいわけではありたせんでしたが、この圢匏で倖に出おはならないこずが明らかになりたした。 䞻な問題は写真、スプラッシュ画面、アむコンにありたしたが、䞀郚のコンポヌネントは動䜜したせんでした。 http://developer.nokia.comの蚘事は、この問題の解決に圹立ちたした。
あなたが芋るこずができ、 ここにありたす

1぀の゜リュヌションでバヌゞョンごずに個別のプロゞェクトを䜜成するこずで、MVVMパタヌンを䜿甚するこずを最初から決定したこずを垞に嬉しく思いたした。

MARKETplaceで

アプリケヌションには既に独自のコミュニティがあったため倚くの人が同時に異なるプラットフォヌムで携垯電話を䜿甚しおいるこずは私にずっお啓瀺でした、私たちはBetta Testingを行うこずにしたした。 WPの電話でフォヌラムの人々を招埅するこずで、テストを開始したした。 ゚ラヌを修正するのに玄2か月かかり、同時にデザむンを倉曎しお機胜を匷化したしたすべおクラむアント甚。 テストに参加しおくれた人々に感謝したす。

ストアぞのアプリケヌションのダりンロヌドは迅速で、認定には8日かかり、初めお合栌したした。 唯䞀の手間はスクリヌンショットの準備にありたした。各蚀語甚に独自のスクリヌンセットを䜜成する必芁があり、12の蚀語がありたす。 販売が開始され、すぐに1぀のバグが衚面化したため、緊急に修正する必芁がありたした。 10分で修正し、認定の曎新を送信したした。 マむクロ゜フトで、発生したこずの説明ず認定を促進するためのリク゚ストを蚘茉したチケットを䜜成したした。 応答も加速も受信したせんでした-7営業日8および週末9を考慮したす。9日の興奮ず自己鞭打ち。前のケヌスからどこで䜕が倉わったのかを確認するために、そのような堎合は別の認蚌メカニズムを行う必芁があるず確信しおいたす少なくずも重倧な゚ラヌの堎合、バヌゞョンはあたりにも時間がかかりたせん。

゜ヌシャルネットワヌク、サむト、およびニュヌスレタヌに広告を掲茉したした。 圌はすでに他のプラットフォヌムでこのアプリケヌションを起動した経隓があったため、販売の開始は䜎迷し、クラむアントはすぐにダりンしたした。 圓然、発売時のダりンロヌドず賌入のピヌクの埌、販売の緩やかな枛少が始たりたした。 これたでの売䞊は、1日あたり平均10個のアプリケヌションであり、これは他のプラットフォヌムず比范しお非垞に䜎い指暙ですAndroidでは1日あたり50回、iPhoneでは150回賌入。
画像
ダりンロヌド統蚈は次のようになりたす。
画像
たあ、iPhoneやAndroidず比范しお
iPhone
アンドロむド

売り䞊げがそれほど䜎いずいうこずではなく、そのような䜎い売り䞊げでアプリケヌションのトップペむドレヌティングにランク付けされたこずは非垞に䞍満です。

-むタリア、スりェヌデン、ノルりェヌ40䜍

-アメリカ70䜍

-スむス16䜍。

-チェコ共和囜6䜍

-フランス50䜍

そしお、圌らのカテゎリヌの内郚で、1䜍/ 2䜍です そしお、これはそのような䜎い賌入で!!!
トップのアプリケヌションのパフォヌマンスはわずかに向䞊しおいるず想定できたす。

もちろん、有胜なプロモヌションが必芁ですが、売り䞊げが2倍になったずしおも、Androidに远い぀くこずはなく、アプリケヌションのさらなる開発の費甚はかかりたせん。

今日、残念ながら、顧客はWPプラットフォヌムのアプリケヌションをサポヌトし続けるこずの適切性の問題を解決し、このプラットフォヌムで将来連絡する䟡倀があるかず思いたす。

Source: https://habr.com/ru/post/J195796/


All Articles