Repositoryの追加
Seo-4d696b75 opened this issue · comments
💾 Repositoryを追加しましょう
課題内容
- Repositoryを追加する
- 天気状態の保持&更新をViewModelからRepositoryに移行する
- 必要な依存をViewModel, RepositoryにHiltでDIする
Repositoryとアーキテクチャ
Androidアプリ開発におけるアーキテクチャ設計はいくつかパターンがありますが、UI層とデータ層を分離する考え方には共通点があります。データ層に位置するRepositoryはUI層へデータを公開すると同時に、具体的なデータソース(APIやローカルDB)を隠蔽します。
これまでの課題でもActivityやFragmentからデータの保持と処理をViewModelへ分離してきましたが、さらにRepositoryへ分離することでUI層とデータ層を明確に区別します。
HiltによるDIのスコープ
スコープを適切に設定することで同一のインスタンスを注入することができます。この課題ではアプリの状態を保持&更新する役割がViewModelからRepositoryに移動していますので、RepositoryをシングルトンとしてDIすればActivityやViewModelが破棄・再生成されても状態を保持できます。
Tip
ViewModelでSavedStateHandleを利用しなくても「Don't keep activities」オプションONで状態を保持できます