Androidアプリ開発に関するライフサイクルって何?
〜初学者なりに、初学者向けにまとめてみた〜
はじめに
Androidアプリ開発を始めたばかりの私が、
「ライフサイクルってどんなふうに動いてるの?」と聞かれて
「onCreate()
? onDestroy()
? なんか勝手に動いてるけどよく分からん!」
となった経験から、初学者目線でまとめてみた記事です。
この記事の対象
- Android Studio を触り始めた人
- ライフサイクルの仕組みがなんとなくしかわかってない人
remember
やonDestroy()
に疑問を持ったことがある人
そもそもどこの話をしているのか(前提イメージ)
今回は、基本的なアーキテクチャのひとつ MVVM(Model-View-ViewModel) の中で、View(画面部分)に関する話になります。
前提として、Android Studioを起動していつも通りEmpty Activityで個人のプロダクトを始めた時点で内部でこの基本のライフサイクルを用意してくれています。
そこで私たちエンジニアがライフサイクル毎にオリジナルの処理をできるように上書きをする (オーバーライド) していくということです。
例えば、web上のテストで、
「このページを離れると、テストが自動で終了します」
という場面にこれまでの人生遭遇したことがあると思います。
これがまさにこの時に独自の処理を加えてオーバーライドしていることなんです。
Activity のライフサイクルとは?
Activity は「アプリの1画面」を表すクラスで、OSがその状態を管理しています。
例えば…
- アプリを起動 →
onCreate()
- ユーザーが戻る →
onPause()
→onStop()
→onDestroy()
- 画面回転 →
onDestroy()
→onCreate()
(再生成される!)
など、状態の変化に合わせてライフサイクルメソッドが自動的に呼ばれます。
ライフサイクルメソッドを見える化してみる
こちらのURLは、公式のドキュメントになります。私もこれをもとに学習しています。
ここではlogcatを用いてどういったときに各ライフサイクルメソッドが呼び出されているのかをハンズオン形式で学べます。
(処理ごとに Log.d()
で出力して、デバッグするイメージです)
出典:Android Developers Codelab
まとめ
ライフサイクルをざっくりでも理解できると、ユーザーの行動やアプリの裏側の動きを意識したプロダクト開発ができるようになると感じました。