モバイル・プログラミング入門:非同期通信でおもてなし
2008.03.27
Cocoaのネットワークライブラリ上で、非同期HTTPでXMLを取得するクラスを作ったのでそれのテストを兼ねて、iPhone用「はてな人気エントリー・リーダー」を少し進化させてみた。
アプリを立ち上げると、最初に取得するのは人気エントリーのRSSフィード。残念ながらこのフィードには各エントリーのブックマーク数に関する情報が含まれていないので、さらにXMLRPCでそれを取得しなければならないのだが、それが取得できるまでユーザーを待たせるのは好ましくない。
そこで、RSSフィードを取得しだいすぐにタイトルのみ表示し(青字のテキスト)、ブックマーク数の取得は非同期にバックグラウンドで行い、情報が取得できしだい後から表示するようにした(赤字の部分)。
実際に走らせると青字のタイトルが表示されてから、少し遅れて赤字のブックマーク数が表示される。もちろん、ブックマーク数が表示される前からリストをスクロールすることもエントリーを選択することもできるので、ブックマーク数に興味が無い場合はどんどん先に進める。
モバイル端末で動くアプリケーションを作る時に注意を払わなければならない点は幾つかあるが、この手のきめ細かな工夫によりネットワーク遅延によるストレスをユーザーにできる限り感じさせない様に作ることは、重要項目の一つ。
3G→4Gとネットワークが進化するとビットレートは高くなるのだが、ネットワーク遅延は必ずしも小さくならないので注意が必要だ。ブロードバンドだと100ms程度ですむ遅延が、ワイアレス・ネットワークだと数秒になることもあるということは覚えておいて損は無いだろう。
Comments