yumemi-inc / android-training-template

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Flowの導入

Seo-4d696b75 opened this issue · comments

🚰 アプリの状態をFlowで保持しましょう

Note

Required(先に完了させましょう)

Next(次に取り組みましょう)

  • 必須課題
    #18
  • 任意課題
    #20

課題内容

  • Flowの依存をapp/build.gradleに追加
  • ViewModelで保持している状態をFlowに変更
  • UI側から状態の更新を購読して画面に反映する

FlowでUI状態を公開する

ViewModelが保持している状態をFlowに置き換えます。すると外部で状態の変更を検知できるため、画面に新しい状態を反映する処理(UIロジック)が容易になります。

Tip

Flowには書き込み可能な型と不可能な型がありますので、ViewModel内部で保持するFlowの型と外部に公開する型に気をつけましょう

Flowで状態の更新を購読する

Flowでラップされた状態の更新を検知して画面に反映します

Tip

Flowをcollectする時はActivityやFragmentのライフサイクルを意識しましょう。ComposeでUIを作成した場合はcollectAsState*APIでFlowからStateに変換します。

参考資料