Practice2: ComposableͷதͰ࡞ΒΕͨState remember͞Εͳ͚ΕͳΒͳ͍ remember࣮ࡍԿΛߦ͏ͷ͔ʁ A value computed by remember is stored in the Composition during initial composition, and the stored value is returned during recomposition. https://d.android.com/jetpack/compose/state#state-in-composables remember{}ͷCompositionʹอ࣋͞ΕɺͦΕ͕࣍ͷݺͼग़͠ͰΘΕΔ
Practice5: State hoistingͰComposableؔΛ࠶ར༻Մ ೳͰςετՄೳʹ͠Α͏ ⭕ DO State hoistingͱʁ StateΛ্ʹ্͛Δ͜ͱͰɺίϯϙʔωϯτ ΛStatelessʹ͢Δύλʔϯ ComposableؔʹదԠ͢Δ߹͍͍ͩͨ ҎԼ2ͭͷҾΛಋೖ͢Δ͜ͱΛҙຯ͢Δ value: T දࣔ͢Δσʔλ onValueChange: (T) -> Unit ͷมߋΛཁ ٻ͢ΔΠϕϯτ
Practice5: State hoistingͰComposableؔΛ࠶ར༻Մ ೳͰςετՄೳʹ͠Α͏ ⭕ DO State hoistingͱʁ StateΛ্ʹ্͛Δ͜ͱͰɺίϯϙʔωϯτ ΛStatelessʹ͢Δύλʔϯ DON’TͰಈ͘͠ྑ͍ͷͰʁʁ ComposableؔʹదԠ͢Δ߹͍͍ͩͨ ҎԼ2ͭͷҾΛಋೖ͢Δ͜ͱΛҙຯ͢Δ value: T දࣔ͢Δσʔλ onValueChange: (T) -> Unit ͷมߋΛཁ ٻ͢ΔΠϕϯτ
Practice6: State hoistingͰSingle source of truthʹ͠Α͏ɻ·ͨState hoistingগͳ͘ͱҰ൪͍StateΛফඅ͍ͯ͠Δڞ௨ͷʹ͠Α͏ɻ ⭕ DO ❌ DON’T DOͷྫͰઌఔͱಉ༷ʹ State hoistingͰ࣮͍ͯ͠ΔΈ͍ͨ
Practice6: State hoistingͰSingle source of truthʹ͠Α͏ɻ·ͨState hoistingগͳ͘ͱҰ൪͍StateΛফඅ͍ͯ͠Δڞ௨ͷʹ͠Α͏ɻ ⭕ DO ❌ DON’T DOͷྫͰઌఔͱಉ༷ʹ State hoistingͰ࣮͍ͯ͠ΔΈ͍ͨ ͚ͩͰStateΛ͍࣋ͬͯΔ🙆
Practice6: State hoistingͰSingle source of truthʹ͠Α͏ɻ·ͨState hoistingগͳ͘ͱҰ൪͍StateΛফඅ͍ͯ͠Δڞ௨ͷʹ͠Α͏ɻ ⭕ DO ❌ DON’T ॳظͷinitialCheckedΛ ͍ͯ͠Δ ͰࣗͰStateΛ ཧ͍ͯ͠Δɻ
Practice6: State hoistingͰSingle source of truthʹ͠Α͏ɻ·ͨState hoistingগͳ͘ͱҰ൪͍StateΛফඅ͍ͯ͠Δڞ௨ͷʹ͠Α͏ɻ “গͳ͘ͱҰ൪͍StateΛফඅ͍ͯ͠Δڞ௨ ͷ”ͱԿ͔ʁ ⭕ DO ͳͥ“গͳ͘ͱҰ൪͍StateΛফඅ͍ͯ͠Δڞ௨ͷ”ʁ Single source of truth͕͔ͬͨ͠ΓɺͰ͖ͳ͔ͬͨΓ͢ΔͨΊ
Practice9: ComposableؔʹϩδοΫ͕ॻ͔Εͳ͍Α͏ ʹ͠Α͏ State holderҎԼͷΑ͏ʹґଘΛ࣋ͭ͜ͱ͕Ͱ͖·͢ɻ ͭ·ΓComosable͔Βར༻͞ΕΔΑ͏ʹͯ͠ɺViewModelͷґଘΛ࣋ͬͯྑ͍ ͷͰ͢ɻ State holder https://developer.android.com/jetpack/compose/state#managing-state