MVVM UseCase Repositoryメモ

ライブラリ

  • Dagger Hilt
  • Kotlin Coroutine
  • Kotlin Flow

Activity, Fragment(UI)

  • ViewModelのStateFlowを監視して、随時画面に出力する

ViewModel(状態管理)

  • View、Dispatcherなし
  • Contextが必要な場合はapplicationContextを使う
  • StateFlowは進捗用、失敗用、成功用で分ける
  • viewModelScope.launchする
  • UseCaseから受け取ったStateを判別してMutableStateFlowに突っ込む

UseCase(ドメイン、ビジネスロジック)

  • 通信前のバリデーション
  • Repositoryから受け取ったデータをrunCatchingで仕分けしてStateでラップしてFlowで返す
  • 複数のRepositoryを扱う煩雑な処理をViewModel側で扱いやすいようにする
  • 一連の処理が単純なら省略しても良い

Repository(データ操作)

  • APIサービスから受け取ったデータをFlowで返す