0
0

More than 1 year has passed since last update.

jetpack composeでviewModelのデータを監視する

Posted at

初めに

従来のDataBindingなどの実装では、ViewModelLiveDataを持たせてそれを監視することでviewの状態を切り替えていました。
しかしjetpack composeになってからはMVVMという設計自体が向いてないという話も出てきてはいますが、代替案がないのが現状です。
そこで今回は、jetpack composeを使ったViewModelのデータを監視する方法を紹介していきます。

本文

基本的には今までLiveDataを使ってた部分をStateFlowに変えればいいだけです。
そして、Composeに対して引数として該当画面のViewModelを渡してあげれば、変数として監視することができます。
また、Compose側で値を変更したくないのでViewModel内で宣言する時は下記のようにするのがベストだと思います。

private val _hoge = MutableStateFlow("")
val hoge: StateFlow<String> get() = _hoge

最後に

今後アーキテクチャ自体が変わっていき、必要なくなる可能性もありますが現状においては割とベターな実装なのかなと思い、備忘録程度に書かせていただきました。
参考になったら嬉しいです

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0