10章 10.1 ViewModel
誤
Androidにはリソースが足りなくなったときにフレームワークがしばらく使われていないActivityを破棄し、あとでそのActivityが必要になったときに再生成する仕組みがあります。
Activityでデータを持っていると、Activityが破棄されるときに一緒に消えてしまうため、サーバーから再度取得したり、破棄されるときにデータを保存して再生成時にリストアする処理が必要になります。
ViewModelはこの破棄・再生成時のデータ保存処理を楽にしてくれます。ViewModelはActivityの再生成を超えてインスタンスが保持される仕組みになっており、ViewModelでデータを持っておけば破棄・再生成後も以前のデータにアクセスできます。
正
AndroidではConfigurationが変わったときにActivityを破棄して作り直す仕組みがあります。Configurationには画面の向きや言語設定や画面サイズなどがあり、Activityを作り直す仕組みによって新しいConfigurationに最適なレイアウトや文字列リソースで画面が作られます。
しかしActivityで保持していたデータは画面回転などConfigurationの変更によってActivityが再生成されるときに消えてしまいます。そのため再度データを取得したり、Activityが破棄されるときにデータを保存して再生成時にリストアする処理が必要になります。ViewModelはこのデータの引き継ぎ処理を楽にしてくれます。
ViewModelはConfigurationの変更によるActivityの再生成を超えてインスタンスが保持される仕組みになっており、ViewModelにデータを持たせるようにすれば、再生成後のActivityからも以前のデータにアクセスすることができます。
12章 ViewModelでSavedStateHandleを使う
誤
この章ではAssistedInjectを使ってDaggerに生成させるViewModelにSavedStateHandleを組み込む方法を紹介します。
正
この章ではSubcomponentを使ってDaggerに生成させるViewModelにSavedStateHandleを組み込む方法を紹介します。
13章 13.1 Android で Dagger を使うときの問題点
誤
ボイラーブレート
正
ボイラープレート
2章 2.1 Dagger とは
誤
*2 Dagger 1はリフレクションベースの動的DIフレームワークでした
正
削除 (Dagger 1では一部リフレクション使った機能がありました)