« June 2009 | Main | August 2009 »

2009.07.17

iPhoneアプリ「Displex v1.2」が公開されました。

Displex_v12

iPhone3G向けパフォーマンスチューニングを含む多数の改善を施した
v1.2が公開されました。7/9申請で7/16公開なので、今回はちょうど一週間でした。前回の更新はちょうどOS3.0公開タイミングとかぶっていたので、たまたま二週間もかかってのかもしれません。

修正内容は以下の通りです。

◇番組表ダウンロード速度を高速化した
 ・いままで一番不満点として多く挙げられていた課題なので、かなり時間を割いた部分です。
  iPhone3GS+WiFi回線ですと、競合アプリ(テレビ番組表、Bangumi)に負けない速度がでていると思います
  もちろんiPhone3Gでも実用レベルの速度が出るようにしてあります

◇番組表ダウンロード中にアナログ時計を表示するようにした
 ・ちょっとしたギミックですが、DL中画面の真ん中が寂しかったので

◇今日の番組表の場合、放送中の番組を強調表示するようにした
 ・いまやってる番組が知りたいというニーズも多かったです。録画ニーズはその次、が正しい認識でした。

◇番組表で放送局名が常に上部に表示されるようにした
 ・こちらも改善要望が多かったです。確かに圧倒的に見やすくなりますね

◇番組表の文字サイズを5段階で指定できるようにした
 ・デフォルトは中ですが、小が個人的にはしっくりきています

◇番組表のフォントをヒラギノに変更して、タイトル名は太字にした。
 ・ラテ欄番組表の基本であるタイトル以外の一行寄せもいれています。だいぶ視認性が上がりました。

◇番組をワンタップすることで情報表示/非表示を切り替えるようにした
 ・いままではタイムバーのみだったのですが、番組矩形でも反応するようにしました。
  トグル動作は辞めて表示/非表示の二択にしています。

◇一日の表示番組数を削減するによって、スクロール速度を向上させた
 ・朝4時~翌日の3時までにしました

◇本体向き判定を改善した
 ・上下逆とか変わった向きでもきちんと表示できます

あ、あと重要なポイントとして、アイコンのテレビにアンテナをつけました。アプリ名がアプリ名なので、テレビに関係していること自体が認知されないという課題への取り組み、、、ということで。後発アプリなので仕方ないのですが、「テレビ番組表」もあるし、「テレビ」もあるし、もはや「テレビ」というキーワードがつけにくい状況にあります。その点、「Bangumi」は本当に一本とられた感じです。

| | Comments (3) | TrackBack (1)

2009.07.09

iPhone3G向けパフォーマンスチューニングを考える

自分が所持しているのはiPod Touch2G(CPU:532Mhz)なのですが、知人が3GS(CPU:600Mhz)を購入したので3G(CPU:412Mhz)をお借りすることができました。
早速Displex v1.1を3GにDLしてみたのですが、そのもっさり感に愕然としました。

まず番組表ダウンロードでUIProgressBarが激重、その後の番組表のスクロールもカクカクでした。
これはだいぶ酷い体験をさせてしまったなぁと反省しきりです。

今回はiPhone3G向けに施したチューニングについて幾つか書いてみます。

番組表ダウンロードで時間がかかっていたのは、各番組の時間長の計算において、開始時刻と終了時刻のNSStringからNSDateFormatterを使ってNSDateに変換する、という処理を生真面目に書いてしまっていたからです。この処理を時刻の文字列から分単位のintに変換してその差分をとる形に変えることで、一気に10倍以上速くなりました。これでダウンロードメーターはサクサク進むようになりました。

次が、UIScrollViewの設定です。番組表の上下左右の端に到達した際に、慣性が働いてバウンドする動きがデフォルトではonになっていました。200個オーダーのUIViewをUIScrollViewのcontentsに格納した状態ですと3Gではカクカクになります。これは端に到達しない状態でも常にスクロールが重くなるので注意が必要です。この動作をdisableにするには、下記のpropertyをすべてNOに設定する必要があります。bouncesはデフォルトでYESなので明示的に指定しないと効きません。

bounces = NO alwaysBounceVertical = NO alwaysBounceHorizontal = NO

上記の変更は3Gだけで効かすのではなく、すべてのモデルに適用しました。これでiPod Touch2G/3GSでは、さらなる素早い操作感が得られるようになるという副次的なメリットも得られました。Displex v1.2として本日申請したので、順調にいけば2週間後くらいにAppStoreに公開されると思います。

さて、1Ghz未満のCPUでは、100Mhz単位の違いで随分の操作感が変わってきます。iPod Touch2GとiPhone3GではGPUが同等で、完全にソフトウェアスタックに互換性があっても、これだけのアプリ体験の差が生まれてしまうのだと実感することができました。では、Androidのように画面解像度やCPUアーキ、入力デバイスまで異なってきた場合にはどうなってしまうのでしょうか?動作検証を考えると莫大な工数を要することは容易に想像できます。HTCはすでにAndroid搭載ケータイを数モデル出してしまいましたが、初期開発コストは想像以上に高い、なんて言っていたのが懐かしくなるほど、今後はその比ではないレベルでアップデート対応工数がかかってくるでしょうね....。

| | Comments (0) | TrackBack (0)

« June 2009 | Main | August 2009 »