つづいて壁登りロボット
「作っては壊す」過程があってこそ良いものが作れる

モバイル・プログラミング入門:非同期通信でおもてなし

Hatena2  Cocoaのネットワークライブラリ上で、非同期HTTPでXMLを取得するクラスを作ったのでそれのテストを兼ねて、iPhone用「はてな人気エントリー・リーダー」を少し進化させてみた。

 アプリを立ち上げると、最初に取得するのは人気エントリーのRSSフィード。残念ながらこのフィードには各エントリーのブックマーク数に関する情報が含まれていないので、さらにXMLRPCでそれを取得しなければならないのだが、それが取得できるまでユーザーを待たせるのは好ましくない。

 そこで、RSSフィードを取得しだいすぐにタイトルのみ表示し(青字のテキスト)、ブックマーク数の取得は非同期にバックグラウンドで行い、情報が取得できしだい後から表示するようにした(赤字の部分)。

 実際に走らせると青字のタイトルが表示されてから、少し遅れて赤字のブックマーク数が表示される。もちろん、ブックマーク数が表示される前からリストをスクロールすることもエントリーを選択することもできるので、ブックマーク数に興味が無い場合はどんどん先に進める。

 モバイル端末で動くアプリケーションを作る時に注意を払わなければならない点は幾つかあるが、この手のきめ細かな工夫によりネットワーク遅延によるストレスをユーザーにできる限り感じさせない様に作ることは、重要項目の一つ。

 3G→4Gとネットワークが進化するとビットレートは高くなるのだが、ネットワーク遅延は必ずしも小さくならないので注意が必要だ。ブロードバンドだと100ms程度ですむ遅延が、ワイアレス・ネットワークだと数秒になることもあるということは覚えておいて損は無いだろう。

Comments

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment

Your Information

(Name is required. Email address will not be displayed with the comment.)