アプリのライフサイクル

アプリのライフサイクル

執筆済 ソフトウェア開発

アプリの状態が OS によって切り替えられる過程。

状態#

未起動 → 非アクティブ → アクティブ(前面)
              ↕
          バックグラウンド → 停止 → 終了

何を考えるか#

遷移 やるべきこと
起動 最小限の初期化。起動時間を短く
非アクティブ化 進行中の操作を安全な状態に
バックグラウンド移行 状態を保存する。資源を解放する
復帰 表示を更新する。古いデータを再取得
終了 通知されないこともある

「終了時に保存する」は成立しない。 OS はバックグラウンドのアプリを 予告なく終了させる。 バックグラウンドに移った時点で保存しておく必要がある。

資源の扱い#

バックグラウンドでは

  • CPU 時間が制限される
  • メモリ不足時に真っ先に終了される
  • ネットワークが切られることがある

カメラ、位置情報、音声などの資源は 明示的に手放さないと、 OS に強制終了される原因になる。

状態の復元#

利用者から見れば「アプリを閉じていない」。 再起動しても同じ画面に戻るのが期待される振る舞い。

  • 画面の階層
  • スクロール位置
  • 入力途中の内容

これらを保存・復元する仕組みが iOS にも Android にも用意されている。

参考文献#

ノート一覧を閉じる