Jetpack Composeを本番アプリに本格導入始めました
そのなかで不明点をまとめる
Coroutine
・Flow
StateFlow:一回だけ呼ばれる。同じ値だと呼ばれない。coroutineでなくとも呼べる
SharedFlow:hot stream。coroutineが必要
Flow:cold stream
https://at-sushi.work/blog/24/
https://stackoverflow.com/questions/62331931/mutablestateflow-is-not-emitting-values-after-1st-emit-kotlin-coroutine
hot stream:ストリームから常時値を流し続ける
cold starema:ストリームを繋ぐだけ
https://qiita.com/toRisouP/items/f6088963037bfda658d3
・Flowで値を取得する
https://at-sushi.work/blog/43/
lifecycleScope.launch { repeatOnLifecycle(Lifecycle.State.STARTED) { viewModel.aaa.collect { //hogehoge } } }
上を使うにはパッケージを入れる
androidx.lifecycle:lifecycle-runtime-ktx:2.4.0
https://developer.android.com/topic/libraries/architecture/coroutines?hl=ja
データの保持
・Viewの値を取る
findViewByIdで値を取得するがcomposeだと取れない
ViewModelで値を取るのが一つの考え方
https://stackoverflow.com/questions/67217106/access-textfield-value-from-another-composable-function-in-jetpack-compose
UI
・Arrangement.spacedBy
スペースを間に入れる
https://qiita.com/maxfie1d/items/4c876ce9e0ad589a1089
・再コンポーズ数の確認方法
リリース前に確認した方が良いと思う
パフォーマンスだいぶ違うと思う
https://developer.android.com/jetpack/compose/tooling?hl=ja#recomposition-counts
JetpackCompose難しすぎませんかねぇw
まだまだ勉強は続くよ
関連記事:
- Jetpack ComposeのCodelab 10〜15章で学んだことを書く
- Jetpack ComposeのCodelab1〜5章で学んだことを書く
- Jetpack ComposeのCodelab 6〜9章で学んだことを書く