Open LeoAndo opened 1 year ago
様々なタイプの再構成
間接的の場合は、コンポーザブルがStateオブジェクトを直接読み取っていない場合に発生する
カウントを使用して以前と同じ直接再構成を行い、カウントが変更された時にTextを更新します。 数値のリストを受け取る追加のリストコンポーザブルがあります。カウントの変更により、このコンポーザブルが再構成される場合、入力が変更されていないため、MyListコンポーザブルは再構成されないと予想されるが、現在のJetpack Composeでは再構成される。 Listは不変性を保証できないため、不安定な型です。従ってMyListコンポーザブルはその親が再構成される時にも再構成されます。
上記のコンポーザブルの挙動をデバッグしやすくするために、Android Studioの新機能「デバッガーでの再構成状態の共有」ができるようになった! 使い方 Demo
ステートの一覧表
https://github.com/LeoAndo/development-conference-memo/issues/322#issuecomment-1556570578 このデバックの場合、頻繁に再構成するもの(スクロールやアニメーション)には不向きである。 その場合は、ログを活用しよう! https://youtu.be/Kp-aiSU8qCU?t=381
ログ出力にStateを持っているために、値が変化すると再構成されてしまう。
https://youtu.be/Kp-aiSU8qCU?t=428 SideEffectを使用しよう!
Android StudioのVisual lintを使ってComposeプレビューでこの潜在的な問題を回避しよう!
マテリアルとアクセシビリティを念頭に置いて最適化できるということ
https://youtu.be/Kp-aiSU8qCU?t=718 この例の場合、 ListをPersistentListに置き換えてジャンクの対応を行った。 PersistentListは完全に不変でありコンポーザブルをスキップできる。 これからはPersistentListを使う方向性なのか??
https://youtu.be/Kp-aiSU8qCU?t=790 不安て不安定な型の再構成に悩んでいる場合は、上記のブログを参考にすること!
https://io.google/2023/program/a3ed5302-d787-41bd-8623-54193d36caf0/intl/ja/ https://www.youtube.com/watch?v=Kp-aiSU8qCU