【Android】ComposeでScreenの生成時に行なっていること

業務で得た知識を糧にする!!

Screenメソッド内での処理

Composable関数の中では普通の関数と同じように扱うことができるので、上部の辺りにはviewModel生成やライフサイクルに関わる処理などが定義されている。

下部の辺りには実際に画面に表示することになるComposableを呼び出し、必要に応じてそのファイル内で定義する必要があるものに関してはComposableを切り出している。

viewModelの利用

ここでは下位のComposableにパラメータとしてviewModelのアクション関数などを渡していました。Compose全般に言えることだと思いますが、子のComposableが多ければ多いほど渡していく形になるので何の処理が実行されているかを確認するために、ファイル間を彷徨うことになりそうです(大体ViewModelやScreenで渡されていることが多い)

viewStateの利用

viewStateで状態監視を行なって、特定の条件になるとダイアログを表示したりしていました。ダイアログ系はやはり画面の最前面に表示されるためScreenファイルで表示されることが多そうです。

LazyListScopeの拡張関数を作成する

Screen内でLazyColumnを利用している場合には拡張関数を利用するべき。

理由は様々あって、

  • 定型コード(ボイラープレート)の削減 
  • コンポーネントのカプセル化
  • 再利用性の向上
  • 可読性の向上

などなど盛りだくさん✨