iPhoneアプリの「起動高速化」について考える

ソフトウェアのUXデザインにおいて、アプリの起動の速さは非常に重要なものの一つだ。なぜなら起動が遅いというだけで、ソフトウェアの本来の機能・性能に関わらず、使われなくなってしまうことすらあるからだ。

起動の速度は、かなりハードウェアの性能に依存する。特に、iPhoneなどのモバイルデバイスではその傾向は顕著だ。しかし、特にモバイルデバイスでは「ちゃっと起動してちゃっと目的を果たす」ということが非常に重要なため悩ましい。

iPhoneは確かに遅い。しかし開発者たる者、ここで諦めてはならない。

幸いにも、人の感覚は物理的な時間だけが「高速である」と感じる指標ではない。心理的な側面も大いにある。物理的な時間と、心理的な時間を短縮することが必要だ。

ある程度まとまってきたので、文章にまとめておこうと思う。


起動画面をできるだけ完全起動後の画面に近くする
これは心理的なハックだ。「iPhoneヒューマンインターフェースガイドライン」にも指摘されている。実際に試してみると、確かに速くなったように感じる。スプラッシュ画面は、やはりNGだ。
琴線探査: 「iPhoneヒューマンインターフェースガイドライン」まとめ


時間のかかる初期化処理はメインウインドウ作成と同時に
特にカメラ入力やLocationManagerの初期化、逆ジオコーディングは時間がかかる。こういった処理はAppDelegate中など、できるだけ早いフェーズで初期化するようにする。


起動時に読み込む必要のあるPNGはできるだけアルファチャンネルを削除する
涙ぐましい努力だ(^^);


起動直後に必要なUIコンポーネントを最小限にする
当然のことだけど、初期化するUIコンポーネントが少ないほど速くなる。画面の分割などを検討し、起動直後に必要なUIコンポーネントは最小限にすべきだ。画像や音の数も当然最小限にする。


起動直後に必要のない初期化処理は後回しにする
とにかく、できるだけ早くユーザーが必要とする作業ができるようにしなければならない。初期化作業のなかには、効果音の読み込みや画像の読み込みなど、起動直後に必ずしも必要のないものもある。こういった優先度の低い初期化は、完全起動後に後回しにする。


アプリそのものの機能を削減する
究極にして最強。「このアプリにその機能は絶対に必要か?」これを徹底的に自問するべきだ。場合によってはアプリの分割も検討する必要がある。


今のところは、こんなところだろうか。まだまだソフトウェア開発道は道半ばだ。

コメント

  1. 参考になりました!
    イイネボタンはないーのでーすか?

    返信削除

コメントを投稿

このブログの人気の投稿

レオナルド・ダ・ビンチはなぜノートを「鏡文字」で書いたのか?

macでsmb(samba)共有サーバーに別名で接続(別アカウント名で接続)する方法

Google DriveにCURLでアップロードするには?