このページにはプロモーションが含まれています 

Windows Phoneの開発が思ったよりも大変だった件

なにぶん、日本ではほとんど情報がないので、割と最近知ったのですが、
普段は99ドルする開発者登録が、今月末あたりまで19ドルになっているとかで、

https://dev.windowsphone.com/ja-jp/join
>6/26/2013 12:00 AM PST から 8/27/2013 12:00 AM PST の期間有効です

いい機会なので、開発者登録してみようかと思って、思いつきで始めてみるものの、
いやはや、これが予想以上に大変。

そもそも、開発環境を用意するところからつまづきまくり。
Visual Studio 2012に関しては無料版もありますし、当たり前なのでまぁこれはともかく、
エミュレータの動作にHyper-Vがある環境が必要とかで、Windows 8の64ビット版が必須になっています。
この時点でかなりの人が新規インストールを迫られるんじゃないかと・・・(笑

それから、この他にもエミュレータを動作させるための環境として、
ホストOS(Windows 8側)のインターネット接続設定が自動取得である必要があります。
つまり、なぜかDHCPからIPを拾ってくる環境でないとエミュレータが正しく動作せず、
プロキシを噛ましてあったり、うちみたいに静的にIPを振っている環境だとNGとの事。
これに気付くまでに2日くらい掛かりました(笑
仕方ないので、ローカルに無意味なルータを設置してぶら下げてその場しのぎ。

ようやく開発が始められるようになっても、なかなか思うようにいかず、
Windows Mobile環境で.NET Compact Framework 2.0を触っていたのがほぼ最後だった身としては、
隔世の感がありまくりで、右も左も分からない状態。

最近のWindows PhoneやWindowsアプリ向けの推奨仕様として、
「応答なし」の原因になる同期処理を極力無くして、
別スレッドを立ち上げて非同期処理をするようにしようね、というのがあって、
時間の掛かる可能性のある処理に関しては、同期処理用のAPI自体が削除されており、
Windows Mobile時代のソースがほとんど流用できないという・・・。
まぁ、それだけ糞コーディングだったと言われると反論の余地も無いですが(笑
一応、asyncとawaitが使えるので同期的な記述でも適当に誤魔化せるみたいですけどね。

それで思い出しましたが、デフォルトでWebRequest/WebResponseクラスが使えず、
NuGetから別途インストールする必要がある事までは分かったものの、
そのNuGetパッケージマネージャ自身を更新する必要があった事に気付かず、これも相当悩んでしまいました。

あと、EncodingクラスがSHIFT-JISに対応していないらしく、愕然。
なんで.NET Compact Framework 2.0より退化してんねん・・・。
そして肝心なクラスが抜けてるところだけは相変わらずしっかり引き継がれてますし。

・・・とまぁ、いろいろ文句言いまくりですが、
んじゃあ、今更EclipseでのJavaや、Mac環境でObjective-Cとかの方がいいのかというと、
そんな事もないと思っていますので(どっちもほとんど触ったこと無いですが・・・笑)
開発環境に関してはマイクロソフトに一日の長があるとは思っていますよ。ええ。

ただ、いかんせん日本に全然展開していないだけあって、やっぱり情報がちょっと少ないというか。
自分のような、分からない実装はすぐWebの情報に頼ってしまうようなヘタレな人の場合は、
とにかく絶対数が少ないというのは、悩ましいところではあります。

もちろん、マイクロソフト自身をはじめ、各社のライターさんやユーザーの方々が、
開発に必要な情報を提供してくれるように結構頑張ってくれてはいますが、
やっぱり、まずはどこかしらのキャリアで端末が採用されることが一番だと思いますので、
その辺に関しても、頑張ってもらいたいですね。

ちなみに、今回お試しで作っていたのはこんな感じのニュースを読むやつ。

灰鰤のW+Infoの代わりになればいいかな~、くらいの軽い気持ちで始めてみたものの、
今後、無事完成して人様の目に触れる機会ができるのかどうか・・・。
そもそも、.NET Framework 4.5とか、XAMLとか、全体的に相当いい加減な知識しかないので、
適当に作ったところで、実際審査が通るのか、という深刻な問題もあります(笑

ま、今後何か良い方に進展があったら、ここでも報告していきたいと思います。

今回の件でふと思ったこと。
WP8よりもRTの方が真剣に心配になってきた。
いや、もちろんRT機なんて持ってないけど(笑

コメント

タイトルとURLをコピーしました