スポンサーサイト

--年--月--日
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

3S Tweet for Windows Phone 7 を作った

2011年04月24日

3stweet-001 今月、初のWindows Phone 7 用アプリを Marketplace にアップしました。

まだ、日本向け端末がないので、当然英語版です。

今日、ダウンロード数を見ると、やっと1本購入していただけました。

初の Silverlight プログラムとして苦労しましたが、使っていただけるとうれしいですね。

3S Tweet for Windows Mobile も C# で書いていたので、多くの処理は流用できましたが、WinForm と違い Silverlight は Web Page に近いため、画面をいろいろ作ると画面間の移動に苦労しました。

 

 

特に、途中でスリープに入ったり、スタート画面に移動したりしたときの処理、Tombstoning 処理が大変。Windows Mobile プログラミングとの一番の違いはここでした。

 

ある画面(親画面)から次の画面(子画面)に遷移した後、子画面を閉じると親画面に戻りますが、その単純そうな処理ですら工夫が必要です。

 

WinFormプログラムだと、親画面は残ったままなので、子画面を閉じると子画面を開いたときの状態の親画面が表示されます。

 

しかし、Silverlight プログラムは基本 Webページと同じ。子画面に移ると親画面は閉じられます。子画面を閉じて親画面を表示するのは、ブラウザで「前のページに戻る」と同じなので、親画面は再描画されます。

 

その際、子画面を呼び出したときの状態に戻すには、子画面を呼び出したときの状態についての情報が必要なのです。

 

したがって、子画面に移動する際は、親画面の状態を保存し、親画面に戻ってきたときは保存した情報を読み込み再現する処理が必要になります。

 

これが、かなり面倒。
画面構成を工夫しないと保存・再現の処理が増えてしまいます。

 

 

もうひとつの難関は通信系。

 

基本は非同期通信のため、同期通信を行っていた Windows Mobile のプログラムは流用できませんでした。

 

同期通信であれば、通信結果を得るまでまって処理を継続すればよいのですが、非同期通信のため、通信結果はイベントで受け取ることになります。

 

その間、必要ならばUIをロックする処理を入れる必要があったり、複数回の通信を行う場合の処理などを工夫する必要がありました。

 

 

とりあえず今回、3S Tweet を Windows Phone 7 に移植することで、Silverlight プログラミングの一端を学ぶことが出来たのはよかったです。

 

これからがんばって、2個目3個目のアプリを作っていきたいですね。

Comment

管理者のみに表示

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。