Skip to main content

Jetpack Composeで調べたこと その2

Jetpack Composeで調べたこと その1
の続編

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
まだまだ勉強は続くよ

関連記事:

Pocket