Slide 24
Slide 24 text
初期化の戦略
UI表示に必要なデータを作りたい Flowを使ったデータストリームで実行
UsecaseやRepository、DataStore、
Usecase等の外部コンポーネントの生成
ViewModel内部で生成せず、DIするか引数として処理
ViewModelで使うだけのテスト不要な外部コ
ンポーネントの生成
init初期化ブロックで実行。ただし、真にテスト不要かは、独
立性が高いかは要確認
ViewModelクラス内部で必要な初期化
init初期化ブロックが適しているのは ViewModel に与えられ
る引数に応じて状態が変わる、クラスの複数プロパティに影
響があるなど
初期化で非同期処理(コルーチン)が存在し
ている・非同期処理内でオブジェクトを生成し
たい
非同期処理を使うとViewModelが完全に初期化される前に
アクセスされる可能性も。初期化途中のエラーはタイミング
に依存し発見しにくく判断も困難