Compose Runtime
androidx.compose.runtime
androidx.compose.runtime.rxjava2
androidx.compose.runtime.rxjava3
androidx.compose.runtime.saveable
androidx.compose.runtime.snapshots
ïŒãã¹ãŠã® Compose ããã±ãŒãžã«ã€ããŠã¯ãAPI ãªãã¡ã¬ã³ã¹ ããã¥ã¡ã³ããã芧ãã ããïŒã
ææ°ã®æŽæ° | å®å®çãªãªãŒã¹ | ãªãªãŒã¹åè£ç | ããŒã¿çãªãªãŒã¹ | ã¢ã«ãã¡çãªãªãŒã¹ |
---|---|---|---|---|
2025 幎 8 æ 27 æ¥ | 1.9.0 | - | - | 1.10.0-alpha02 |
æ§é
Compose ã¯ãandroidx
å
ã® 7 ã€ã® Maven Group ID ãçµã¿åããããã®ã§ããåã°ã«ãŒãã«ã¯ããããã®ç®çã«å¿ã㊠Compose ã®æ©èœã®ãµãã»ãããå«ãŸããŠãããããããã«åºæã®ãªãªãŒã¹ããŒãããããŸãã
次ã®è¡šã«ãåã°ã«ãŒãã®èª¬æãšãããããã®ãªãªãŒã¹ããŒãã®ãªã³ã¯ã瀺ããŸãã
ã°ã«ãŒã | 説æ |
---|---|
compose.animation | Jetpack Compose ã¢ããªå ã§ã¢ãã¡ãŒã·ã§ã³ãäœæããŠããŠãŒã¶ãŒ ãšã¯ã¹ããªãšã³ã¹ãé«ããŸãã |
compose.compiler | @Composable 颿°ã倿ããKotlin ã³ã³ãã€ã© ãã©ã°ã€ã³ã§æé©åãæå¹ã«ããŸãã |
compose.foundation | ããã«äœ¿çšã§ãããã«ãã£ã³ã° ãããã¯ã§ Jetpack Compose ã¢ããªãäœæããåºç€ãæ¡åŒµããŠç¬èªã®ãã¶ã€ã³ ã·ã¹ãã èŠçŽ ãæ§ç¯ããŸãã |
compose.material | ããã«äœ¿çšã§ãããããªã¢ã« ãã¶ã€ã³ ã³ã³ããŒãã³ãã§ Jetpack Compose UI ãæ§ç¯ããŸããCompose ã®äžäœã¬ãã«ã®ãšã³ã㪠ãã€ã³ãã§ãããwww.material.io ã®ã¬ã€ãã©ã€ã³ãšé©åããã³ã³ããŒãã³ããæäŸããããã«èšèšãããŠããŸãã |
compose.material3 | ãããªã¢ã« ãã¶ã€ã³ã®é²åçã§ãããããªã¢ã« ãã¶ã€ã³ 3 ã³ã³ããŒãã³ãã§ Jetpack Compose UI ãæ§ç¯ããŸãããããªã¢ã« 3 ã«ã¯ãææ°ã®ããŒãèšå®ãšã³ã³ããŒãã³ãããã€ããã㯠ã«ã©ãŒãªã©ã® Material You ã®ããŒãœãã©ã€ãºæ©èœãå«ãŸããŠãããAndroid 12 ã®æ°ããèŠèŠçã¹ã¿ã€ã«ãšã·ã¹ãã UI ãšèª¿åããããã«èšèšãããŠããŸãã |
compose.runtime | Compose ã®ããã°ã©ãã³ã° ã¢ãã«ãšç¶æ 管çã®åºæ¬ãã«ãã£ã³ã° ãããã¯ãšãCompose ã³ã³ãã€ã© ãã©ã°ã€ã³ãã¿ãŒã²ãããšããã³ã¢ã©ã³ã¿ã€ã ã |
compose.ui | ã¬ã€ã¢ãŠããæç»ãå ¥åãªã©ã®ããã€ã¹æäœã«å¿ èŠãª Compose UI ã®åºæ¬ã³ã³ããŒãã³ãã |
äŸåé¢ä¿ã®å®£èš
Compose ãžã®äŸåé¢ä¿ã远å ããã«ã¯ãGoogle ã® Maven ãªããžããªããããžã§ã¯ãã«è¿œå ããå¿ èŠããããŸãã詳ããã¯ãGoogle ã® Maven ãªããžããªãã芧ãã ããã
ã¢ããªãŸãã¯ã¢ãžã¥ãŒã«ã® build.gradle
ãã¡ã€ã«ã«ãå¿
èŠãªã¢ãŒãã£ãã¡ã¯ãã®äŸåé¢ä¿ã远å ããŸãã
Groovy
dependencies { implementation "androidx.compose.runtime:runtime:1.9.0" implementation "androidx.compose.runtime:runtime-livedata:1.9.0" implementation "androidx.compose.runtime:runtime-rxjava2:1.9.0" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.runtime:runtime:1.9.0") implementation("androidx.compose.runtime:runtime-livedata:1.9.0") implementation("androidx.compose.runtime:runtime-rxjava2:1.9.0") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
äŸåé¢ä¿ã«ã€ããŠè©³ããã¯ããã«ãäŸåé¢ä¿ã®è¿œå ãã芧ãã ããã
ãã£ãŒãããã¯
ãå¯ãããã ãããã£ãŒãããã¯ã¯ Jetpack æ¹åã®åèã«ãããŠããã ããŸããæ°ããåé¡ãèŠã€ãã£ãå Žåãããã®ã©ã€ãã©ãªãæ¹åããã¢ã€ãã¢ããæã¡ã®å Žåã¯ããç¥ãããã ãããæ°ããåé¡ãå ±åããŠããã ãåã«ããã®ã©ã€ãã©ãªã®æ¢åã®åé¡ãã確èªãã ãããã¹ã¿ãŒãã¿ã³ãã¯ãªãã¯ãããšãæ¢åã®åé¡ã«æç¥šã§ããŸãã
æ°ããåé¡ãå ±åãã
詳现ã«ã€ããŠã¯ãIssue Tracker ã®ããã¥ã¡ã³ããã芧ãã ããã
Runtime Tracing ããŒãžã§ã³ 1.7
ããŒãžã§ã³ 1.7.0-rc01
2024 幎 9 æ 18 æ¥
androidx.compose.runtime:runtime-tracing:1.7.0-rc01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-rc01 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
Runtime Tracing ããŒãžã§ã³ 1.0
ããŒãžã§ã³ 1.0.0-beta01
2023 幎 11 æ 29 æ¥
androidx.compose.runtime:runtime-tracing:1.0.0-beta01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-beta01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.0.0-alpha05
2023 幎 11 æ 15 æ¥
androidx.compose.runtime:runtime-tracing:1.0.0-alpha05
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha05 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
- äŸåé¢ä¿ããµããŒããããŠããæå°ã®å®å®çïŒcompose-runtime ã tracing-perfetto ãªã©ïŒã«åºå®ããŸãããããã«ãããcompose-runtime-tracing ã compose-runtime ã®æ°ããããŒãžã§ã³ãã¢ããªã«å°å ¥ããåé¡ãä¿®æ£ããŸããã
ããŒãžã§ã³ 1.0.0-alpha04
2023 幎 8 æ 23 æ¥
androidx.compose.runtime:runtime-tracing:1.0.0-alpha04
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha04 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
æ°æ©èœ
- ãã³ãããŒã¯ãšãã¬ãŒã¹ Perfetto ã®ææ°ããŒãžã§ã³ã«å¯Ÿå¿ããã¢ããªã®èµ·åæïŒã³ãŒã«ã ã¹ã¿ãŒãïŒã®ã³ã³ããžã·ã§ã³ ãã¬ãŒã¹ããµããŒãïŒAndroidX Benchmark ã Android StudioïŒHedgehog ããŒã¿ç 2 以éïŒãªã©ïŒã
API ã®å€æŽ
androidx.tracing.perfetto.Trace
ã®ååãandroidx.tracing.perfetto.PerfettoSdkTrace
ã«å€æŽããŸããïŒI44af8ïŒ- Perfetto SDK API ã
android.os.Trace
ãšäžè²«æ§ã®ãããã®ã«ããŸãããïŒI73ba0ãb/282199917ïŒ - ã¢ããªã®èµ·åæã«ãã¬ãŒã¹ãè¡ãããã®åææ¡ä»¶ãïŒIad890ïŒ
- 詊éšéçšçãšå ¬éçã® API ãã¡ã€ã«ãçµ±åããŸããïŒI0f2e1ãb/278769092ïŒ
ããŒãžã§ã³ 1.0.0-alpha02
2023 幎 2 æ 8 æ¥
androidx.compose.runtime:runtime-tracing:1.0.0-alpha02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
æ°æ©èœ
- æ©èœã®å€æŽã¯ãããŸãããããŠã³ã¹ããªãŒã äŸåé¢ä¿
androidx.tracing:tracing-perfetto*
ã§ããŸããŸãªããã©ãŒãã³ã¹æé©åãè¡ãããŠããŸãã
ããŒãžã§ã³ 1.0.0-alpha01
2022 幎 9 æ 7 æ¥
androidx.compose.runtime:runtime-tracing:1.0.0-alpha01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
æ°æ©èœ
androidx.compose.runtime:runtime-tracing
ã¯ãCompose ã¢ããªã§æ¡åŒµãã¬ãŒã¹ãå®è¡å¯èœãªããŒã«ïŒè¿æ¥ãªãªãŒã¹äºå®ïŒãååšããå Žåã«å©çšã§ããã©ã€ãã©ãªã§ãããã®ã©ã€ãã©ãªã®ååãªãªãŒã¹ã¯ 1.0.0-alpha01 ã§ãã
ããŒãžã§ã³ 1.10
ããŒãžã§ã³ 1.10.0-alpha02
2025 幎 8 æ 27 æ¥
androidx.compose.runtime:runtime-*:1.10.0-alpha02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.10.0-alpha02 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
API ã®å€æŽ
@DoNotRetain
ã远å ããŸãããããã¯ããªãœãŒã¹ããªãŒã¯ããå¯èœæ§ããããããretain
API ã§äœ¿çšãã¹ãã§ãªãåã«ã¢ãããŒã·ã§ã³ãä»ããããã«äœ¿çšã§ããŸããïŒIe5435ïŒ- Kotlin 2.0 ã§ãªãªãŒã¹ããããããžã§ã¯ãã䜿çšããã«ã¯ãKGP 2.0.0 以éãå¿ èŠã§ããïŒIdb6b5ïŒ
ãã°ã®ä¿®æ£
- ã³ã³ãã³ããã³ã³ããžã·ã§ã³ã®ã«ãŒãããŒãã倿Žãããšãã«ãApplier ãžã®ãªãã¬ãŒã·ã§ã³ãæ£ããèšç®ããããã«ãç§»åå¯èœãªã³ã³ãã³ããä¿®æ£ããŸãããç§»åå¯èœãªã³ã³ãã³ãã®å€æŽãèšç®ããéã«ã
up()
åŒã³åºããä¿çãããé©çšè ã«ãã£ã¹ããããããªããŸãŸã«ãªãããšããããŸããããã«ãããé©çšè ã®ç¶æ ãåŸç¶ã®äœ¿çšã«å¯ŸããŠæ£ããé 眮ãããªããªããŸããïŒI7c583ïŒãïŒI47b70ïŒ - 䜿çšãããããšãæ³å®ããŠããªãããã
CheckResult
ãéæšå¥šãšããŠããŒã¯ããŸããïŒI32934ïŒ
ããŒãžã§ã³ 1.10.0-alpha01
2025 幎 8 æ 13 æ¥
androidx.compose.runtime:runtime-*:1.10.0-alpha01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.10.0-alpha01 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
API ã®å€æŽ
- ä¿æ API ãå°å
¥ããŸããã
rememberSaveable
ãšåæ§ã«ãretain ã¯ã³ã³ããžã·ã§ã³éå±€ããé¢ãã remember ã®å€ãæ°žç¶åããŠä¿åã§ããŸããä¿æãããå€ã¯ã·ãªã¢ã«åããããä¿åãããå€ãããã©ã€ããµã€ã¯ã«ãçããandroidxViewModel
ãšåæ§ã®åäœãããŸãã詳现ã«ã€ããŠã¯ãããã¥ã¡ã³ããã芧ãã ãããïŒIa3105ãb/177562901ïŒ - Recomposer ãçŸåšã®ãã¬ãŒã ã®ã³ã³ããŒãºãå®äºãããšãã«ã³ãŒã«ããã¯ãçºè¡ãã
awaitOrScheduleNextCompositionEnd()
API ã远å ããŸãããRecomposer ãçŸåšãã¬ãŒã ãã³ã³ããŒãºããŠããªãå Žåããã® API ã¯æ¬¡ã®ãã¬ãŒã ã®ã³ã³ããŒãºãå®äºãããŸã§äžæåæ¢ããã³ã³ããŒãºããæ°ãããã¬ãŒã ãã¹ã±ãžã¥ãŒã«ããŸããïŒIb873cïŒ - é Unit ãè¿ãã³ã³ããžã·ã§ã³ ããŒã«ã« ãããã€ã API ã远å ïŒI22521ãb/271871288ïŒ
- ç§»åå¯èœãªã³ã³ãã³ãã®äœ¿çšç¶æ³ããã©ããã³ã°ããŠãã³ã³ãã³ãã®ååäœææã®ãªãŒããŒããããåé¿ã§ããããã«ããæ©èœãã©ã°
isMovableContentUsageTrackingEnabled
ã远å ãããŸããããã®æ©èœãã©ã°ã¯çŸåšãããã©ã«ãã§ç¡å¹ã«ãªã£ãŠããŸããïŒIa713dïŒ
ãã°ã®ä¿®æ£
- ãµãã³ã³ããžã·ã§ã³éã§ç§»åå¯èœãªã³ã³ãã³ããç§»åãããšãã«ã¯ã©ãã·ã¥ããåé¡ãä¿®æ£ããŸãããïŒI3fa1eãb/436858107ïŒ
- è€æ°ã®ãã¹ãããããµãã³ã³ããžã·ã§ã³å ã«ããå Žåã«ãã³ã³ããŒã¶ãã« ã¹ã¿ã㯠ãã¬ãŒã¹ã®äžéšãæ¬ èœãããã°ãä¿®æ£ããŸãããïŒI98c6fïŒ
- ããã©ã«ãã® minSdk ã API 21 ãã API 23 ã«ç§»è¡ïŒIbdfcaãb/380448311ãb/435705964ãb/435705223ïŒ
- äžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³ã®å éšç¶æ ãè€æ°ã®ã¹ã¬ããããæŽæ°ãããéã®ç«¶åç¶æ ãä¿®æ£ããŸãããïŒI03895ïŒ
- åæã³ã³ããžã·ã§ã³ã®åã«åŒã³åºãããããã«ã³ã³ããžã·ã§ã³ç»é²ãªãã¶ãŒããŒãæŽæ°ããŸããïŒI4adcaãb/430600932ïŒ
- K1 ãš K2 ã®äž¡æ¹ã§
AutoboxingStateValuePropertyDetector
ãäºææ§ãæã€ããã«ã軜埮ãªãã°ãä¿®æ£ããŸãããïŒIe81c1ïŒ
å€éšããã®åå
- runtime-rxjava2 ã¢ãŒãã£ãã¡ã¯ãããã«ããã©ãããã©ãŒã ã«ãããµããŒã察象ã®ã¿ãŒã²ãããšã㊠JVM ã远å ããŸããïŒI5409eïŒ
- runtime-rxjava3 ã¢ãŒãã£ãã¡ã¯ãããã«ããã©ãããã©ãŒã ã«ãããµããŒã察象ãšã㊠JVM ã远å ããŸããïŒI97e84ïŒ
ããŒãžã§ã³ 1.9
ããŒãžã§ã³ 1.9.0
2025 幎 8 æ 13 æ¥
androidx.compose.runtime:runtime-*:1.9.0
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.9.0 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
1.8.0 以éã®éèŠãªå€æŽ
- Compose ã«å梱ãããŠãã Lint ãã§ãã¯ã§ãAGP ã®æå°ããŒãžã§ã³ã 8.8.2 ã«ãªããŸãããAGP ãã¢ããã°ã¬ãŒãã§ããªãå Žåã¯ãgradle.properties ã§
android.experimental.lint.version=8.8.2
ïŒãŸãã¯ãã以éã®ããŒãžã§ã³ïŒã䜿çšããŠãLint ãåç¬ã§ã¢ããã°ã¬ãŒãã§ããŸããIDE å ã§ Compose lint ãã§ãã¯ãå®è¡ããã«ã¯ãAndroid Studio Ladybug 以éãå¿ èŠã§ãã - æ°ããã©ã³ã¿ã€ã ã¢ãããŒã·ã§ã³ ã©ã€ãã©ãªãäœæãããŸãããããã«ã¯ãCompose ã©ã³ã¿ã€ã ã«äŸåããªãã¢ãããŒã·ã§ã³å®çŸ©ãå«ãŸããŠãããããCompose 以å€ã®ã¢ãžã¥ãŒã«ãã䜿çšã§ããŸãã
@Stable
ã@Immutable
ã@StableMarker
ã runtime-annotation ã«ç§»åãããCompose 以å€ã®ã¢ãžã¥ãŒã«ã«ã¢ãããŒã·ã§ã³ãä»ããããããã«ãªããŸãã- runtime-annotation ã«
@FrequentlyChangingValue
ãš@RememberInComposition
ã远å ãããŸããã@FrequentlyChangingValue
ã¯é »ç¹ãªåã³ã³ããŒãºãåŒãèµ·ããå¯èœæ§ã®ãã宣èšãããŒã¯ãã@RememberInComposition
ã¯ã³ã³ããŒãºã§èšæ¶ãããã¹ã宣èšãããŒã¯ããŸãã察å¿ãã lint ãã§ãã¯ã¯ãäžé©åãªäœ¿çšã«ã€ããŠèŠåããŸãã
ããŒãžã§ã³ 1.9.0-rc01
2025 幎 7 æ 30 æ¥
androidx.compose.runtime:runtime-*:1.9.0-rc01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.9.0-rc01 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
ãã°ã®ä¿®æ£
- åæã³ã³ããžã·ã§ã³ã®åã«åŒã³åºãããããã«ã³ã³ããžã·ã§ã³ç»é²ãªãã¶ãŒããŒãæŽæ°ããŸããïŒI4adcaãb/430600932ïŒ
ããŒãžã§ã³ 1.9.0-beta03
2025 幎 7 æ 16 æ¥
androidx.compose.runtime:runtime-*:1.9.0-beta03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.9.0-beta03 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.9.0-beta02
2025 幎 7 æ 2 æ¥
androidx.compose.runtime:runtime-*:1.9.0-beta02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.9.0-beta02 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ãã°ã®ä¿®æ£
- ã³ã³ããžã·ã§ã³éã®ã¹ããã ããŒãã«å ã®å€ã®åç §ã©ã€ãã¿ã€ã ãççž®ããŸãããã¹ãããããŒãã«ã®åç §ãäžå¿ èŠã« 1 ãã¬ãŒã é·ãç¶ãå ŽåããããŸããïŒI49e74ãb/418516940ïŒ
- ããããªããŒã ã¡ãœããã® Kotlin ãã³ã°ã«ãåé€ããŸãããïŒIc56a3ãb/426871325ïŒ
ããŒãžã§ã³ 1.9.0-beta01
2025 幎 6 æ 18 æ¥
androidx.compose.runtime:runtime-*:1.9.0-beta01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.9.0-beta01 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
API ã®å€æŽ
- Compose ã³ã³ãã€ã©ã«ãã£ãŠè¿œå ããããœãŒã¹æ å ±ãè§£æããããã®ããŒã« API ã远å ããŸãããïŒIceaf9ãb/408492167ïŒ
SnapshotStateSet
ã Android ã§Parcelable
ãå®è£ ããããã«ãªããrememberSaveable { ... }
ã®äžéšãšããŠäœ¿çšã§ããããã«ãªããŸãããïŒI755ddãb/378623803ïŒSnapshotStateList
ã Android ã§Parcelable
ãå®è£ ããããã«ãªããrememberSaveable { ... }
ã®äžéšãšããŠäœ¿çšã§ããããã«ãªããŸãããïŒId18beãb/378623803ïŒmovableContentOf()
ã@RememberInComposition
ã¢ãããŒã·ã§ã³ã§ããŒã¯ãããããã«ãªããlint ã§èª€ã£ãäœ¿çšæ³ãæ€åºã§ããããã«ãªããŸããïŒI2738dïŒ- åã³ã³ããŒãºã®åå ãããå æ¬çã«èгå¯ã§ããããã«ã詊éšéçšçã®ã³ã³ããžã·ã§ã³ ãªãã¶ãŒã㌠API ãæŽæ°ããŸããïŒI32b6aïŒ
- ãã®æ©èœã®ä»åŸã®éçºãèæ
®ããŠã
setDiagnosticStackTraceEnabled
ã experimental ã«å€æŽããŸããïŒI11db3ïŒ currentCompositeKeyHash
ãéæšå¥šã«ãªããŸããã代ããã«currentCompositeKeyHashCode
ã䜿çšããŠãã ããã眮æ API ã¯ãåãããã·ã¥ãããå€ãã®ãããã§ãšã³ã³ãŒãããŸããããã«ãããæ§æéå±€å ã® 2 ã€ã®ç¡é¢ä¿ãªã©ã³ãã ã°ã«ãŒããåãããã·ã¥ããŒãæã€å¯èœæ§ãå€§å¹ ã«æžå°ããŸããïŒI4cb6aãb/177562901ïŒ- Kotlin 2.0 ã§ãªãªãŒã¹ããããããžã§ã¯ãã䜿çšããã«ã¯ãKGP 2.0.0 以éãå¿ èŠã§ãïŒIdb6b5ïŒ
@Stable
ã@Immutable
ã@StableMarker
ã¯ïŒäºææ§ã®ããæ¹æ³ã§ïŒruntime-annotation ã«ç§»åãããŸãããCompose ã«äŸåããªãã©ã€ãã©ãªãããããã®ã¢ãããŒã·ã§ã³ã䜿çšããå Žåã¯ãruntime-annotation ã«äŸåã§ããããã«ãªããŸãããïŒI23a16ïŒKSerializer
ãåãå ¥ããrememberSaveable
ãªãŒããŒããŒãã®ååãrememberSerializable
ã«å€æŽããŸããããã®å€æŽã«ãããkotlinx.serialization
ã®æå³ããäœ¿çšæ¹æ³ãæç¢ºã«ãªããŸããrememberSaveable
ã§kotlinx.Serializable
ã¯ã©ã¹ãçŽæ¥ãµããŒãããã«ã¯ãreified
åãã©ã¡ãŒã¿ãå¿ èŠã«ãªããŸããããã«ããããã¹ãŠã®åŒã³åºããµã€ãã§ã³ã³ãã€ã«æã«å ·çŸåãããåæ å ±ãæäŸããå¿ èŠãããããããœãŒã¹ã®äºææ§ãæãªãããŸããïŒIdb875ãI38627ãb/376028110ïŒ
ãã°ã®ä¿®æ£
- äžæåæ¢å¯èœãªã³ã³ãã³ãã§èšå®ããããã£ã³ã»ã«ãããã³ã³ããžã·ã§ã³ã¯ç Žæ£ããå¿ èŠããããŸããããã¯ã³ã³ããžã·ã§ã³ã«ãã£ãŠãã§ãã¯ãããããã«ãªããåå©çšããããšäŸå€ãã¹ããŒãããŸããïŒI2daa5ãb/406792785ïŒ
- äžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³ãç Žæ£ããããšãã«ããªãã¶ãŒããŒãèšæ¶ããããã«äžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³ã誀ã£ã
onForgotten
ãéä¿¡ããªãããã«ä¿®æ£ããŸãããäžæåæ¢å¯èœãªãã£ã³ã»ã«ãããã³ã³ããžã·ã§ã³ã®RememberObservers
ã«ã¯ãonAbandoned ã®ã¿ãéä¿¡ãããã¹ãã§ããïŒI26f54ïŒ - ç§»åå¯èœãªã³ã³ãã³ãã®åŠçã®åŸåã§å°çããç¡å¹åãã³ã³ããŒã¶ãŒã«è¿œå ãããããã³ã³ãã³ããç§»åããããšãã«ãããã®ç¡å¹åãæŽæ°ããããã³ã³ãã³ããééã£ãå Žæã§åã³ã³ããŒãºããããç§»åå¯èœãªã³ã³ãã³ãã®åé¡ãä¿®æ£ããŸãããïŒIcd2faãb/409439507ïŒ
- ç§»åå¯èœãªã³ã³ãã³ããã³ã³ããŒãºãããåŸãç§»åãããåã«ç¡å¹ã«ãªãåé¡ãä¿®æ£ããŸãããïŒI99eacãb/229001114ïŒ
previous()
ã®åŒã³åºãåŸã«SnapshotStateList
ã«ãã£ãŠçæããããªã¹ã ã€ãã¬ãŒã¿ã®remove()
ãåŒã³åºããšããªã¹ããã誀ã£ãèŠçŽ ãåé€ãããåãåŒã³åºãã·ãŒã±ã³ã¹ã«å¯ŸããArrayList
ã®åäœãšäžèŽããŸããã§ãããïŒI05ab7ãb/417493222ïŒonForgotton
ã®ãã£ã¹ãããã®é åºã«é¢ããåé¡ãä¿®æ£ããŸããããã®åé¡ã«ãããããšãã°ãç Žæ£å¯èœãªãšãã§ã¯ãã®onDispose
ãééã£ãé åºã§å®è¡ãããå¯èœæ§ããããŸãããïŒIc1c91ãb/417450712ïŒ- äžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³ã§ã®ç¶æ åŠçã®åå©çšã«é¢ããä¿®æ£ïŒIfe96eãb/404058957ïŒ
- ã³ã³ããžã·ã§ã³ãäžæåæ¢ããŠåéããããšãã«ã以åã«äžæåæ¢ãããç¶æ ã®äžéšãåã³ã³ããŒãºãããå¿ èŠããã£ãã«ãããããããç¶æ ãåå©çšãããåé¡ãä¿®æ£ããŸãããããã¯ãã³ã³ããžã·ã§ã³ãäžæåæ¢ãããŠããéã«ãèªã¿åãããç¶æ ã®äžéšã倿Žãããããšãåå ã§ããïŒI441d1ãb/416209738ïŒ
- åé¡ b/404058957 ã®äžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³ã® remember ãã£ã¹ãããã®ä¿®æ£ãå®äºããŸããã以åã®ä¿®æ£ã¯äžå®å šã§ãããïŒI1afd4ãb/404058957ïŒ
OffsetApplier
ããäžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³ã§å°å ¥ãããapply()
ãæ£ãããªãŒããŒã©ã€ãããããã«ãªããŸãããããããªããšãä»®æ³ããŒãã®æŽæ°æã«äžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³ãäŸå€ãã¹ããŒããå¯èœæ§ããããŸããïŒIdbf31ãb/409291131ïŒ- ãã¬ãŒã ã®ãã£ã¹ãããäžã«
FrameClock.withFrameNanos
ãžã®äžæåæ¢ãããåŒã³åºãããã£ã³ã»ã«ãããå Žåã« Molecule ãŠãŒã¶ãŒã«åœ±é¿ããå¯èœæ§ããããããããã¯ãä¿®æ£ããŸãããïŒI89cabãb/407027032ïŒ - ç§»åå¯èœãªã³ã³ãã³ããããå ŽåãRecomposer ãã¢ã€ãã«ç¶æ ã«ãªãããšããã£ãïŒIe5416ãb/409267170ïŒ
- äžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³äžã«
onReuse
ãšonDeactivate
ã®é åºãå転ããå¯èœæ§ã®ããé åºãonDeactivate
/onReuse
ã®é ã§çºçããããšãä¿èšŒãããããã«ãªããŸãããïŒI996e4ãb/404058957ïŒ - äžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³ã§ remember ãªãã¶ãŒããŒã®ãã£ã¹ããããä¿®æ£ããåãé©çšã§ remember/forget ããã£ã¹ããããããªãããã«ããŸããïŒI570b2ãb/404645679ãb/407931790ïŒ
- Compose Multiplatform ã§
LifecycleRegistry
ãå®å šã§ãªãã¢ãŒãã«åãæ¿ããMainThread
ãã§ãã¯ãç¡å¹ã«ããŠã¹ã¬ããã®åé¡ãä¿®æ£ããŸããã詳ããã¯ãCMP-8227 ãã芧ãã ãããïŒIcee87ïŒ
å€éšããã®åå
- Molecule ãŠãŒã¶ãŒã«åœ±é¿ãããã°ãä¿®æ£ããŸããããã®ãã°ã§ã¯ã
RecompositionMode.Immediate
ã䜿çšãããšåã³ã³ããŒãºãã¹ããããããå¯èœæ§ããããŸãããïŒI9f3a9ãb/419527812ïŒ PausableComposition
ã®ç¶æ ã確èªã§ããPausableComposition
isApplied
ããã³isCancelled
ã²ãã¿ãŒãå ¬éããŸãããïŒI994aaïŒFunctionKeyMeta
ã¢ãããŒã·ã§ã³ã«AnnotationTarget.FUNCTION
ã远å ããŸãããïŒI08021ïŒ
ããŒãžã§ã³ 1.9.0-alpha04
2025 幎 6 æ 4 æ¥
androidx.compose.runtime:runtime-*:1.9.0-alpha04
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.9.0-alpha04 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
API ã®å€æŽ
SnapshotStateSet
ã Android ã§ Parcelable ãå®è£ ããããã«ãªããrememberSaveable { ... }
ã®äžéšãšããŠäœ¿çšã§ããããã«ãªããŸãããïŒI755ddãb/378623803ïŒSnapshotStateList
ã Android ã§ Parcelable ãå®è£ ããããã«ãªããrememberSaveable { ... }
ã®äžéšãšããŠäœ¿çšã§ããããã«ãªããŸãããïŒId18beãb/378623803ïŒmovableContentOf()
ã@RememberInComposition
ã¢ãããŒã·ã§ã³ã§ããŒã¯ãããããã«ãªããlint ã§èª€ã£ãäœ¿çšæ³ãæ€åºã§ããããã«ãªããŸããïŒI2738dïŒ- åã³ã³ããŒãºã®åå ãããå æ¬çã«èгå¯ã§ããããã«ã詊éšéçšçã®ã³ã³ããžã·ã§ã³ ãªãã¶ãŒã㌠API ãæŽæ°ããŸããïŒI32b6aïŒ
ãã°ã®ä¿®æ£
onForgotton
ã®ãã£ã¹ãããã®é åºã«é¢ããåé¡ãä¿®æ£ããŸããããã®åé¡ã«ãããããšãã°ãç Žæ£å¯èœãªãšãã§ã¯ãã®onDispose
ãééã£ãé åºã§å®è¡ãããå¯èœæ§ããããŸãããïŒIc1c91ãb/417450712ïŒ- äžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³ã§ã®ç¶æ åŠçã®åå©çšã«é¢ããä¿®æ£ïŒIfe96eãb/404058957ïŒ
- K1 ãš K2 ã®äž¡æ¹ã§å¯å€ã³ã¬ã¯ã·ã§ã³ã®æ€åºãäºææ§ã®ãããã®ã«ããããã®ãã€ã㌠ãã°ã®ä¿®æ£ïŒIe4878ïŒ
- ãªãŒããŒã©ã€ãããããããã㣠ã¢ã¯ã»ãµã§ã®ã¢ãããŒã·ã§ã³æ€çŽ¢ã K1 ãš K2 ã®äž¡æ¹ã§äºææ§ãæãããããã®è»œåŸ®ãªãã°ãä¿®æ£ïŒI9900dïŒ
å€éšããã®åå
- Molecule ãŠãŒã¶ãŒã«åœ±é¿ãããã°ãä¿®æ£ããŸããããã®ãã°ã§ã¯ã
RecompositionMode.Immediate
ã䜿çšãããšåã³ã³ããŒãºãã¹ããããããå¯èœæ§ããããŸãããïŒI9f3a9ãb/419527812ïŒ PausableComposition
ã®ç¶æ ã確èªã§ããPausableComposition
isApplied ã²ãã¿ãŒãšisCancelled
ã²ãã¿ãŒãå ¬éããŸãããïŒI994aaïŒ
ããŒãžã§ã³ 1.9.0-alpha03
2025 幎 5 æ 20 æ¥
androidx.compose.runtime:runtime-*:1.9.0-alpha03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.9.0-alpha03 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
API ã®å€æŽ
- ãã®æ©èœã®ä»åŸã®éçºãèæ
®ããŠã
setDiagnosticStackTraceEnabled
ã experimental ã«å€æŽããŸããïŒI11db3ïŒ
ãã°ã®ä¿®æ£
- ã³ã³ããžã·ã§ã³ãäžæåæ¢ããŠåéããããšãã«ã以åã«äžæåæ¢ãããç¶æ ã®äžéšãåã³ã³ããŒãºãããå¿ èŠããã£ãã«ãããããããç¶æ ãåå©çšãããåé¡ãä¿®æ£ããŸãããããã¯ãã³ã³ããžã·ã§ã³ãäžæåæ¢ãããŠããéã«ãèªã¿åãããç¶æ ã®äžéšã倿Žãããããšãåå ã§ããïŒI441d1ãb/416209738ïŒ
- åé¡ b/404058957 ã®äžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³ã®ãã£ã¹ãããã®ä¿®æ£ãå®äºããŸããã以åã®ä¿®æ£ã¯äžå®å šã§ãããïŒI1afd4ãb/404058957ïŒ
SaveableStateHolder.SaveableStateProvider
ã¯ãã³ã³ããžã·ã§ã³ãä»ããŠã³ã³ãã³ãã«LocalSavedStateRegistryOwner
ãæäŸããããã«ãªããŸãããïŒIa2761ãb/413108878ïŒandroidx.compose.runtime.saveable
ãandroidx.lifecycle.runtime.compose
ã«äŸåããããã«ãªããŸãããïŒI53228ãb/413108878ïŒ
ããŒãžã§ã³ 1.9.0-alpha02
2025 幎 5 æ 7 æ¥
androidx.compose.runtime:runtime-*:1.9.0-alpha02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.9.0-alpha02 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
API ã®å€æŽ
- ã«ã¹ã¿ã ã®ãããŒããå«ã
rememberSaveable
ãéæšå¥šã«ããŸãããäœçœ®ã¹ã³ãŒãããã€ãã¹ãããããç¶æ ãã°ãäžè²«æ§ã®ãªãåäœïŒæå³ããªãç¶æ ã®å ±æãæå€±ããã¹ããããLazyLayouts
ã®åé¡ãªã©ïŒãçºçããŸããäžè²«æ§ã®ããããŒã«ã« ã¹ã³ãŒãã®ç¶æ ã«äœçœ®ã¹ã³ãŒãã䜿çšããã«ã¯ã'key' ãã©ã¡ãŒã¿ãåé€ããŠãã ããã詳ããã¯ãã³ããã ã¡ãã»ãŒãžå šæãã芧ãã ãããïŒI5e6ffãb/357685851ïŒ
ãã°ã®ä¿®æ£
OffsetApplier
ããäžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³ã§å°å ¥ãããapply()
ãæ£ãããªãŒããŒã©ã€ãããããã«ãªããŸãããããããªããšãä»®æ³ããŒãã®æŽæ°æã«äžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³ãäŸå€ãã¹ããŒããå¯èœæ§ããããŸããïŒIdbf31ãb/409291131ïŒ- ãã¬ãŒã ã®ãã£ã¹ãããäžã«
FrameClock.withFrameNanos
ãžã®äžæåæ¢ãããåŒã³åºãããã£ã³ã»ã«ãããå Žåã« Molecule ãŠãŒã¶ãŒã«åœ±é¿ããå¯èœæ§ããããããããã¯ãä¿®æ£ããŸãããïŒI89cabãb/407027032ïŒ - ç§»åå¯èœãªã³ã³ãã³ãã®ç¶æ
ãç Žæ£ããããŸã§ä¿çäžã®ãŸãŸãRecomposer ãã¢ã€ãã«ç¶æ
ã«ãªãå¯èœæ§ããããŸããéåžžããã®ç¶æ
ã¯çºçããŸãããç§»åå¯èœãªã³ã³ãã³ãã®ç¶æ
ã¯ãRecomposer ã®ã¡ã€ã³ã«ãŒãã§ç Žæ£ãããããã§ãããã ããç§»åå¯èœãªã³ã³ãã³ãã
resume()
ã®éã«ç Žæ£ããããšãäžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³ã§ãã®åé¡ãçºçããå¯èœæ§ããããŸãïŒIe5416ãb/409267170ïŒã - äžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³äžã«
onReuse
ãšonDeactivate
ã®é åºãå転ããå¯èœæ§ã®ããé åºãããã§ãonDeactivate/onReuse
ã®é åºã§çºçããããšãä¿èšŒãããŸããïŒI996e4ãb/404058957ïŒ
ããŒãžã§ã³ 1.9.0-alpha01
2025 幎 4 æ 23 æ¥
androidx.compose.runtime:runtime-*:1.9.0-alpha01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.9.0-alpha01 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
åäœã®å€æŽ
- Compose ã«å梱ãããŠãã Lint ãã§ãã¯ã§ãAGP ã®æå°ããŒãžã§ã³ã 8.8.2 ã«ãªããŸãããAGP ãã¢ããã°ã¬ãŒãã§ããªãå Žåã¯ã
gradle.properties
ã§android.experimental.lint.version=8.8.2
ïŒãŸãã¯ãã以éã®ããŒãžã§ã³ïŒã䜿çšããŠãLint ãåç¬ã§ã¢ããã°ã¬ãŒãã§ããŸããIDE å ã§ Compose lint ãã§ãã¯ãå®è¡ããã«ã¯ãAndroid Studio Ladybug 以éãå¿ èŠã§ãã
API ã®å€æŽ
currentCompositeKeyHash
ãéæšå¥šã«ãªããŸããã代ããã«currentCompositeKeyHashCode
ã䜿çšããŠãã ããã眮æ API ã¯ãåãããã·ã¥ãããå€ãã®ãããã§ãšã³ã³ãŒãããŸããããã«ãããæ§æéå±€å ã® 2 ã€ã®ç¡é¢ä¿ãªã©ã³ãã ã°ã«ãŒããåãããã·ã¥ããŒãæã€å¯èœæ§ãå€§å¹ ã«æžå°ããŸããïŒI4cb6aãb/177562901ïŒ- Kotlin 2.0 ã§ãªãªãŒã¹ããããããžã§ã¯ãã䜿çšããã«ã¯ãKGP 2.0.0 以éãå¿ èŠã§ãïŒIdb6b5ïŒ
@Stable
ã@Immutable
ã@StableMarker
ã¯ïŒäºææ§ã®ããæ¹æ³ã§ïŒruntime-annotation ã«ç§»åãããŸãããCompose ã«äŸåããªãã©ã€ãã©ãªãããããã®ã¢ãããŒã·ã§ã³ã䜿çšããå Žåã¯ãruntime-annotation ã«äŸåã§ããããã«ãªããŸãããïŒI23a16ïŒonCreating
ãšonDisposing
ã¯éæšå¥šãšãªããonPreCreate
ãšonPreDispose
ã«ååã倿Žããããããåé€ããŸããããã®å€æŽã«ãããååã®å€æŽãå®äºããŸããïŒI97461ïŒ- ã³ã³ããžã·ã§ã³å ã®ã³ã³ããŒãºããŒãã®å Žæã«åºã¥ããŠã³ã³ããŒãº ã¹ã¿ã㯠ãã¬ãŒã¹ãã¢ã¿ããã§ããã³ã³ããžã·ã§ã³ ããŒã«ã«ãå ¬éããŸããïŒIe0bdaãb/354163858ïŒ
- ã³ã³ããžã·ã§ã³ã«ä¿åãããŠãããœãŒã¹æ å ±ã«åºã¥ããŠã蚺æçšã® Compose ã¹ã¿ã㯠ãã¬ãŒã¹ãå°å ¥ããŸããïŒI3db9fãb/354163858ïŒ
runWithTimingDisabled
ã¯éæšå¥šãšãªããrunWithMeasurementDisabled
ãæšå¥šãããŸããrunWithMeasurementDisabled
ã¯ããã¹ãŠã®ææšãäžæåæ¢ããããšããåäœãããæç¢ºã«èšè¿°ããŸãããŸããMicrobenchmarkScope
ã¹ãŒããŒã¯ã©ã¹ãå ¬éããŸããããã¯ãrunWithMeasurementDisabled
颿°ãå宣èšããŠã¢ã¯ã»ã¹ãéãããšãã§ããªãããã§ãïŒã€ã³ã©ã€ã³ã§ããããïŒãïŒI9e23bãb/389149423ãb/149979716ïŒ@FrequentlyChangingValue
ã远å : 颿°ãšãããã㣠ã²ãã¿ãŒãããŒã¯ããŠãã³ã³ããžã·ã§ã³å ã§çŽæ¥åŒã³åºãã¹ãã§ã¯ãªãããšã瀺ãã¢ãããŒã·ã§ã³ãçŽæ¥åŒã³åºããšãåã³ã³ããŒãºãé »ç¹ã«çºçããå¯èœæ§ããããŸããããšãã°ãã¹ã¯ããŒã«äœçœ®ã®å€ãã¢ãã¡ãŒã·ã§ã³ã®å€ãããŒã¯ããå Žåã«äœ¿çšããŸããèŠåã¯ã察å¿ãã lint ãã§ãã¯ã«ãã£ãŠæäŸãããŸããïŒI83630ãb/234042500ïŒ@RememberInComposition
ã远å : ã³ã³ã¹ãã©ã¯ã¿ã颿°ããããã㣠ã²ãã¿ãŒãããŒã¯ããŠãã³ã³ããžã·ã§ã³å ã§çŽæ¥åŒã³åºãããšã¯ã§ããªãããšã瀺ãã¢ãããŒã·ã§ã³ããšã©ãŒã¯ã察å¿ãã lint ãã§ãã¯ã«ãã£ãŠçºçããŸãããã®ã¢ãããŒã·ã§ã³ã¯ãã¹ããŒããã« / ãã¥ãŒã¿ãã«ãªãªããžã§ã¯ããè¿ã宣èšãã³ã³ããžã·ã§ã³éã§ ID ãç¶æããããšãéèŠãªãªããžã§ã¯ããã€ã³ã¹ã¿ã³ã¹åã«ã³ã¹ããããããã³ã³ããžã·ã§ã³éã§ãã£ãã·ã¥ã«ä¿åããå¿ èŠããããªããžã§ã¯ããããŒã¯ããããã«äœ¿çšã§ããŸããïŒIe7db0ïŒ- KotlinX ã·ãªã¢ã«åã䜿çšããåå®å
šãªç¶æ
ã®æ°žç¶åã®ããã«
KSerializer
ããµããŒãããæ°ããrememberSaveable
ãªãŒããŒããŒãã远å ããŸãããæ¢åã®Saver
ããŒã¹ã® API ã¯åŒãç¶ããµããŒããããŸããïŒIea4abãb/376028110ïŒ
ãã°ã®ä¿®æ£
- äžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³ã§ remember ãªãã¶ãŒããŒã®ãã£ã¹ããããä¿®æ£ããåãé©çšã§ remember/forget ããã£ã¹ããããããªãããã«ããŸããïŒI570b2ãb/404645679ãb/407931790ïŒ
- API ã¬ã€ãã©ã€ã³ã«æ²¿ã£ãŠã
SnapshotObserver
ã¡ãœããã® onCreating ãonPreCreate
ã«ãonDisposing
ãonPreDispose
ã«å€æŽããŸããã以åã®ã¡ãœããã¯éæšå¥šãšãªããæ°ããã¡ãœããã¯ããã©ã«ãã§å€ãã¡ãœãããåŒã³åºãããããã®ã€ã³ã¿ãŒãã§ãŒã¹ã®æ¢åã®å®è£ ã¯ã¡ãœãããåé€ããããŸã§åŒãç¶ãæ©èœããŸãããããã®ã¡ãœããã¯ããã® CL ã®çŽåŸã«ç¶ã CL ã§ 1.9.0 ã¢ã«ãã¡çã§åé€ãããŸãããããã¯ã1.8 å®å®çã®åã« 1.8 ããŒã¿çããåé€ãããŸããïŒI6d753ïŒ - ç§»åå¯èœãªã°ã«ãŒãã®åŸã«è¡šç€ºãããçç¥ãããã°ã«ãŒããåã³ã³ããŒãºãããšãã«ãèšæ¶ãããå€ã誀ã£ãŠå¿ããããåèšç®ãããåé¡ãä¿®æ£ããŸããïŒI62cabãb/383769314ïŒ
LaunchedEffect
ãšrememberCoroutineScope
ã§ Compose ã¹ã¿ã㯠ãã¬ãŒã¹ã®ãµããŒãã远å ããŸããïŒI705c0ãb/354163858ïŒ- Compose lint ãã§ãã¯ã§ã¯ãã³ãã³ãã©ã€ã³ãã AGP ããŒãžã§ã³ 8.8.2 以äžãIDE ãµããŒãã«ã¯ Android Studio Ladybug 以äžãå¿
é ã«ãªããŸãããæ§ããŒãžã§ã³ã® AGP ã䜿çšããŠããå Žåã¯ãgradle.properties ã§
android.experimental.lint.version=8.8.2
ãèšå®ããŠãAGP ã«åœ±é¿ãäžããããšãªã Lint ã®ããŒãžã§ã³ãã¢ããã°ã¬ãŒãã§ããŸããïŒI6f2a8ïŒ
å€éšããã®åå
FunctionKeyMeta
ã¢ãããŒã·ã§ã³ã«AnnotationTarget.FUNCTION
ã远å ããŸãããïŒI08021ïŒ
ããŒãžã§ã³ 1.8
ããŒãžã§ã³ 1.8.3
2025 幎 6 æ 18 æ¥
androidx.compose.runtime:runtime-*:1.8.3
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.3 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.8.2
2025 幎 5 æ 20 æ¥
androidx.compose.runtime:runtime-*:1.8.2
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.2 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.8.1
2025 幎 5 æ 7 æ¥
androidx.compose.runtime:runtime-*:1.8.1
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.1 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.8.0
2025 幎 4 æ 23 æ¥
androidx.compose.runtime:runtime-*:1.8.0
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.0 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.8.0-rc03
2025 幎 4 æ 9 æ¥
androidx.compose.runtime:runtime-*:1.8.0-rc03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.0-rc03 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.8.0-rc02
2025 幎 3 æ 26 æ¥
androidx.compose.runtime:runtime-*:1.8.0-rc02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.0-rc02 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.8.0-rc01
2025 幎 3 æ 12 æ¥
androidx.compose.runtime:runtime-*:1.8.0-rc01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.0-rc01 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
API ã®å€æŽ
- API ã¬ã€ãã©ã€ã³ã«æ²¿ã£ãŠã
SnapshotObserver
ã¡ãœããã® onCreating ãonPreCreate
ã«ãonDisposing
ãonPreDispose
ã«å€æŽããŸããã以åã®ã¡ãœããã¯éæšå¥šãšãªããæ°ããã¡ãœããã¯ããã©ã«ãã§å€ãã¡ãœãããåŒã³åºãããããã®ã€ã³ã¿ãŒãã§ãŒã¹ã®æ¢åã®å®è£ ã¯ã¡ãœãããåé€ããããŸã§åŒãç¶ãæ©èœããŸãããããã®ã¡ãœããã¯ããã® CL ã®çŽåŸã«ç¶ã CL ã§ 1.9.0 ã¢ã«ãã¡çã§åé€ãããŸãããããã¯ã1.8 å®å®çã®åã« 1.8 ããŒã¿çããåé€ãããŸããïŒI6d753ïŒ
ããŒãžã§ã³ 1.8.0-beta03
2025 幎 2 æ 26 æ¥
androidx.compose.runtime:runtime-*:1.8.0-beta03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.0-beta03 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.8.0-beta02
2025 幎 2 æ 12 æ¥
androidx.compose.runtime:runtime-*:1.8.0-beta02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.0-beta02 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ãã°ã®ä¿®æ£
- äžæåæ¢å¯èœãªã³ã³ããžã·ã§ã³ã§ãã£ãããããäŸå€ãåã¹ããŒããŸããïŒ384486dïŒ
ããŒãžã§ã³ 1.8.0-beta01
2025 幎 1 æ 29 æ¥
androidx.compose.runtime:runtime-*:1.8.0-beta01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.0-beta01 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
API ã®å€æŽ
- Exception ããæ¡åŒµãããŠããªãã³ã³ããžã·ã§ã³äžã«ã¹ããŒå¯èœãªããžã§ã¯ããçºçããããšããä¿çäžã®ã³ã³ããžã·ã§ã³ãé©çšãããŠããŸããããšãããšã©ãŒãçºçããå¯èœæ§ãããåé¡ãä¿®æ£ããŸãããïŒI356beãb/382094412ïŒ
ããŒãžã§ã³ 1.8.0-alpha08
2025 幎 1 æ 15 æ¥
androidx.compose.runtime:runtime-*:1.8.0-alpha08
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.0-alpha08 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.8.0-alpha07
2024 幎 12 æ 11 æ¥
androidx.compose.runtime:runtime-*:1.8.0-alpha07
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.0-alpha07 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
API ã®å€æŽ
- ããŒããã³ã³ããžã·ã§ã³ã®ããªããžã«äœ¿çšãããŠããªãå Žåã«ãã¬ã€ã¢ãŠã ã€ã³ã¹ãã¯ã¿ããµãã³ã³ããžã·ã§ã³ã芪ã³ã³ããžã·ã§ã³ã«é¢é£ä»ããã®ã«åœ¹ç«ã€ããŒã« API ã远å ããŸãããïŒI4ce3dïŒ
SnapshotId
ã®ç®è¡å®æ°ãšç¹æ®å®æ°ã public ã§ã¯ãªãå éšã«ããŸãããå¿ èŠã«å¿ããŠãSnasphotId
ãtoInt()
ãŸãã¯toLong()
ã䜿çšããŠInt
ãŸãã¯Long
ã«å€æããããšã§ãSnasphotId
ã§ç®è¡æŒç®ãå®è¡ã§ããŸããïŒIc3a57ïŒ
å€éšããã®åå
movableContentOf
ãã©ã¡ãŒã¿ã®ã¹ãã¬ãŒãžãæé©åããŸããïŒed87177ïŒ
ããŒãžã§ã³ 1.8.0-alpha06
2024 幎 11 æ 13 æ¥
androidx.compose.runtime:runtime-*:1.8.0-alpha06
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.0-alpha06 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
API ã®å€æŽ
PausableComposition
API ã®å€æŽãããã㯠1.8.0-alpha ã®ä»¥åã®ãªãªãŒã¹ïŒ1.8.0-alpha02 以éïŒãšã®äºææ§ãç Žã倿Žã§ããã1.8.0 ã®æ°ãã API ã§ãããããAPI ããŸã ã¢ã«ãã¡çã§ãããããäžäœäºææ§ã¯ç¶æãããŸãããïŒI39819ïŒ- Recomposer å ã§æ°ããã³ã³ããžã·ã§ã³ã®äœæãç£èŠããããã®ããŒã« API ã远å ããŸããïŒIaeb7eïŒ
Snapshot
ã«Long
åã®snapshotId
ã远å ããid
ãéæšå¥šã«ããŸããããã¬ãŒã ã¬ãŒããéåžžã«é«ããã¢ãã¡ãŒã·ã§ã³ãé·æéå®è¡ãããã·ã¹ãã ã§ã¹ãããã·ã§ãã ID ããªãŒããŒãããŒããªãããã«ãã¹ãããã·ã§ããã® ID ãInt
ããLong
ã«å€æŽããŸããããã®åã¯ããã€ãã£ãã®Long
åããªããã©ãããã©ãŒã ã§Int
ãŸãã¯ä»ã®åã«ã§ããããã«ãexpect/actual ã«ãªã£ãŠããŸããJavaScript ãªã©ããã€ãã£ãã®Long
ãæããªããã©ãããã©ãŒã ã§ã¯ãé«ããã¬ãŒã ã¬ãŒãïŒ1,000 FPS è¶ ïŒãé¿ããå¿ èŠããããŸããé«ããã¬ãŒã ã¬ãŒãã§ã¯ãçŽ 24 æ¥ããšã«Int
ã®ãªãŒããŒãããŒãçºçããŸããïŒI38ac3ãb/374821679ïŒ
ãã°ã®ä¿®æ£
- åäžã®
provides
ã®providesDefault
ãä¿®æ£ããŸãããïŒaosp/3318540 b/374263387ïŒ ChangeList
ãæé©åããŸããïŒ3318538ïŒ
ããŒãžã§ã³ 1.8.0-alpha05
2024 幎 10 æ 30 æ¥
androidx.compose.runtime:runtime-*:1.8.0-alpha05
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.0-alpha05 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
ãã°ã®ä¿®æ£
SnapshotIdSet
ã«Int.MAX_VALUE
ã远å ããŠãã¹ã¿ã㯠ãªãŒããŒãããŒãä¿®æ£ïŒb/370536104ãIc4179f6ïŒ- ã©ã³ã¿ã€ã ã®ãã€ã¯ãæé©åïŒI50c60ïŒ
- R8 ããããã° runtimeCheck åŒã³åºããåé€ã§ããããã«ããïŒI8c44ïŒ
compoundKeyOf
ãååž°çã§ã¯ãªãå埩çã«ããŸããïŒI5817fïŒ
å€éšããã®åå
- ã³ã¬ã¯ã·ã§ã³ ãªã¹ãã§ã¹ã¿ãã¯ãå®è£ ïŒI7d47cïŒ
ããŒãžã§ã³ 1.8.0-alpha04
2024 幎 10 æ 16 æ¥
androidx.compose.runtime:runtime-*:1.8.0-alpha04
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.0-alpha04 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããã©ãŒãã³ã¹ã®æ¹å
- ã³ã³ã¹ãã©ã¯ã¿ã§ç¶æ ã¬ã³ãŒãã®ã¹ãããã·ã§ãã ID ãæäŸïŒ85c00fïŒ
- ã¯ã©ã¹æ€èšŒãšã©ãŒãåé¿ããããã«
SnapshotState***
ããªãã¡ã¯ã¿ãªã³ã°ïŒ6ee4a6ïŒ - ã¹ããŒã®ã€ã³ã©ã€ã³åãé²ããããR8 ã«ãŒã«ãä¿®æ£ïŒ5beb92ïŒ
- ãªãã¬ãŒã·ã§ã³ã®ãã€ã¯ãæé©åïŒd73c5cïŒ
- JVM ã§ã®
SynchronizedObject
å²ãåœãŠãæé©åïŒ2b043fïŒ
ããŒãžã§ã³ 1.8.0-alpha03
2024 幎 10 æ 2 æ¥
androidx.compose.runtime:runtime-*:1.8.0-alpha03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.0-alpha03 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
ããã©ãŒãã³ã¹ã®æ¹å
rememberCoroutineScope
ã®åã³ã³ããã¹ããé å»¶äœæïŒf61464ïŒrememberCoroutineScope
ã¯éåžžãã³ã³ããžã·ã§ã³åŸã«çºçããã€ãã³ãã«å¿ããŠã³ã«ãŒãã³ãèµ·åããããã«äœ¿çšãããŸããã·ããªãªã«ãã£ãŠã¯ããããã®ã€ãã³ããçºçããªããããã¡ãªããããªãã«ãããããããžã§ãã®äœæãšãã£ã³ã»ã«ã«ã³ã¹ãããããããšããããŸããrememberCoroutineScope
ã«ãã£ãŠè¿ãããã¹ã³ãŒããã¢ã¯ã»ã¹æã«coroutineContext
ãé å»¶äœæããããã«ããŠãã¹ã³ãŒãã䜿çšãããªãå Žåã¯ãžã§ãã®äœæãšãã£ã³ã»ã«ãå®å šã«åé¿ããŸãã
ããŒãžã§ã³ 1.8.0-alpha02
2024 幎 9 æ 18 æ¥
androidx.compose.runtime:runtime-*:1.8.0-alpha02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.0-alpha02 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
æ°æ©èœ
- ã³ã³ããžã·ã§ã³äžã«äžæåæ¢ããŠã³ã³ããžã·ã§ã³ã«éåæã§é©çšã§ãããµãã³ã³ããžã·ã§ã³ãäœæã§ãã
PausableComposition
ã远å ããŸãããäžæåæ¢ã«ã¯ã³ã³ãã€ã©ã®ãµããŒããå¿ èŠã§ãããçŸåšéçºäžã§ããïŒI3394bïŒ
ããŒãžã§ã³ 1.8.0-alpha01
2024 幎 9 æ 4 æ¥
androidx.compose.runtime:runtime-*:1.8.0-alpha01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.8.0-alpha01 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7
ããŒãžã§ã³ 1.7.8
2025 幎 2 æ 12 æ¥
androidx.compose.runtime:runtime-*:1.7.8
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.8 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7.7
2025 幎 1 æ 29 æ¥
androidx.compose.runtime:runtime-*:1.7.7
ããªãªãŒã¹ãããŸããã1.7.6 ããã®å€æŽã¯ãããŸããã
androidx.compose.runtime:runtime-*:1.7.6
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.6 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7.5
2024 幎 10 æ 30 æ¥
androidx.compose.runtime:runtime-*:1.7.5
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.5 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7.4
2024 幎 10 æ 16 æ¥
androidx.compose.runtime:runtime-*:1.7.4
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.4 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7.3
2024 幎 10 æ 2 æ¥
androidx.compose.runtime:runtime-*:1.7.3
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.3 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7.2
2024 幎 9 æ 18 æ¥
androidx.compose.runtime:runtime-*:1.7.2
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.2 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7.1
2024 幎 9 æ 10 æ¥
- Android ã¢ãŒãã£ãã¡ã¯ãã«å€æŽã¯ãããŸããã
-desktop
ã¢ãŒãã£ãã¡ã¯ããåé€ããã-jvmStubs
ã¢ãŒãã£ãã¡ã¯ããš-linuxx64Stubs
ã¢ãŒãã£ãã¡ã¯ãã远å ãããŸããããããã®ã¿ãŒã²ããã¯äœ¿çšãããããšãæ³å®ããŠããããJetbrains Compose ã®åãçµã¿ãæ¯æŽããããã®ãã¬ãŒã¹ãã«ãã§ãã
ããŒãžã§ã³ 1.7.0
2024 幎 9 æ 4 æ¥
androidx.compose.runtime:runtime-*:1.7.0
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
1.6.0 以éã®éèŠãªå€æŽ
compositionLocalWithComputedDefault()
ã䜿çšããŠããã©ã«ãã§ããŸãã¯provides
ã®ä»£ããã«providesComputed
ã䜿çšããŠå€ãèšç®ããã©ã ããæå®ããããšã§ãä»ã®ã³ã³ããŒãº ããŒã«ã«ã®å€ã«åºã¥ããŠèšç®ãããã³ã³ããŒãº ããŒã«ã«ãæå®ããæ©èœã远å ãããŸããã- ã³ã³ããžã·ã§ã³ ããŒã«ã«ã®å€ã¯ãå€ãèšç®ããã©ã ãå
ããã¢ã¯ã»ã¹å¯èœãªã³ã³ããžã·ã§ã³ ããŒã«ã«ã®
currentValue
ããããã£ã䜿çšããŠååŸã§ããŸããããã¯ã@Composable
颿°ã§ã®ã¿ã¢ã¯ã»ã¹å¯èœãªcurrent
ã®ä»£ããã«äœ¿çšãããŸããïŒIadbc0ïŒ - æ°ããäœæãããç¶æ ãªããžã§ã¯ãã¯ãã°ããŒãã« ã¹ãããã·ã§ãããå«ãä»ã®ã¹ãããã·ã§ãããããåæç¶æ ã§çŽã¡ã«ã¢ã¯ã»ã¹ã§ããŸããåŸç¶ã®å€æŽã¯ããªããžã§ã¯ããäœæãããã¹ãããã·ã§ãããé©çšããããŸã§è¡šç€ºãããŸããã
mutableStateOf()
ã®åæç¶æ ãšããªããã£ã ããŒãžã§ã³ã®åæç¶æ ã¯ãmutableStateOf()
ã«ãã©ã¡ãŒã¿ãšããŠæž¡ãããå€ã§ããmutableStateListOf()
ãšmutableStateMapOf()
ã®åæç¶æ ã¯ç©ºã§ãã- ç¶æ
ãªããžã§ã¯ããäœææã«ã°ããŒãã« ã¹ãããã·ã§ããããããã«ã¢ã¯ã»ã¹ã§ããããã«ããããã«äœ¿çšããã
Snapshot.isInSnapshot
ãšSnapshot.PreexistingSnapshotId
ã远å ããŸããã - ã«ã¹ã¿ã ç¶æ ãªããžã§ã¯ãã¯ãçµã¿èŸŒã¿ã®ã¹ãããã·ã§ãã ãªããžã§ã¯ãã«å ãããã倿Žã®ãã¿ãŒã³ã«åŸãããšã§ãããã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸããïŒI84a17ïŒ
- Compose ã©ã€ãã©ãªã®
nonSkippingGroupOptimization
ãæå¹ã«ããŸããããã«ãããandroidx ã®åèµ·åäžå¯ã®ãã¹ãŠã®ã³ã³ããŒã¶ãã«é¢æ°ã®çæã³ãŒãã®å¹çãåäžããŸããä»åŸããã®æ©èœãããã©ã«ãã§æå¹ã«ããäºå®ã§ããI(acbc08) - åããã¬ãŒã ã®ãµãã³ã³ããžã·ã§ã³ã§ã³ã³ããŒãºå¯èœãªã©ã ããç¡å¹ã«ããŸããïŒ98301cïŒ
onForgotten
ãšåãé åºã§onRelease
ã³ãŒã«ããã¯ãåŒã³åºããŸããïŒ2cd790ïŒ- 匷ãã¹ãããã¢ãŒããæå¹ã«ããïŒed1766ïŒ
- ããå€ãã®ã±ãŒã¹ã§
currentCompoundHashKey
ãäžæã«ããïŒd4a872ïŒ
ããŒãžã§ã³ 1.7.0-rc01
2024 幎 8 æ 21 æ¥
androidx.compose.runtime:runtime-*:1.7.0-rc01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-rc01 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7.0-beta07
2024 幎 8 æ 7 æ¥
androidx.compose.runtime:runtime-*:1.7.0-beta07
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-beta07 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7.0-beta06
2024 幎 7 æ 24 æ¥
androidx.compose.runtime:runtime-*:1.7.0-beta06
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-beta06 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7.0-beta05
2024 幎 7 æ 10 æ¥
androidx.compose.runtime:runtime-*:1.7.0-beta05
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-beta05 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7.0-beta04
2024 幎 6 æ 26 æ¥
androidx.compose.runtime:runtime-*:1.7.0-beta04
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-beta04 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7.0-beta03
2024 幎 6 æ 12 æ¥
androidx.compose.runtime:runtime-*:1.7.0-beta03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-beta03 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7.0-beta02
2024 幎 5 æ 29 æ¥
androidx.compose.runtime:runtime-*:1.7.0-beta02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-beta02 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7.0-beta01
2024 幎 5 æ 14 æ¥
androidx.compose.runtime:runtime-*:1.7.0-beta01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-beta01 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7.0-alpha08
2024 幎 5 æ 1 æ¥
androidx.compose.runtime:runtime-*:1.7.0-alpha08
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-alpha08 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.7.0-alpha07
2024 幎 4 æ 17 æ¥
androidx.compose.runtime:runtime-*:1.7.0-alpha07
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-alpha07 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
æ°æ©èœ
compositionLocalWithComputedDefault()
ã䜿çšããŠããã©ã«ãã§ããŸãã¯provides
ã®ä»£ããã«providesComputed
ã䜿çšããŠå€ãèšç®ããã©ã ããæå®ããããšã§ãä»ã®ã³ã³ããŒãº ããŒã«ã«ã®å€ã«åºã¥ããŠèšç®ãããã³ã³ããŒãº ããŒã«ã«ãæå®ããæ©èœã远å ãããŸããã- ã³ã³ããžã·ã§ã³ ããŒã«ã«ã®å€ã¯ãå€ãèšç®ããã©ã ãå
ããã¢ã¯ã»ã¹å¯èœãªã³ã³ããžã·ã§ã³ ããŒã«ã«ã®
currentValue
ããããã£ã䜿çšããŠååŸã§ããŸããããã¯ã@Composable
颿°ã§ã®ã¿ã¢ã¯ã»ã¹å¯èœãªcurrent
ã®ä»£ããã«äœ¿çšãããŸããïŒIadbc0ïŒ
API ã®å€æŽ
- æ°ããäœæãããç¶æ ãªããžã§ã¯ãã¯ãã°ããŒãã« ã¹ãããã·ã§ãããå«ãä»ã®ã¹ãããã·ã§ãããããåæç¶æ ã§çŽã¡ã«ã¢ã¯ã»ã¹ã§ããŸããåŸç¶ã®å€æŽã¯ããªããžã§ã¯ããäœæãããã¹ãããã·ã§ãããé©çšããããŸã§è¡šç€ºãããŸããã
mutableStateOf()
ã®åæç¶æ ãšããªããã£ã ããŒãžã§ã³ã®åæç¶æ ã¯ãmutableStateOf()
ã«ãã©ã¡ãŒã¿ãšããŠæž¡ãããå€ã§ããmutableStateListOf()
ãšmutableStateMapOf()
ã®åæç¶æ ã¯ç©ºã§ãã- ç¶æ
ãªããžã§ã¯ããäœææã«ã°ããŒãã« ã¹ãããã·ã§ããããããã«ã¢ã¯ã»ã¹ã§ããããã«ããããã«äœ¿çšããã
Snapshot.isInSnapshot
ãšSnapshot.PreexistingSnapshotId
ã远å ããŸããã - ã«ã¹ã¿ã ç¶æ ãªããžã§ã¯ãã¯ãçµã¿èŸŒã¿ã®ã¹ãããã·ã§ãã ãªããžã§ã¯ãã«å ãããã倿Žã®ãã¿ãŒã³ã«åŸãããšã§ãããã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸããïŒI84a17ïŒ
ãã°ã®ä¿®æ£
- ãã¹ããããã¹ãããã·ã§ããã§ã®
readObserver
ã®ããŒãžãä¿®æ£ããŸãããããã«ãããsnapshotFlow
å ã§äœ¿çšããããã¹ããããæŽŸçç¶æ ãéå°ã«ç¡å¹åãããŠããŸãããïŒIdf138ïŒ
ããŒãžã§ã³ 1.7.0-alpha06
2024 幎 4 æ 3 æ¥
androidx.compose.runtime:runtime-*:1.7.0-alpha06
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-alpha06 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ãã°ã®ä¿®æ£
- åäžå€ã®åŠç
providesDefault
ãä¿®æ£ïŒ538f45ïŒ - ãã¬ãŒã ã¯ããã¯ã«ã¢ã¯ã»ã¹ãã Recomposer ã§ã®ãããããã¯ãåé¿ïŒ07e5c6ïŒ
ããŒãžã§ã³ 1.7.0-alpha05
2024 幎 3 æ 20 æ¥
androidx.compose.runtime:runtime-*:1.7.0-alpha05
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-alpha05 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
ãã°ã®ä¿®æ£
- ç¡å¹ã«ãªã£ãã³ã³ããžã·ã§ã³ã®é 延倿Žãã¯ãªã¢ïŒ5950bcïŒ
ããŒãžã§ã³ 1.7.0-alpha04
2024 幎 3 æ 6 æ¥
androidx.compose.runtime:runtime-*:1.7.0-alpha04
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-alpha04 ã«ã¯ããããã® commit ãå«ãŸããŠããŸãã
ããã©ãŒãã³ã¹ã®æ¹å
- 掟çç¶æ
ã®è©äŸ¡ããšã« 1 å
Snapshot.current
ãåŒã³åºãïŒee7dafïŒ - ã³ã³ããžã·ã§ã³å
ã®ãªãã¶ããŒã·ã§ã³ããšã«
currentRecord
ã 1 åèªã¿åãïŒb882b2ïŒ snapshotFlow
ã§ã®èª€ã£ãã€ãã¬ãŒã¿å²ãåœãŠãåé€ïŒ231e56ïŒ- Compose ã©ã€ãã©ãªã®
nonSkippingGroupOptimization
ãæå¹ã«ããŸããããã«ãããandroidx ã®åèµ·åäžå¯ã®ãã¹ãŠã®ã³ã³ããŒã¶ãã«é¢æ°ã®çæã³ãŒãã®å¹çãåäžããŸããä»åŸããã®æ©èœãããã©ã«ãã§æå¹ã«ããäºå®ã§ããI(acbc08)
ããŒãžã§ã³ 1.7.0-alpha03
2024 幎 2 æ 21 æ¥
androidx.compose.runtime:runtime-*:1.7.0-alpha03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-alpha03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- 倿Žã®æ€åºãæ¹åããããã«çœ®æã°ã«ãŒããå°å ¥ïŒ0941b5ïŒ
ããã©ãŒãã³ã¹ã®æ¹å
- 倿Žãæ€åºããéã®ã¡ã¢ãªå²ãåœãŠãæ¹åïŒ53e7fdïŒ
- Composer ã§ã®ã¡ã¢ãªãªãŒã¯ãä¿®æ£ïŒ0e097dïŒ
- åã³ã³ããŒãºæã«ç¡å¹åãæž¡ãããã«
ScopeMap
ã䜿çšïŒe19a7eïŒ - ç¡å¹åããããæé©åããŠã掟çç¶æ ã®ã¿ãä¿æïŒf11c44ïŒ
IdentityArraySet
ã®äœ¿çšãScatterSet
ã«çœ®ãæãïŒdb572eïŒScopeMap
ã®removeScope
ãæé©åïŒbb0530ïŒ
ããŒãžã§ã³ 1.7.0-alpha02
2024 幎 2 æ 7 æ¥
androidx.compose.runtime:runtime-*:1.7.0-alpha02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-alpha02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
- åããã¬ãŒã ã®ãµãã³ã³ããžã·ã§ã³ã§ã³ã³ããŒãºå¯èœãªã©ã ããç¡å¹ã«ããŸããïŒ98301cïŒ
onForgotten
ãšåãé åºã§onRelease
ã³ãŒã«ããã¯ãåŒã³åºããŸããïŒ2cd790ïŒsnapshotFlow
ã§ç£èŠãããŠããªããã£ã«ã¿ã®å€æŽç¶æ ãïŒ796b80ïŒ
ããã©ãŒãã³ã¹ã®æ¹å
- ã¹ãããã·ã§ãã ãªãã¶ãŒããŒããã§ã«ééããŠããå Žåã¯ããã®å Žã§å€æŽããŸããïŒf60f30ïŒ
SnapshotIdSet.lowest()
ãæé©åããŸããïŒ7ae149ïŒSnapshotIdSet
ã§å²ãåœãŠãªãã®fold()
ã䜿çšããŸããïŒ532b7dïŒ- ã€ãã¬ãŒã¿ã®å²ãåœãŠãåé€ïŒ83f96bïŒ
ããŒãžã§ã³ 1.7.0-alpha01
2024 幎 1 æ 24 æ¥
androidx.compose.runtime:runtime-*:1.7.0-alpha01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.7.0-alpha01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããã©ãŒãã³ã¹ã®æé©å
- åã°ã«ãŒãã®è¿œå åŸã«ã¹ããããäœæããæ©èœã远å ïŒb5960cïŒ
- ã¹ãããã·ã§ããç¶æ ã®èšé²å€æŽãæé©åïŒ28c3feïŒ
- 匷ãã¹ãããã¢ãŒããæå¹ã«ããïŒed1766ïŒ
ãã°ã®ä¿®æ£
- çµã¿èŸŒã¿ã® remember ã§ããã©ã«ã ãã©ã¡ãŒã¿ã®ã¡ã¿ããŒã¿ãèæ ®ïŒ096665ïŒ
- ããå€ãã®ã±ãŒã¹ã§
currentCompoundHashKey
ãäžæã«ããïŒd4a872ïŒ - ã€ã³ã©ã€ã³é¢æ°åŒã³åºãã®çµäºæã«ã°ã«ãŒããèªèïŒ2a90fcïŒ
ããŒãžã§ã³ 1.6
ããŒãžã§ã³ 1.6.8
2024 幎 6 æ 12 æ¥
androidx.compose.runtime:runtime-*:1.6.8
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.8 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.6.7
2024 幎 5 æ 1 æ¥
androidx.compose.runtime:runtime-*:1.6.7
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.7 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.6.6
2024 幎 4 æ 17 æ¥
androidx.compose.runtime:runtime-*:1.6.6
ããªãªãŒã¹ãããŸãããååã®ãªãªãŒã¹ããã®å€æŽã¯ãããŸããã
ããŒãžã§ã³ 1.6.5
2024 幎 4 æ 3 æ¥
androidx.compose.runtime:runtime-*:1.6.5
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.5 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.6.4
2024 幎 3 æ 20 æ¥
androidx.compose.runtime:runtime-*:1.6.4
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.4 ã«ã¯ãããã®ã³ããããå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.6.3
2024 幎 3 æ 6 æ¥
androidx.compose.runtime:runtime-*:1.6.3
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.3 ã«ã¯ãããã® commit ãå«ãŸããŠããŸãã
ããŒãžã§ã³ 1.6.2
2024 幎 2 æ 21 æ¥
androidx.compose.runtime:runtime-*:1.6.2
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.2 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.6.1
2024 幎 2 æ 7 æ¥
androidx.compose.runtime:runtime-*:1.6.1
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.1 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
onForgotten
ãšåãé åºã§onRelease
ã³ãŒã«ããã¯ãåŒã³åºããŸããïŒ2cd790ïŒsnapshotFlow
ã§ç£èŠãããŠããªããã£ã«ã¿ã®å€æŽç¶æ ãïŒ796b80ïŒ
ããŒãžã§ã³ 1.6.0
2024 幎 1 æ 24 æ¥
androidx.compose.runtime:runtime-*:1.6.0
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.0 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
1.5.0 以éã®éèŠãªå€æŽ
æ°æ©èœ
- åã³ã³ããžã·ã§ã³ ã«ãŒãäžã«é£²ã¿èŸŒãŸããäŸå€ãåã¹ããŒïŒ4dff9aïŒ
ããã©ãŒãã³ã¹ã®æé©å
- ã¹ãããã·ã§ããç¶æ ã®èšé²å€æŽãæé©åïŒ28c3feïŒ
rememberSaveable
ãæé©åïŒf01d79ïŒ- 倿Žãèšé²ããããŸã§æŽŸçç¶æ ã®åèªã¿åããå»¶æïŒf38099ïŒ
- ã³ã³ããžã·ã§ã³ ããŒã«ã«å€ã®æäŸãæ¹åïŒa337eaïŒ
ãã°ã®ä¿®æ£
- ã¹ããã ããŒãã«ã®ã¡ã¢ãªãªãŒã¯ãä¿®æ£ïŒ73fcfeïŒ
- åé€ããããµãã³ã³ããžã·ã§ã³ã®åã³ã³ããŒãºãã¹ãããããŸããïŒIeeb99ãb/254645321ïŒ
- remember ã«ããèšç®ã«ä¿åãããŠããå Žåã«ã®ã¿
RememberObserver
ã©ã€ããµã€ã¯ã«ãããªã¬ãŒããŸããïŒf6b4dcïŒ $dirty
ã®ãã£ããã£ãã€ã³ã©ã€ã³ ã©ã ãã«å¶éããŸããïŒacfca0ïŒ- ç§»åå¯èœãªã³ã³ãã³ãã誀ã£ãã³ã³ããžã·ã§ã³ ããŒã«ã«ãåãåãããšãããåé¡ãä¿®æ£ïŒ035cd6ïŒ
ããŒãžã§ã³ 1.6.0-rc01
2024 幎 1 æ 10 æ¥
androidx.compose.runtime:runtime-*:1.6.0-rc01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.0-rc01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.6.0-beta03
2023 幎 12 æ 13 æ¥
androidx.compose.runtime:runtime-*:1.6.0-beta03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.0-beta03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.6.0-beta02
2023 幎 11 æ 29 æ¥
androidx.compose.runtime:runtime-*:1.6.0-beta02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.0-beta02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.6.0-beta01
2023 幎 11 æ 15 æ¥
androidx.compose.runtime:runtime-*:1.6.0-beta01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.0-beta01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- ã¢ãããŒã·ã§ã³ã§ç¹å®ã®å®å®æ§å€ãäŒæããŸããïŒ274a4cïŒ
ãã°ã®ä¿®æ£
- ã³ã³ããã¹ãå ã®æ§æããŒã«ã« ã¹ã³ãŒãç¶æ ã«åç §ããªã·ãŒã䜿çšããŸãã(83361c)
- $dirty ã®ãã£ããã£ãã€ã³ã©ã€ã³ ã©ã ãã«å¶éããŸããïŒacfca0ïŒ
- ç§»åå¯èœãªã³ã³ãã³ãã誀ã£ãã³ã³ããžã·ã§ã³ ããŒã«ã«ãåãåãããšãããåé¡ãä¿®æ£ïŒ035cd6ïŒ
RecomposeScopeImpl
ã§é«éãªéå²ãåœãŠããã·ã¥ãããã䜿çšããŸããïŒd79494ïŒObjectIntMap
ãDerivedState
ã§äœ¿çšããŸããïŒ21862eïŒDerivedState
ã® intSnapshotThreadLocal
ã«IntRef
ã䜿çšããŸããïŒ04eaf4ïŒ
ããŒãžã§ã³ 1.6.0-alpha08
2023 幎 10 æ 18 æ¥
androidx.compose.runtime:runtime-*:1.6.0-alpha08
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.0-alpha08 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
- remember ã«ããèšç®ã«ä¿åãããŠããå Žåã«ã®ã¿
RememberObserver
ã©ã€ããµã€ã¯ã«ãããªã¬ãŒããŸããïŒf6b4dcïŒ - ç¡å¹åãªã¹ãã®äžŠã¹æ¿ãã«ãããå²ãåœãŠãæ¹åãïŒ954d63ïŒ
SnapshotStateObserver
ã§æ°ããéå²ãåœãŠãããã䜿çšããŸããïŒ4303ceïŒ- ã³ã³ããžã·ã§ã³ãç¡å¹ã«ãªã£ããšãã«ç¡å¹åãã¯ãªã¢ããŸããïŒe001beïŒ
ããŒãžã§ã³ 1.6.0-alpha07
2023 幎 10 æ 4 æ¥
androidx.compose.runtime:runtime-*:1.6.0-alpha07
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.0-alpha07 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
SnapshotStateList
ãRandomAccess
ãšããŠããŒã¯ãããããã«ãªãããªã¹ã ãã«ããŒã®çŽæ¥ã€ã³ããã¯ã¹ ããŒãžã§ã³ã䜿çšã§ããããã«ãªããŸãããïŒI5210cãb/219554654ïŒ
ããŒãžã§ã³ 1.6.0-alpha06
2023 幎 9 æ 20 æ¥
androidx.compose.runtime:runtime-*:1.6.0-alpha06
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.0-alpha06 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.6.0-alpha05
2023 幎 9 æ 6 æ¥
androidx.compose.runtime:runtime-*:1.6.0-alpha05
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.0-alpha05 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.6.0-alpha04
2023 幎 8 æ 23 æ¥
androidx.compose.runtime:runtime-*:1.6.0-alpha04
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.0-alpha04 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
æ°æ©èœ
- åã³ã³ããžã·ã§ã³ ã«ãŒãäžã«é£²ã¿èŸŒãŸããäŸå€ãåã¹ããŒïŒ4dff9aïŒ
API ã®å€æŽ
ReusableComposition
ãç¡å¹ã«ããã¡ãœããã远å ããŸãããããã«ãããã¢ãã¿ãªã³ã°ã¯åé€ãããŸãããããŒãã¯ãã®ãŸãŸæ®ããŸããç¡å¹ã«ãªã£ãã³ã³ããžã·ã§ã³ã¯ãsetContent
ãåŒã³åºãããšã§å床æå¹ã«ã§ããŸããïŒIb7f31ïŒ- ãµãã³ã³ããžã·ã§ã³ã®ã©ã€ããµã€ã¯ã«ãšåå©çšã管çãã
ReusableComposition
ã€ã³ã¿ãŒãã§ãŒã¹ã远å ããŸããïŒI812d1ãb/252846775ïŒã
ããŒãžã§ã³ 1.6.0-alpha03
2023 幎 8 æ 9 æ¥
androidx.compose.runtime:runtime-*:1.6.0-alpha03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.0-alpha03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
- æ°ãã
CompositionLocalProvider
æé©åãä¿®æ£ïŒ3118e88ïŒ - ç§»åå¯èœãªã³ã³ãã³ã ããŒãã®åè§£æ¹æ³ãä¿®æ£ãïŒ5e3d59bïŒ
ããŒãžã§ã³ 1.6.0-alpha02
2023 幎 7 æ 26 æ¥
androidx.compose.runtime:runtime-*:1.6.0-alpha02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.0-alpha02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
æ°æ©èœãšããã©ãŒãã³ã¹ã®åŒ·å
rememberSaveable
ãæé©åïŒf01d79ïŒ- 倿Žãèšé²ããããŸã§æŽŸçç¶æ ã®åèªã¿åããå»¶æïŒf38099ïŒ
- ã³ã³ããžã·ã§ã³ ããŒã«ã«å€ã®æäŸãæ¹åïŒa337eaïŒ
SideEffect
ã¯@ExplicitGroupsComposable
ãšããŠããŒã¯ãããã°ã«ãŒããçæãããªãããã«ããŸããïŒI74815ïŒ- åå©çšæã«ã³ã³ããžã·ã§ã³ ããŒã«ã« ããããæ¯èŒããªãããã«ããŸããïŒ782071ïŒ
API ã®å€æŽ
CompositionLocalProviders
ã®ç¹æ®ãªã±ãŒã¹ã®ãªãŒããŒããŒãã远å ããŸãããããã«ãããè€æ°ã®å€ãæå®ããéã«é«éåããããã«äœ¿çšããããªãŒããŒããããåé¿ã§ããŸãããåäžã®å€ãæå®ããéã«ã¯ãªãŒããŒããããçºçããŸããïŒI6d640ãb/288169379ïŒ
ãã°ã®ä¿®æ£
- ã¹ããã ããŒãã«ã®ã¡ã¢ãªãªãŒã¯ãä¿®æ£ïŒ73fcfeïŒ
stateSaver
ã null ãè¿ãå Žåã®rememberSaveable
ã®åŸ©å æ¹æ³ãä¿®æ£ïŒ90748cïŒ
ããŒãžã§ã³ 1.6.0-alpha01
2023 幎 6 æ 21 æ¥
androidx.compose.runtime:runtime-*:1.6.0-alpha01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.6.0-alpha01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
- åé€ããããµãã³ã³ããžã·ã§ã³ã®åã³ã³ããŒãºãã¹ãããããŸããïŒIeeb99ãb/254645321ïŒ
- ã¹ãããã·ã§ããã®é©çšæã®å²ãåœãŠãåæžããŸãããïŒI65c09ïŒ
- ã¹ãããã·ã§ããã倿ŽãããŠããªãå Žåã
DerivedState
ã§readableHash
ã®èšç®ãåé¿ïŒ68c565ïŒ
ããŒãžã§ã³ 1.5
ããŒãžã§ã³ 1.5.4
2023 幎 10 æ 18 æ¥
androidx.compose.runtime:runtime-*:1.5.4
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.5.4 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.5.3
2023 幎 10 æ 4 æ¥
androidx.compose.runtime:runtime-*:1.5.3
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.5.3 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.5.2
2023 幎 9 æ 27 æ¥
androidx.compose.runtime:runtime-*:1.5.2
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.5.2 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.5.1
2023 幎 9 æ 6 æ¥
androidx.compose.runtime:runtime-*:1.5.1
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.5.1 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.5.0
2023 幎 8 æ 9 æ¥
androidx.compose.runtime:runtime-*:1.5.0
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.5.0 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- åã³ã³ããŒãºãã«ã©ãŒ ã¢ãã¡ãŒã·ã§ã³ã
AndroidComposeView
ã§ã®å²ãåœãŠãåé€ããŸãããïŒIb2bfaïŒ - ç¶æ
ãäœæãã
remember
åŒã³åºãã§ã©ããããå¿ èŠããã颿°ãããŒã¯ãã@StateFactoryMarker
ã¢ãããŒã·ã§ã³ã远å ããŸãããïŒI64550ïŒ - State ãš
MutableState
ã®ããªããã£ã ããŒãžã§ã³ã远å ïŒfb3d89ïŒ Snapshot.isApplyObserverNotificationPending
ã远å ããŸããïŒI672a5ïŒState
API ã®ããªããã£ã ããŒãžã§ã³ã远å ããŸãããããã«ããããªãŒããã¯ã·ã³ã°ã®ããã«ãã£ãçºçãããããšãªããIntãLongãFloatãDouble ã®å€ãState
ãªããžã§ã¯ãã§ãã©ããã³ã°ã§ããããã«ãªããŸãããããã䜿çšããã«ã¯ãæ°ãããã¡ã¯ã㪠ã¡ãœããmutableIntState(Int)
ãmutableFloatStateOf(Float)
ãªã©ã䜿çšããŸããïŒI48e43ïŒ
ãã°ã®ä¿®æ£
- åé€ããããµãã³ã³ããžã·ã§ã³ã®åã³ã³ããŒãºãã¹ãããããŸããïŒIeeb99ãb/254645321ïŒ
ComposerImpl
ã§ã¹ãããã·ã§ããåç §ãä¿æããªãïŒ0206f7ïŒ- ã³ã³ããžã·ã§ã³ã 2 åé©çšããªãïŒf5791bïŒ
- åæåãããŠããªã掟çç¶æ ã®å€ã®ç¡å¹åãä¿èšŒïŒaa2a92ïŒ
- ã³ã³ããžã·ã§ã³ã®ç Žæ£æã«
onEndChanges
ãåŒã³åºããŸããïŒ62cc8cïŒ - ã³ã³ãã³ãããµãã³ã³ããžã·ã§ã³ã«ç§»åããåé¡ãä¿®æ£ïŒ4beb41ïŒ
- ãããããã¯ã®å¯èœæ§ãä¿®æ£ïŒc1a425ã8edce0ïŒ
- Android ãŠã£ã³ããŠçšã«äœæãããåã³ã³ããŒã¶ãŒã¯ãON_STOP éç¥ãåä¿¡ãããšããã¹ãŠã®ã³ã³ããžã·ã§ã³ã§ã¯ãªã
withFrameNanos
ãžã®åŒã³åºãã®ã¿ããããã¯ããããã«ãªããŸãããã€ãŸãã忢ããã¢ã¯ãã£ããã£ã«é¢é£ä»ãããããŠã£ã³ããŠã¯ãããŒã¿å€æŽã®ããã«åã³ã³ããŒãºãç¶ããŸãããã¢ãã¡ãŒã·ã§ã³ãwithFrameNanos
ã®ä»ã®åŒã³åºãå ã¯ãããã¯ãããŸããïŒId9e7fãb/240975572ïŒ - ãšãã§ã¯ããç Žæ£ããåã«
LayoutNode
ã®ç¡å¹åã³ãŒã«ããã¯ãå®è¡ 3784073 - åèµ·åãããã©ã ãã®å€æŽããããã©ã°ãä¿®æ£ ea81df9
- ããŒããå«ãã³ã³ããŒã¶ãã«ã®ã©ã€ãç·šéã®ååž°ãä¿®æ£ 73fd4d8
- ON_STOP ã¯åæ ae276f1 ã§ã¯ãªããã¬ãŒã ã¯ãã㯠ãããŒããã£ã¹ããäžæåæ¢ãã¹ã
- 倿ŽãããŠããªã掟çç¶æ
ã®
SnapshotStateObserver
ã¹ã³ãŒããç¡å¹å 84d9b1c - ã³ã³ããžã·ã§ã³ãç Žæ£ããéã®æœåšçãªãããããã¯ãä¿®æ£ 28761fc
- ãµãã³ã³ããžã·ã§ã³ãžã®ã³ã³ãã³ãã®ç§»åãä¿®æ£ 92d4156
- åèµ·åãããã©ã ãã®å€æŽããããã©ã°ãä¿®æ£ïŒ8a03e9ïŒ
- 广ãç Žæ£ããåã«
LayoutNode
ã®éã¢ã¯ãã£ãåã³ãŒã«ããã¯ãå®è¡ïŒ8b0fa4ïŒ - ããŒãã°ã«ãŒãã®çµäºæã®
endToMarker()
ãä¿®æ£ããŸãããïŒd71d980ïŒ - ç¡å¹åã®ãã§ãã¯ã«çŸåšã®
SlotWriter
ã°ã«ãŒãã䜿çšïŒa0b518bïŒ SlotTable.moveSlotGapTo()
ã®fill
ãåé€ããŠãã¯ããŒãºã«ç§»åããŸããïŒ81f9935ïŒ- ç§»åå¯èœãªã³ã³ãã³ãã®ç§»åäžã«ç¡å¹åãæ¬ èœããåé¡ãä¿®æ£ïŒ1d7c024ïŒ
- ç§»åãããç§»åå¯èœãªã³ã³ãã³ãã®å³æç¡å¹åãä¿®æ£ïŒ8676618ïŒ
ããã©ãŒãã³ã¹ã®æ¹å
- ã¹ãããã·ã§ããã倿ŽãããŠããªãå Žåã¯ã
DerivedState
ã§readableHash
ãèšç®ããªãããã«ããŸããïŒ307102ïŒ - å²ãåœãŠãåæžããŸããïŒI65c09ãd7ea77ã727974ã445808ïŒ
- Compose
CoroutineScopes
ã®ã¯ã€ã㯠ãã£ã³ã»ã«ïŒa55362 ãš bd382fïŒ - ã¢ã¯ã»ã¹ã§ããªãç¶æ ã¬ã³ãŒãã§ç¶æ ãªããžã§ã¯ãã®ã¬ã³ãŒããäžæžãããïŒc986960ïŒ
- ã°ã«ãŒããå®è£ ãããšãã«æ£ããã¹ã³ãŒãã®ã³ã³ããŒã¶ãŒã䜿çšïŒ9a5e5b6ïŒ
IdentityArraySet
ã䜿çšããŠã¹ãããã·ã§ããã®ç¡å¹åãä¿åïŒ7f60ccaïŒ- ã¹ãããã·ã§ããã®ã¢ãã¿ãªã³ã°ã®å²ãåœãŠãåæžïŒ5bc535fïŒ
ããŒãžã§ã³ 1.5.0-rc01
2023 幎 7 æ 26 æ¥
androidx.compose.runtime:runtime-*:1.5.0-rc01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.5.0-rc01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
倿Žãèšé²ããããŸã§æŽŸçç¶æ ã®åèªã¿åããå»¶æïŒf38099ïŒ
mutableStateOf()
åŒã³åºãã察å¿ããããªããã£ãã®å°çšåã«ç§»è¡ããããšãæšå¥šãããªãã·ã§ã³ã®æ€æ»ãå©çšã§ããŸããlint ID ã¯AutoboxingStateCreation
ã§ãã以åã¯ããã®æ€æ»ã¯ãã¹ãŠã®ãããžã§ã¯ãã§ããã©ã«ãã§æå¹ã«ãªã£ãŠããŸãããAndroid Studio ã®ãšãã£ã¿ãšãããžã§ã¯ãã® lint åºåã§ãã®èŠåã衚瀺ããã«ã¯ãã¢ãžã¥ãŒã«ã® build.gradle ãŸã㯠build.gradle.kts æ§æå ã§warning "AutoboxingStateCreation"
ã宣èšããŠãéå€§åºŠãæ å ±ããèŠåïŒãŸãã¯ãã以äžïŒã«å€æŽããŸãïŒI34f7eïŒãandroid { lint { warning "AutoboxingStateCreation" } ... }
ããŒãžã§ã³ 1.5.0-beta03
2023 幎 6 æ 28 æ¥
androidx.compose.runtime:runtime-*:1.5.0-beta03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.5.0-beta03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
- åé€ããããµãã³ã³ããžã·ã§ã³ã®åã³ã³ããŒãºãã¹ãããããŸããïŒIeeb99ãb/254645321ïŒ
ããŒãžã§ã³ 1.5.0-beta02
2023 幎 6 æ 7 æ¥
androidx.compose.runtime:runtime-*:1.5.0-beta02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.5.0-beta02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããã©ãŒãã³ã¹ã®æ¹å
- ã¹ãããã·ã§ããã倿ŽãããŠããªãå Žåã¯ã
DerivedState
ã§readableHash
ãèšç®ããªãããã«ããŸããïŒ307102ïŒ
ããŒãžã§ã³ 1.5.0-beta01
2023 幎 5 æ 24 æ¥
androidx.compose.runtime:runtime-*:1.5.0-beta01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.5.0-beta01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- åã³ã³ããŒãºãã«ã©ãŒ ã¢ãã¡ãŒã·ã§ã³ã
AndroidComposeView
ã§ã®å²ãåœãŠãåé€ããŸããïŒIb2bfaïŒ - ç¶æ
ãäœæãã
remember
åŒã³åºãã§ã©ããããå¿ èŠããã颿°ãããŒã¯ãã@StateFactoryMarker
ã¢ãããŒã·ã§ã³ã远å ããŸãããïŒI64550ïŒ - State ãš
MutableState
ã®ããªããã£ã ããŒãžã§ã³ã远å ïŒfb3d89ïŒ Snapshot.isApplyObserverNotificationPending
ã远å ããŸããïŒI672a5ïŒ
ãã°ã®ä¿®æ£
- å²ãåœãŠãåæžããŸããïŒI65c09ãd7ea77ã727974ã445808ïŒ
ComposerImpl
ã§ã¹ãããã·ã§ããåç §ãä¿æããªãïŒ0206f7ïŒ- Compose
CoroutineScopes
ã®ã¯ã€ã㯠ãã£ã³ã»ã«ïŒa55362 ãš bd382fïŒ - ã³ã³ããžã·ã§ã³ã 2 åé©çšããªãïŒf5791bïŒ
- åæåãããŠããªã掟çç¶æ ã®å€ã®ç¡å¹åãä¿èšŒïŒaa2a92ïŒ
- ã³ã³ããžã·ã§ã³ã®ç Žæ£æã«
onEndChanges
ãåŒã³åºããŸããïŒ62cc8cïŒ - ã³ã³ãã³ãããµãã³ã³ããžã·ã§ã³ã«ç§»åããåé¡ãä¿®æ£ïŒ4beb41ïŒ
- æœåšçãªãããããã¯ãä¿®æ£ïŒc1a425
- ON_STOP ã¯ã³ã³ããžã·ã§ã³ã§ã¯ãªããã¬ãŒã ã¯ããã¯ã®ãããŒããã£ã¹ããäžæåæ¢ãã¹ãïŒf4a2d1ïŒ
- åèµ·åãããã©ã ãã®å€æŽããããã©ã°ãä¿®æ£ïŒ8a03e9ïŒ
- 广ãç Žæ£ããåã«
LayoutNode
ã®éã¢ã¯ãã£ãåã³ãŒã«ããã¯ãå®è¡ïŒ8b0fa4ïŒ
å€éšããã®åå
Snapshot.isApplyObserverNotificationPending
ã远å ããŸããïŒI672a5ïŒ
ããŒãžã§ã³ 1.5.0-alpha04
2023 幎 5 æ 10 æ¥
androidx.compose.runtime:runtime-*:1.5.0-alpha04
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.5.0-alpha04 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
State
API ã®ããªããã£ã ããŒãžã§ã³ã远å ããŸãããããã«ããããªãŒããã¯ã·ã³ã°ã®ããã«ãã£ãçºçãããããšãªããIntãLongãFloatãDouble ã®å€ãState
ãªããžã§ã¯ãã§ãã©ããã³ã°ã§ããããã«ãªããŸãããããã䜿çšããã«ã¯ãæ°ãããã¡ã¯ã㪠ã¡ãœããmutableIntState(Int)
ãmutableFloatStateOf(Float)
ãªã©ã䜿çšããŸããïŒI48e43ïŒ
ãã°ã®ä¿®æ£
ã³ã³ããžã·ã§ã³ã®ç Žæ£æã«
onEndChanges
ãåŒã³åºããŸããComposition.dispose
ã§åé€ããããã©ãŒã«ã¹ ããŒããonEndChanges
ããµãã¹ã¯ã©ã€ãããŠãã©ãŒã«ã¹ããªã»ããããŸããïŒ03d4a47ïŒåæåãããŠããªã掟çç¶æ å€ã®ç¡å¹åãä¿èšŒããŸããåæŽŸçç¶æ ã¯ã
SnapshotStateObserver
ã®äŸåé¢ä¿ã®ãªã¹ãã«é¢é£ä»ããããŠããŸããããã¯ãäŸåé¢ä¿ã倿Žããããã³ã«æŽŸçç¶æ ã«é¢é£ä»ããããã¹ã³ãŒããç¡å¹ã«ããããã«äœ¿çšãããŸããäŸåé¢ä¿ã®å€æŽã¯ã¹ãããã·ã§ããã®é²è¡æã«ç»é²ãããŸããããã¯ã掟çç¶æ ã®èªã¿åãåŸïŒSnapshot.notifyObjectsInitialized()
ã®åŒã³åºãã«ããïŒã«çºçããå¯èœæ§ããããŸããSnapshotStateObserver
ã®ä»¥åã®æŽŸçç¶æ ã®ç£èŠããžãã¯ã§ã¯ãå€ãäŸåé¢ä¿ãã¯ãªãŒã³ã¢ããããŠããæ°ããå€ãèªã¿åã£ãŠããŸãããããã«ãããã¯ãªãŒã³ã¢ãããããç¶æ ã§ç¡å¹åãçºçããäŸåé¢ä¿ã®ç¡å¹åãç»é²ãããªãç«¶åç¶æ ãçºçããŸããããã®å€æŽã«ãããæŽŸçç¶æ ã®èªã¿åããšäŸåé¢ä¿ã®ã¯ãªãŒã³ã¢ããã®é åºã倿Žãããç¡å¹åãåžžã«æå¹ãªç¶æ ã§è¡ãããããã«ãªããŸããïŒc472be6ïŒ
ããŒãžã§ã³ 1.5.0-alpha03
2023 幎 4 æ 19 æ¥
androidx.compose.runtime:runtime-*:1.5.0-alpha03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.5.0-alpha03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- Android ãŠã£ã³ããŠçšã«äœæãããåã³ã³ããŒã¶ãŒã¯ãON_STOP éç¥ãåä¿¡ãããšããã¹ãŠã®ã³ã³ããžã·ã§ã³ã§ã¯ãªã
withFrameNanos
ãžã®åŒã³åºãã®ã¿ããããã¯ããããã«ãªããŸãããã€ãŸãã忢ããã¢ã¯ãã£ããã£ã«é¢é£ä»ãããããŠã£ã³ããŠã¯ãããŒã¿å€æŽã®ããã«åã³ã³ããŒãºãç¶ããŸãããã¢ãã¡ãŒã·ã§ã³ãwithFrameNanos
ã®ä»ã®åŒã³åºãå ã¯ãããã¯ãããŸããïŒId9e7fãb/240975572ïŒ
ãã°ã®ä¿®æ£
- ã¹ãããã·ã§ãã ãªã¹ããšãããã®æœåšçãªãããããã¯ãä¿®æ£ 5c1a425
- ãšãã§ã¯ããç Žæ£ããåã«
LayoutNode
ã®ç¡å¹åã³ãŒã«ããã¯ãå®è¡ 3784073 - åèµ·åãããã©ã ãã®å€æŽããããã©ã°ãä¿®æ£ ea81df9
- ããŒããå«ãã³ã³ããŒã¶ãã«ã®ã©ã€ãç·šéã®ååž°ãä¿®æ£ 73fd4d8
- ON_STOP ã¯åæ ae276f1 ã§ã¯ãªããã¬ãŒã ã¯ãã㯠ãããŒããã£ã¹ããäžæåæ¢ãã¹ã
- 倿ŽãããŠããªã掟çç¶æ
ã®
SnapshotStateObserver
ã¹ã³ãŒããç¡å¹å 84d9b1c - ã³ã³ããžã·ã§ã³ãç Žæ£ããéã®æœåšçãªãããããã¯ãä¿®æ£ 28761fc
- ãµãã³ã³ããžã·ã§ã³ãžã®ã³ã³ãã³ãã®ç§»åãä¿®æ£ 92d4156
ããŒãžã§ã³ 1.5.0-alpha02
2023 幎 4 æ 5 æ¥
androidx.compose.runtime:runtime-*:1.5.0-alpha02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.5.0-alpha02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
æ°æ©èœ
- Kotlin ã®
getValue
æŒç®åãã³ã³ããŒã¶ãã«ã«ãªããŸããïŒf174f6eïŒ
ãã°ã®ä¿®æ£ãããã©ãŒãã³ã¹ã®æ¹å
- ã¢ã¯ã»ã¹ã§ããªãç¶æ ã¬ã³ãŒãã§ç¶æ ãªããžã§ã¯ãã®ã¬ã³ãŒããäžæžãããïŒc986960ïŒ
- ã°ã«ãŒããå®è£ ãããšãã«æ£ããã¹ã³ãŒãã®ã³ã³ããŒã¶ãŒã䜿çšïŒ9a5e5b6ïŒ
- ããŒãã°ã«ãŒãã®çµäºæã®
endToMarker()
ãä¿®æ£ããŸãããïŒd71d980ïŒ - ç¡å¹åã®ãã§ãã¯ã«çŸåšã®
SlotWriter
ã°ã«ãŒãã䜿çšïŒa0b518bïŒ IdentityArraySet
ã䜿çšããŠã¹ãããã·ã§ããã®ç¡å¹åãä¿åïŒ7f60ccaïŒSlotTable.moveSlotGapTo()
ã®fill
ãåé€ããŠãã¯ããŒãºã«ç§»åããŸããïŒ81f9935ïŒ- ç§»åå¯èœãªã³ã³ãã³ãã®ç§»åäžã«ç¡å¹åãæ¬ èœããåé¡ãä¿®æ£ïŒ1d7c024ïŒ
- ç§»åãããç§»åå¯èœãªã³ã³ãã³ãã®å³æç¡å¹åãä¿®æ£ïŒ8676618ïŒ
- ã¹ãããã·ã§ããã®ã¢ãã¿ãªã³ã°ã®å²ãåœãŠãåæžïŒ5bc535fïŒ
ããŒãžã§ã³ 1.5.0-alpha01
2023 幎 3 æ 22 æ¥
androidx.compose.runtime:runtime-*:1.5.0-alpha01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.5.0-alpha01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
æ°æ©èœ
Modifier.Nodes
ãã³ã«ãŒãã³ãèµ·åã§ããããã«Modifier.Node#coroutineScope
ã远å ïŒI76ef9ïŒCompositionLocalConsumerModifierNode
ã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ããããšã§ãModifier.Nodes
ãCompositionLocals
ãèªã¿åããããã«ããŸããïŒIb44dfïŒ
ããŒãžã§ã³ 1.4
ããŒãžã§ã³ 1.4.3
2023 幎 5 æ 3 æ¥
androidx.compose.runtime:runtime-*:1.4.3
ããªãªãŒã¹ãããŸããã倿Žã¯ãããŸããã
ããŒãžã§ã³ 1.4.2
2023 幎 4 æ 19 æ¥
androidx.compose.runtime:runtime-*:1.4.2
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.4.2 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
ã¹ãããã·ã§ãã ãªã¹ããšãããã®æœåšçãªãããããã¯ãä¿®æ£ 2eb6570
SnapshotStateList
ãŸãã¯SnapshotStateMap
ã«ã³ã³ãã³ãã远å ããéã«ãç¶æ ã¬ã³ãŒããžã®çŽæ¥æžã蟌ã¿ãšåæã«å€æŽãè¡ããããšããããããã¯ãçºçããå¯èœæ§ããããŸããããã¯ãæªäœ¿çšã®ã¬ã³ãŒããè§£æŸããããã«çŽæ¥æžã蟌ã¿ã䜿çšãã 93fcae828b ã§å°å ¥ããã倿Žã«ãããçºçããå¯èœæ§ãå€§å¹ ã«é«ãŸããŸããããããããã¯ãŸãã¯ãªã¹ãããã¯ãä¿æãããŠãããšãã«ã¹ãããã·ã§ãã ããã¯ãååŸãããªãããã«ãããã¯ã®é åºã倿ŽãããŸããã
ããŒãžã§ã³ 1.4.1
2023 幎 4 æ 5 æ¥
androidx.compose.runtime:runtime-*:1.4.1
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.4.1 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
- ããŒãã°ã«ãŒãã®çµäºæã®
endToMarker()
ãä¿®æ£ãd71d980
ããŒãžã§ã³ 1.4.0
2023 幎 3 æ 22 æ¥
androidx.compose.runtime:runtime-*:1.4.0
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.4.0 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
1.3.0 以éã®éèŠãªå€æŽ
- æåã®ã³ã³ããžã·ã§ã³ 3680e25 ã§
LiveData
ããåæåãããå€ãäœ¿çš - Compose ããŒãã®ã©ã€ããµã€ã¯ã«ã管çãã
ComposeNodeLifecycleCallback
ã远å ããŸããã8b6a258 ComposableMethod
7b6c7ad ã«parameterTypes
ããããã£ã远å
ãã°ã®ä¿®æ£ãšããã©ãŒãã³ã¹ã®æ¹å
SnapshotStateObserver
29f4a3e ã§äž¡æ¹ã®ã¹ã³ãŒã ã€ã³ããã¯ã¹ãã¯ãªã¢- ã¹ãããã§ããªãã©ã ãã®æ¬æã«å¿ èŠãªã°ã«ãŒãã远å 7d06752
- ã¹ãããã·ã§ããç¶æ ã®ã¡ã¢ãªåç §ç¹æ§ãæ¹åããŸããã93fcae8
- ã³ã³ããžã·ã§ã³ ããŒã«ã« ã«ãã¯ã¢ããã§ãã¯ã·ã³ã°ãåé€ããŸããã0875717
- åå©çšäžå¯ããŒã ã°ã«ãŒãã«æ£ããããŒãäœ¿çš 6388d8d
- ååž°çãªé©çšããã³åæå®è¡ã®é©çšãã
SnapshotStateObserver
ãä¿è·ããŸãã98cb6ba IdentityArraySet
ã®ãgetãã¡ãœããã«ãã§ãã¯ã€ã³ããã¯ã¹å¢çãã§ãã¯ã远å ããŸãã 35a77d3ViewTreeLifecycleOwner
æ¡åŒµæ©èœã䜿çšããããã«ã³ã³ããŒãº ã¢ãžã¥ãŒã«ãæŽæ° 21c2122- Recomposer ããã¬ãŒã ãçµäºããåŸãé©çšéç¥ãéä¿¡ããŸãã98f2641
- Recomposer 8f8656f ããã£ã³ã»ã«ãããšãã«çºçããã€ã³ããã¯ã¹ç¯å²å€ã®ã¯ã©ãã·ã¥ãä¿®æ£
- Composition ã®èŠªãããã€ãã倿Žãããå Žåã¯åžžã«åã³ã³ããŒãºãåŒ·å¶ 9526fcc
- ãã£ã³ã»ã«ããããžã§ãã«å¯Ÿãã Recomposer ã®èš±å®¹ç¯å² a55f7ed
- 倿°ã®ã³ã³ããŒã¶ãŒã®ç¡å¹åã®åŠçãæ¹å 9b7ed67
- ããŒã«ã«ä»¥å€ã®è¿åã®çµäºã°ã«ãŒãã®çæãä¿®æ£ b6f590c
ããŒãžã§ã³ 1.4.0-rc01
2023 幎 3 æ 8 æ¥
androidx.compose.runtime:runtime-*:1.4.0-rc01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.4.0-rc01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
ããŒãžã§ã³ 1.4.0-beta02
2023 幎 2 æ 22 æ¥
androidx.compose.runtime:runtime:1.4.0-beta02
ãš androidx.compose.runtime:runtime-saveable:1.4.0-beta02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.4.0-beta02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.4.0-beta01
2023 幎 2 æ 8 æ¥
androidx.compose.runtime:runtime-*:1.4.0-beta01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.4.0-beta01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
ComposeNodeLifecycleCallback
ã远å ãããCompose ããŒãã®ã©ã€ããµã€ã¯ã«ã管çã§ããããã«ãªããŸãããïŒI3731bïŒComposer.disableSourceInformation()
ã¯ãã¹ãã§ã®åŒã³åºãã«ã®ã¿å®å šã§ããããã@TestOnly
ã远å ããŸãããïŒI896c8ïŒ
ãã°ã®ä¿®æ£
- ã³ã³ããžã·ã§ã³ ããŒã«ã« ã«ãã¯ã¢ããã§ãã¯ã·ã³ã°ãåé€ããŸãããïŒ62f66aïŒ
- ã¹ãããã·ã§ããç¶æ ã®ã¡ã¢ãªåç §ç¹æ§ãæ¹åããŸãããïŒdfb451ïŒ
ããŒãžã§ã³ 1.4.0-alpha05
2023 幎 1 æ 25 æ¥
androidx.compose.runtime:runtime:1.4.0-alpha05
ãš androidx.compose.runtime:runtime-saveable:1.4.0-alpha05
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.4.0-alpha05 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- ã€ã³ã©ã€ã³é¢æ°ãŸãã¯éæšå¥šã«ãªã£ãéè¡šç€ºé¢æ°ã®åã null å¯èœæ§ãæ¡å€§ããŸãããïŒI24f91ïŒ
ããŒãžã§ã³ 1.4.0-alpha04
2023 幎 1 æ 11 æ¥
androidx.compose.runtime:runtime-*:1.4.0-alpha04
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.4.0-alpha04 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
TestMonotonicFrameClock
ãæ£ãã詊éšéçšçã¢ãããŒã·ã§ã³ã䜿çšããããã«ãªããŸãããïŒI95c9eïŒ
ãã°ã®ä¿®æ£
- ååž°çãªé©çšããã³åæå®è¡ã®é©çšãã
SnapshotStateObserver
ãä¿è·ããŸããïŒd902fbïŒ
ããŒãžã§ã³ 1.4.0-alpha03
2022 幎 12 æ 7 æ¥
androidx.compose.runtime:runtime-*:1.4.0-alpha03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.4.0-alpha03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
java.lang.reflect.Method#getParameterTypes()
ã«äŒŒãæ°ãããããªã㯠ã¡ãœãããComposableMethod
ã¯ã©ã¹ã«è¿œå ããŸããïŒIab0c3ïŒ
ãã°ã®ä¿®æ£
Recomposer
ã倿Žã®é©çšãçµäºããåŸãã¹ãããã·ã§ããã®é©çšéç¥ãéä¿¡ãããããã«ãªããŸãããïŒIad6c0ãb/222093277ïŒ
ããŒãžã§ã³ 1.4.0-alpha02
2022 幎 11 æ 9 æ¥
androidx.compose.runtime:runtime-*:1.4.0-alpha02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.4.0-alpha02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.4.0-alpha01
2022 幎 10 æ 24 æ¥
androidx.compose.runtime:runtime-*:1.4.0-alpha01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.4.0-alpha01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
SnapshotStateList
ãšSnapshotStateMap
ã§ãtoList()
ãštoMap()
ãããããæç€ºçã«å®è£ ãããŸããããããã®ã¡ãœããã¯ãã³ã³ãã³ããä¿åããããã«äœ¿çšãããå éšã®äžå€ããŒã¿ãè¿ããããã³ããŒãå®è¡ããã«çŸåšã®ã³ã³ãã³ããè¿ããŸãããã®å€ã¯ãããŒã¿ã®ã³ããŒãå¿ èŠãšããã«ãsnapshotFlow
ã䜿çšããŠå€ã®ãããŒãçæãããããªã©ã«äœ¿çšãããŸããïŒIca2bdïŒ
ããŒãžã§ã³ 1.3
ããŒãžã§ã³ 1.3.3
2023 幎 1 æ 11 æ¥
androidx.compose.runtime:runtime-*:1.3.3
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.3.3 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
- 1.3.2 ããã®å€æŽã¯ãããŸããã
ããŒãžã§ã³ 1.3.2
2022 幎 12 æ 7 æ¥
androidx.compose.runtime:runtime-*:1.3.2
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.3.2 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
- androidx.compose.ui 1.3.2 ããµããŒãããããã«æŽæ°ããŸãã
ããŒãžã§ã³ 1.3.1
2022 幎 11 æ 9 æ¥
androidx.compose.runtime:runtime-*:1.3.1
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.3.1 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.3.0
2022 幎 10 æ 24 æ¥
androidx.compose.runtime:runtime-*:1.3.0
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.3.0 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
1.2.0 以éã®éèŠãªå€æŽ
äŸå€åŠç / ã©ã€ãç·šéãµããŒã
- ã©ã€ãç·šéãé©åã«ãµããŒãããããã«ãã³ã³ããžã·ã§ã³äžã«äŸå€ãåŠçã§ããããã« API ã远å ããŸãã
- ããããªããŒãã®æ§æãšã©ãŒåŠç
- ä¿å / åŸ©å æã®ã©ã€ãç·šéãšã©ãŒã®åŠç
ã³ã³ããžã·ã§ã³ã®ãã¬ãŒã¹
- æ°ããã³ã³ããžã·ã§ã³ ãã¬ãŒã¹ ããŒã«ããµããŒãããããã«ãã©ã³ã¿ã€ã ãã¬ãŒã¹ API ã远å ããŸãã
- ã³ã³ããŒãºå¯èœãªãã¬ãŒã¹ ã€ãã³ãã®éå§ / çµäºåŒã³åºããçæãã
- ComposerKt.traceEventStart(Int, String) ãå床远å
ã³ã³ããŒãºå¯èœãª Reflection API
- æ°ãã
ComposableMethod
API ã远å ãããŸãããããã«ãããã³ã³ããŒãºå¯èœãª API ã®ããä¿¡é Œæ§ã®é«ããªãã¬ã¯ã·ã§ã³ ããŒã¹ã®åŒã³åºããå¯èœã«ãªããŸãã - ã©ã³ã¿ã€ã ãæ§æããããã« invokeComposable ãç§»å
- ã³ã³ããŒãºå¯èœãªã¡ãœãããåŒã³åºã API ã®å€æŽ
ã©ã³ã¿ã€ã ã®ä¿®æ£
- ããŒã«ãŒã®ã¹ããã ããŒãã« ãã§ãã¯ã®èª€ã£ãç¯å²ãã¹ãã®ä¿®æ£
- ç§»åå¯èœãªã³ã³ãã³ãã SubcomposeLayout ã«åºå ¥ãããããšãèš±å¯
- ãµãã³ã³ããžã·ã§ã³ã®æ°ããã³ã³ãã³ããžã®ã³ã³ãã³ãã®ç§»åãä¿®æ£
ã¹ãããã·ã§ãã ã·ã¹ãã
- ã¹ãããã·ã§ãã ã·ã¹ãã ã§ã¯ãã¡ã¢ãªç®¡çãããã©ãŒãã³ã¹ãæ£ç¢ºæ§ã«é¢ããŠããŸããŸãªç¹ãæ¹åãããŸããã
- SnapshotStateObserver ã§ã®ã¹ã³ãŒãåé€ã®æé©å
- ééçã¹ãããã·ã§ããããäœæããããã¹ããããã¹ãããã·ã§ãããç Žæ£
- ã°ããŒãã« ã¹ãããã·ã§ããããç¶æ ãèªã¿åãéã®ç«¶åç¶æ ãä¿®æ£
- SnapshotStateObserver ã§ã® DerivedState ã®ãµããŒã
- ä»ã®ã¹ã³ãŒãã§æŽŸçç¶æ ãèªã¿åããããšããã³ã³ããžã·ã§ã³ããæŽŸçç¶æ ãåé€ãããããšã鲿¢
- DerivedState å ã§ HashMap ã®ä»£ããã« IdentityArrayMap ã䜿çš
- å¯å€ãã¯ãã«ã䜿çšããããã«æŽŸçç¶æ ãªãã¶ãŒããŒãæŽæ°
- SnapshotStateObserver ã®ç¶æ ã®ã¯ãªãŒã³ã¢ãããæŽæ°
- SnapshotStateObserver.invalidated ã ArraySet ã«çœ®ãæã
- ã°ããŒãã« ã¹ãããã·ã§ããããç¶æ ãèªã¿åãéã®ç«¶åç¶æ ãä¿®æ£
- DerivedState ããã·ã¥èšç®ã§ã®å€ãã¬ã³ãŒãã®äœ¿çšãä¿®æ£
- ã°ããŒãã« ã¹ãããã·ã§ãããé²ããéã®ç«¶åç¶æ ã®ä¿®æ£
- SnapshotStateObserver ã§ã®ã¹ã³ãŒãç£èŠã®ã¯ãªãŒã³ã¢ãããé«éå
ããŒãžã§ã³ 1.3.0-rc01
2022 幎 10 æ 5 æ¥
androidx.compose.runtime:runtime-*:1.3.0-rc01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.3.0-rc01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
- ã¹ããã ããŒãã«ããã®
ArrayIndexOutOfBoundsException
ãä¿®æ£ããŸããïŒb/249076084ïŒ
ããŒãžã§ã³ 1.3.0-beta03
2022 幎 9 æ 21 æ¥
androidx.compose.runtime:runtime-*:1.3.0-beta03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.3.0-beta03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
äºææ§ãç Žãåäœå€æŽ
remember
ãšrememberCoroutineScope
ãžã®ãã©ã¡ãŒã¿ã¯crossinline
ã«å€æŽãããŸãããããã«ãããåŸã§å éšãšã©ãŒãå ±åãããåå ãšãªãæ©æåŸ©åž°ãèš±å¯ããã®ã§ã¯ãªããæ©æåŸ©åž°ã®ããã«ãšã©ãŒãå ±åããŸãã- ãã®å€æŽã«ãããæ°ããã³ã³ãã€ã© ãšã©ãŒãå ±åããããããã®é¢æ°ã«æž¡ãããã©ã ãããããŒã«ã«ä»¥å€ã®æ»ãå€ã®åé€ãå¿ èŠã«ãªãå¯èœæ§ããããŸããïŒIbea62ïŒ
ããŒãžã§ã³ 1.3.0-beta02
2022 幎 9 æ 7 æ¥
androidx.compose.runtime:runtime-*:1.3.0-beta02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.3.0-beta02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
- API ãæŽæ°ããŸãããïŒI64ca0ïŒ
ããŒãžã§ã³ 1.3.0-beta01
2022 幎 8 æ 24 æ¥
androidx.compose.runtime:runtime-*:1.3.0-beta01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.3.0-beta01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
find
ã¡ãœãããCompositionData
ã«è¿œå ããããã® API ã䜿çšããããããã㌠ããŒã«ã§ããã® ID ã䜿çšããŠã³ã³ããžã·ã§ã³ã®ãµãã°ã«ãŒããããã«èŠã€ããããããã«ãªããŸãããïŒI5794fïŒ
ããŒãžã§ã³ 1.3.0-alpha03
2022 幎 8 æ 10 æ¥
androidx.compose.runtime:runtime-*:1.3.0-alpha03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.3.0-alpha03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.3.0-alpha02
2022 幎 7 æ 27 æ¥
androidx.compose.runtime:runtime-*:1.3.0-alpha02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.3.0-alpha02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- äžäœäºææ§ã確ä¿ããããã
ComposerKt.traceEventStart(Int, String)
ãå床远å ããŸãããïŒI6e6deïŒ
ããŒãžã§ã³ 1.3.0-alpha01
2022 幎 6 æ 29 æ¥
androidx.compose.runtime:runtime-*:1.3.0-alpha01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.3.0-alpha01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- ãŠãŒãã£ãªãã£æ©èœãã©ã³ã¿ã€ã ã«ç§»è¡ãïŒI4f729ïŒ
ããŒãžã§ã³ 1.2
ããŒãžã§ã³ 1.2.1
2022 幎 8 æ 10 æ¥
androidx.compose.runtime:runtime-*:1.2.1
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.1 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
- ã¡ã¢ãªãªãŒã¯ã®ä¿®æ£: ãã©ã³ã¹ãã¢ã¬ã³ã ã¹ãããã·ã§ããããäœæãããããã¹ããããã¹ãããã·ã§ãããç Žæ£ãb/239603305
ããŒãžã§ã³ 1.2.0
2022 幎 7 æ 27 æ¥
androidx.compose.runtime:runtime-*:1.2.0
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.0 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
1.1.0
以éã®éèŠãªå€æŽ
Compose Runtime ã«ã¯ã1.2.0 ã§å°å ¥ãããããã€ãã®æ©èœãšãå®å®åãããããå€ãã®ãã°ä¿®æ£ãå«ãŸããŠããŸããæ°ãã«å°å ¥ãããæãéèŠãªæ©èœã¯ã
movableContentOf
API ã§ãããã® API ã䜿çšãããšãå ±æèŠçŽ ã®é·ç§»ãªã©ã®è€é㪠UX ãå®çŸã§ããŸããmovableContentOf
API ã¯ãã³ã³ããŒã¶ãã« ã©ã ããå¥ã®ã©ã ãã«å€æããŸãã倿ãããã©ã ãã¯ãç¶æ ããã³å¯Ÿå¿ããããŒããåŒã³åºãããæ°ããå Žæã«ç§»åããŸããåã®åŒã³åºããã³ã³ããžã·ã§ã³ããåºããšç¶æ ã¯äžæçã«ä¿æãããã©ã ããžã®æ°ããåŒã³åºããã³ã³ããžã·ã§ã³ã«å ¥ã£ãå Žåãç¶æ ããã³é¢é£ä»ããããããŒããæ°ããåŒã³åºãã®å Žæã«ç§»åãããŸããæ°ããåŒã³åºãã远å ãããªãå Žåãç¶æ ã¯å®å šã«åé€ããããªãã¶ãŒããŒã«éç¥ãããŸããmovableContentOf
ã©ã ããåãã³ã³ããžã·ã§ã³ã§è€æ°ååŒã³åºãããå ŽåãåŒã³åºãããšã«æ°ããç¶æ ãšããŒããäœæãããŸããåŒã³åºããã³ã³ããžã·ã§ã³ãåºãŠæ°ããåŒã³åºããå ¥ããšãç¶æ ã¯ãåŒã³åºãã®é åºã§æåã«åºãåŒã³åºãããå ¥ãåŒã³åºããžãšç§»åããŸããæ°ããåŒã³åºãã§å®£èšãããŠããªãç¶æ ã¯ãã¹ãŠå®å šã«åé€ãããŸãããã®æ©èœãšãã®ä»ã®ããã€ãã®æ°æ©èœã«å ããŠãã©ã³ã¿ã€ã ãšã¹ãããã·ã§ããã®ç¶æ ã·ã¹ãã ã®å®å®åã«å€ãã®æéãè²»ããããŸãããåçš®ã®ã¡ã¢ãªãªãŒã¯ãé€å»ããã³ãŒããã¹ãæé©åããŸããã
倿Žã®æŠèŠã«ã€ããŠã¯äžèšãã芧ãã ããã
1.2
ã®æ°æ©èœ
- ã¹ãããã·ã§ããã® unsafeEnter / unsafeLeaveïŒè©ŠéšéçšçïŒã远å
- Snapshot.asContextElement APIïŒè©ŠéšéçšçïŒã远å
- Snapshot.withoutReadObservation ãå°å ¥
- ã³ã³ããžã·ã§ã³å ã®ç¶æ ã®ç§»åãèš±å¯
- Compose å ã§åã³ã³ããžã·ã§ã³ããã¬ãŒã¹
1.2
ã®ããã©ãŒãã³ã¹
- ã³ã³ããžã·ã§ã³ ããŒã«ã«ã®ããã©ãŒãã³ã¹ãæ¹å
- Compose ã®ããŒã¹ã©ã€ã³ ãããã¡ã€ã«ã¯ãã³ãããŒã¯ã䜿çšããŠå°åºããå¿ èŠããã
1.2
ã®ãã°ä¿®æ£
- ãªãªãŒã¹ã®åã³ã³ããŒãº ã¹ã³ãŒããããã©ããã³ã°æ å ±ãåé€
- ä»ã®ã¹ã³ãŒãã§æŽŸçç¶æ ãèªã¿åããããšããã³ã³ããžã·ã§ã³ããæŽŸçç¶æ ãåé€ãããããšã鲿¢
- SnapshotStateObserver ã§ããå¹çç㪠removeScope() ã䜿çš
- ã³ã³ããžã·ã§ã³å ã®æŽŸçç¶æ ã®äŸåé¢ä¿ãã¯ãªãŒã³ã¢ãã
- ç§»åå¯èœãªã³ã³ãã³ãå ã§ã®å éšåã³ã³ããžã·ã§ã³åŸã« currentCompositeKeyHash ã倿Žãããåé¡ãä¿®æ£
- ç¡å¹ã«ãªã£ãæ§æãç Žæ£ããéã«ã¯ãªãŒã³ã¢ãã
- åã³ã³ããžã·ã§ã³äžã®æŽŸçç¶æ ã®èªã¿åããä¿®æ£
- 掟çç¶æ ãªããžã§ã¯ããç£èŠããéã®ã¡ã¢ãªãªãŒã¯ãä¿®æ£
- movableContent è€åããã·ã¥ããŒã®äžè²«æ§ãä¿®æ£
- ã³ã³ããŒã¶ãŒãã¯ã©ãã·ã¥ããã±ãŒã¹ãä¿®æ£
- ã°ã«ãŒãã®åŒ·å¶çç¡å¹åã«ãã£ãŠåã³ã³ããžã·ã§ã³ã匷å¶ãããããšãä¿èšŒ
- å ¥åã䌎ã rememberSaveable ã誀ã£ãé åºã§åŸ©å ããããã°ãä¿®æ£
ããŒãžã§ã³ 1.2.0-rc03
2022 幎 6 æ 29 æ¥
androidx.compose.runtime:runtime-*:1.2.0-rc03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.0-rc03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
- ãããŸã§ã¯ã掟çç¶æ ã®ç£èŠãåã³ã³ããŒãº ã¹ã³ãŒããšã³ã³ããžã·ã§ã³ã®äž¡æ¹ããç¡æ¡ä»¶ã§åé€ãããŠããŸã£ãŠãããæŽŸçç¶æ ããŸã 芳枬ããŠããå¯èœæ§ãããä»ã®ã¹ã³ãŒãã®ç ŽæãçããŠããŸãããä»åã®å€æŽã«ãããä»ã®ã¹ã³ãŒãã§ç£èŠãããŠããªã掟çç¶æ ã®ã€ã³ã¹ã¿ã³ã¹ã ããåé€ãããããã«ãªããŸããïŒb/236618362ïŒ
ããŒãžã§ã³ 1.2.0-rc02
2022 幎 6 æ 22 æ¥
androidx.compose.runtime:runtime-*:1.2.0-rc02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.0-rc02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.2.0-rc01
2022 幎 6 æ 15 æ¥
androidx.compose.runtime:runtime-*:1.2.0-rc01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.0-rc01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- compose ã©ã€ãã©ãªã®ã€ã³ã¿ãŒãã§ãŒã¹ã jdk8 ããã©ã«ã ã€ã³ã¿ãŒãã§ãŒã¹ ã¡ãœããã䜿ã£ãŠãã«ããããããã«ãªããŸãããïŒI5bcf1ïŒ
ããŒãžã§ã³ 1.2.0-beta03
2022 幎 6 æ 1 æ¥
androidx.compose.runtime:runtime-*:1.2.0-beta03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.0-beta03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.2.0-beta02
2022 幎 5 æ 18 æ¥
androidx.compose.runtime:runtime-*:1.2.0-beta02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.0-beta02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.2.0-beta01
2022 幎 5 æ 11 æ¥
androidx.compose.runtime:runtime-*:1.2.0-beta01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.0-beta01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
æ°æ©èœ
- ããã¯ã1.2 ããŒã¿çã®æåã®ãªãªãŒã¹ã§ãã
API ã®å€æŽ
- ãã¹ãçã®
Snapshot.unsafeEnter/unsafeLeave
ã远å ããŸãããïŒI108f3ïŒ - ãã¹ãçã®
Snapshot.asContextElement()
API ã远å ããŸãããïŒIff072ïŒ @ComposableTarget
ã¢ãããŒã·ã§ã³ãšã@ComposableTargetMarker
ã«ãã£ãŠããŒã¯ãããã¢ãããŒã·ã§ã³ãã@file
æ¥é èŸã䜿çšãããã¡ã€ã« ã¹ã³ãŒãã§äœ¿çšã§ããããã«ãªããŸããããã¡ã€ã« ã¹ã³ãŒãã§ã¿ãŒã²ãã ã¢ãããŒã·ã§ã³ã䜿çšãããšãã³ã³ãã€ã©ã¯ããã¡ã€ã«å ã®ãã¹ãŠã®ã³ã³ããŒãºå¯èœãªé¢æ°ããé¢é£ä»ãããã Applier ãã¿ãŒã²ãããšãããã®ãšæ³å®ããŸããããšãã°@file:UiComposable
ã䜿çšãããšããã¹ãŠã®@Composable
颿°ã Compose UI Applier ãã¿ãŒã²ãããšããããšã宣èšãããŸããå¥ã® Applier ãã¿ãŒã²ãããšãã颿°ã§ã¯ãç®çã® Applier ã«å¯Ÿããã¿ãŒã²ãã ããŒã«ãŒ ã¢ãããŒã·ã§ã³ãæç€ºçã«æå®ããå¿ èŠããããŸããïŒI40804ïŒ
ããŒãžã§ã³ 1.2.0-alpha08
2022 幎 4 æ 20 æ¥
androidx.compose.runtime:runtime-*:1.2.0-alpha08
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.0-alpha08 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
CompositionTracer
ã€ã³ã¿ãŒãã§ãŒã¹ã«TracingInProgress
ã远å ããŸãããïŒIc6f12ïŒrecomposeScopeIdentity
ã Composer ã«è¿œå ããŸãããïŒI0c873ïŒ- ãã¬ãŒã¹ APIïŒComposer.setTracerïŒã
OptIn(InternalComposeTracingApi)
ã«å¶éããŸãããïŒI9187fïŒ ResuableContentHost
ã远å ããŸãããããã«ãããåå©çšå¯èœãªã³ã³ãã³ãçšã«äœæãããç¶æ ã®åç¶æéãããé©åã«å¶åŸ¡ã§ããŸããããšãã°ããµãã³ã³ããžã·ã§ã³ãäžæçã«äœ¿çšãããŠããªãå Žåã«ãã³ã³ãã³ããç¡å¹ã«ã§ããŸããããã«ãããã³ã³ããžã·ã§ã³ã«èšæ¶ãããç¶æ ããã¹ãŠå¿åŽãããå®å šã«äœ¿ãæšãŠå¯èœãªå¹æãçããããããã«ãããªã©ã®ããšãã§ããŸããïŒI2c0f2ãb/220322704ïŒ
ããŒãžã§ã³ 1.2.0-alpha07
2022 幎 4 æ 6 æ¥
androidx.compose.runtime:runtime-*:1.2.0-alpha07
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.0-alpha07 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- æ°ãã颿°
Snapshot.withoutReadObservation { ... }
ã远å ãããŸããããã®é¢æ°ã«ãããŠãŒã¶ãŒã¯ããã®ãããã¯äžã«èªã¿èŸŒãŸããç¶æ å€ã®å€æŽã«ãµãã¹ã¯ã©ã€ãããã«ãæž¡ãããã©ã ããå®è¡ã§ããŸããããã¯ãã¹ãããã·ã§ãã ããŒã¹ã®ã¹ã¬ããã»ãŒããªæžã蟌㿠/ èªã¿åãã®å©ç¹ã掻çšãã€ã€ãäžèŠãªåã³ã³ããžã·ã§ã³ãŸãã¯å枬å®ãè¡ããã«å€ãèªã¿åããããã«ããããŠãŒã¹ã±ãŒã¹ã§åœ¹ç«ã€å ŽåããããŸããïŒI9f365ãb/214054486ïŒ
ããŒãžã§ã³ 1.2.0-alpha06
2022 幎 3 æ 23 æ¥
androidx.compose.runtime:runtime-*:1.2.0-alpha06
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.0-alpha06 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.2.0-alpha05
2022 幎 3 æ 9 æ¥
androidx.compose.runtime:runtime-*:1.2.0-alpha05
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.0-alpha05 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
å€éšããã®åå
- Kotlinx ã³ã«ãŒãã³ 1.6.0 ã䜿çšããããã«æŽæ°ãããŸããïŒI3366dïŒ
ããŒãžã§ã³ 1.2.0-alpha04
2022 幎 2 æ 23 æ¥
androidx.compose.runtime:runtime-*:1.2.0-alpha04
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.0-alpha04 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
ComposableTarget
ãComposableTargetMarker
ãComposableOpenTarget
ã远å ããŸããã䜿çšãæ³å®ãããŠããªã Applier ã察象ãšããŠã³ã³ããŒãºå¯èœãªé¢æ°ãåŒã³åºããå Žåã«ã€ããŠãã³ã³ãã€ã«æã®ã¬ããŒããå¯èœã«ãªããŸããã»ãšãã©ã®å Žåãã¢ãããŒã·ã§ã³ã¯ Compose ã³ã³ãã€ã© ãã©ã°ã€ã³ã«ãã£ãŠæšå®ãããŸãããã®ããããããã®ã¢ãããŒã·ã§ã³ãçŽæ¥äœ¿çšããããšã¯ãã£ãã«ãããŸãããæšå®ã§ããªãã±ãŒã¹ãšããŠã¯ãã«ã¹ã¿ã Applierãã³ã³ããŒãºå¯èœãªæœè±¡é¢æ°ïŒã€ã³ã¿ãŒãã§ãŒã¹ ã¡ãœãããªã©ïŒãã³ã³ããŒãºå¯èœãªã©ã ãã§ãããã£ãŒã«ããŸãã¯ã°ããŒãã«å€æ°ïŒããŒã«ã«å€æ°ãšãã©ã¡ãŒã¿ã¯æšå®ãããïŒãäœæããã³äœ¿çšããå Žåãã
ComposeNode
ãŸãã¯é¢é£ããã³ã³ããŒãºå¯èœãªé¢æ°ã䜿çšããå ŽåãæããããŸããã«ã¹ã¿ã Applier ã®å Žåã¯ã
ComposeNode
ãŸãã¯ReusableComposeNode
ãåŒã³åºãã³ã³ããŒãºå¯èœãªé¢æ°ãã颿°ã«å¯ŸããŠCompoableTarget
ã¢ãããŒã·ã§ã³ãšã³ã³ããŒãºå¯èœãªã©ã ãã®ãã©ã¡ãŒã¿åã远å ããå¿ èŠããããŸãããã ããComposableTargetMarker
ãä»ããŠã¢ãããŒã·ã§ã³ãäœæããComposableTarget
ãçŽæ¥äœ¿çšãã代ããã«ããã®ããŒã¯ãããã¢ãããŒã·ã§ã³ã䜿çšããããšãããããããŸããComposableTargetMarker
ã§ããŒã¯ãããã³ã³ããŒãºå¯èœãªã¢ãããŒã·ã§ã³ã¯ãApplier ãã©ã¡ãŒã¿ãšããŠå±æ§ã¯ã©ã¹ã®å®å šä¿®é£Ÿåãæã€ComposbleTarget
ãšåçã«ãªããŸããComposableTargetMarker
ã®äœ¿çšäŸã«ã€ããŠã¯ãanroidx.compose.ui.UiComposable
ãã芧ãã ãããïŒI38f11ïŒ
ããŒãžã§ã³ 1.2.0-alpha03
2022 幎 2 æ 9 æ¥
androidx.compose.runtime:runtime-*:1.2.0-alpha03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.0-alpha03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
ã³ã³ããŒã¶ãã« ã©ã ããå¥ã®ã©ã ãã«å€æãã
movableContentOf
ã远å ããŸããã倿ãããã©ã ãã¯ãç¶æ ããã³å¯Ÿå¿ããããŒããåŒã³åºãããæ°ããå Žæã«ç§»åããŸããåã®åŒã³åºããã³ã³ããžã·ã§ã³ããåºããšç¶æ ã¯äžæçã«ä¿æãããã©ã ããžã®æ°ããåŒã³åºããã³ã³ããžã·ã§ã³ã«å ¥ã£ãå Žåãç¶æ ããã³é¢é£ä»ããããããŒããæ°ããåŒã³åºãã®å Žæã«ç§»åãããŸããæ°ããåŒã³åºãã远å ãããªãå Žåãç¶æ ã¯å®å šã«åé€ããããªãã¶ãŒããŒã«éç¥ãããŸããmovableContentOf
ã©ã ããåãã³ã³ããžã·ã§ã³ã§è€æ°ååŒã³åºãããå ŽåãåŒã³åºãããšã«æ°ããç¶æ ãšããŒããäœæãããŸããåŒã³åºããã³ã³ããžã·ã§ã³ãåºãŠæ°ããåŒã³åºããå ¥ããšãç¶æ ã¯ãåŒã³åºãã®é åºã§æåã«åºãåŒã³åºãããå ¥ãåŒã³åºããžãšç§»åããŸããæ°ããåŒã³åºãã§å®£èšãããŠããªãç¶æ ã¯ãã¹ãŠå®å šã«åé€ãããŸããïŒIb4850ïŒã³ã³ããŒãºå¯èœãªé¢æ°ã®è©³çްãªãã¬ãŒã¹ãããŒã«ã§æäŸã§ããããã«ããã¬ãŒã¹ API ãã³ã³ããžã·ã§ã³ã«è¿œå ããŸãããã³ã³ãã€ã©ã¯ããœãŒã¹æ å ±ãå«ããã¬ãŒã¹ API ã®åŒã³åºããçæããããã«ãªããŸãããïŒIb0eb5ïŒ
ãããã®åŒã³åºããšãé¢é£ãããœãŒã¹æ å ±ããªãªãŒã¹ãã«ãããåé€ããã«ã¯ã次㮠Proguard ã«ãŒã«ã远å ããŸãã
-assumenosideeffects public class androidx.compose.runtime.ComposerKt { boolean isTraceInProgress(); void traceEventStart(int,java.lang.String); void traceEventEnd(); }
åã³ã³ããžã·ã§ã³ã®éã«ããŒã«ãã³ã³ããŒã¶ãã«ãèå¥ã§ããããã«ãã
InternalComposeScope
ã远å ããŸããïŒI07a3fïŒ
ããŒãžã§ã³ 1.2.0-alpha02
2022 幎 1 æ 26 æ¥
androidx.compose.runtime:runtime-*:1.2.0-alpha02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.0-alpha02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.2.0-alpha01
2022 幎 1 æ 12 æ¥
androidx.compose.runtime:runtime-*:1.2.0-alpha01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.2.0-alpha01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- Layout Inspector ã§äžå€ã® ID ãçæããããã«ã
identity
ãã£ãŒã«ããCompositionData
ã«è¿œå ããŸãããïŒIc116eïŒ
äŸåé¢ä¿ã®æŽæ°
- Kotlin
1.6.10
ã«äŸåããããã«ãªããŸããã
ããŒãžã§ã³ 1.1
ããŒãžã§ã³ 1.1.1
2022 幎 2 æ 23 æ¥
androidx.compose.runtime:runtime-*:1.1.1
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.1.1 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
ã®NullPointerException
ãä¿®æ£ããŸããïŒaosp/1947059ãb/206677462ïŒ- Android ã®ã¯ãªããããŒãããèªã¿åãéã«ã¯ãªããããŒãã®å 容ãåå ã§çºçããã¯ã©ãã·ã¥ãä¿®æ£ããŸãããïŒI06020ãb/197769306ïŒ
LazyVerticalGrid
ã® RTL ãä¿®æ£ããŸããïŒaosp/1931080ãb/207510535ïŒ
ããŒãžã§ã³ 1.1.0
2022 幎 2 æ 9 æ¥
androidx.compose.runtime:runtime-*:1.1.0
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.1.0 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
1.0.0 以éã®éèŠãªå€æŽ
- Android 12 ã®ãªãŒããŒã¹ã¯ããŒã«å¹æã®å®å®çãµããŒãã远å
- ã¿ãã ã¿ãŒã²ããã®ãµã€ãºèª¿æŽãæ¹å
- Compose 1.0 ã§ã¯ããããªã¢ã« ãŠãŒã¶ãŒè£å©ã¬ã€ãã©ã€ã³ã®ã¿ãã ã¿ãŒã²ããã®ãµã€ãºã«åãããããã«ããããªã¢ã« ã³ã³ããŒãã³ãã®ã¬ã€ã¢ãŠã ã¹ããŒã¹ãæ¡åŒµãããããšã«æ³šæããŠãã ãããããšãã°ããã¿ã³ã®ãµã€ãºããããå°ããèšå®ããŠãããã¿ã³ã®ã¿ãã ã¿ãŒã²ããã¯æå°ãµã€ãºã®
48x48dp
ã«æ¡åŒµãããŸããããã«ãããCompose Material ãšãããªã¢ã« ãã¶ã€ã³ ã³ã³ããŒãã³ãã®åäœãäžèŽããView ãš Compose ãæ··åšãããŠãåäœã®äžè²«æ§ãä¿æã§ããŸãããŸããCompose Material ã³ã³ããŒãã³ãã䜿çšã㊠UI ãäœæããéã«ãã¿ãã ã¿ãŒã²ããã«é¢ãããŠãŒã¶ãŒè£å©ã®æå°èŠä»¶ã確å®ã«æºããããŸãã - ããã²ãŒã·ã§ã³ ã¬ãŒã«ã®å®å®çã®ãµããŒãã远å
- 詊éšéçšçã§ãã£ãããã€ãã® API ãå®å®çã«ç§»è¡
- æ°ããããŒãžã§ã³ã® Kotlin ã®ãµããŒã
ããŒãžã§ã³ 1.1.0-rc03
2022 幎 1 æ 26 æ¥
androidx.compose.runtime:runtime-*:1.1.0-rc03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.1.0-rc03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
- Compose Material
1.1.0-rc03
ããµããŒãããããã«æŽæ°ããŸãã
ããŒãžã§ã³ 1.1.0-rc01
2021 幎 12 æ 15 æ¥
androidx.compose.runtime:runtime-*:1.1.0-rc01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.1.0-rc01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.1.0-beta04
2021 幎 12 æ 1 æ¥
androidx.compose.runtime:runtime-*:1.1.0-beta04
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.1.0-beta04 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
æ°æ©èœ
- Kotlin
1.6.0
ãšã®äºææ§ã確ä¿ããããã«æŽæ°ããŸãã
ããŒãžã§ã³ 1.1.0-beta03
2021 幎 11 æ 17 æ¥
androidx.compose.runtime:runtime-*:1.1.0-beta03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.1.0-beta03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.1.0-beta02
2021 幎 11 æ 3 æ¥
androidx.compose.runtime:runtime-*:1.1.0-beta02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.1.0-beta02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- ã¹ãããã·ã§ãã ã³ãŒããè€æ°ã®ãã¡ã€ã«ã«åå²ãããŸãããããã¹ãŠåã JVM ã¯ã©ã¹å ã«ãããŸããïŒIc6c98ïŒ
ããŒãžã§ã³ 1.1.0-beta01
2021 幎 10 æ 27 æ¥
androidx.compose.runtime:runtime-*:1.1.0-beta01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.1.0-beta01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.1.0-alpha06
2021 幎 10 æ 13 æ¥
androidx.compose.runtime:runtime-*:1.1.0-alpha06
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.1.0-alpha06 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- ã¢ãžã¥ãŒã«éã§åŒã³åºãå¿
èŠããã Composer ã¡ãœãããã
InternalCompilerApi
ãåé€ããŸãããïŒI1aa0bïŒ Recomposer.state
ã¯ãµããŒããçµäºããRecomposer.currentState
ã«çœ®ãæããããã¿ã€ãã StateFlow ã«å€æŽãããŸãããïŒIc2ab3ãb/197773820ïŒ
ããŒãžã§ã³ 1.1.0-alpha05
2021 幎 9 æ 29 æ¥
androidx.compose.runtime:runtime-*:1.1.0-alpha05
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.1.0-alpha05 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.1.0-alpha04
2021 幎 9 æ 15 æ¥
androidx.compose.runtime:runtime-*:1.1.0-alpha04
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.1.0-alpha04 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.1.0-alpha03
2021 幎 9 æ 1 æ¥
androidx.compose.runtime:runtime-*:1.1.0-alpha03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.1.0-alpha03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
æ°æ©èœ
- Compose Compiler ã¯ãå€ãããŒãžã§ã³ã® Compose RuntimeïŒ1.0ïŒããµããŒãããããã«ãªããŸããããã®å€æŽã®åãCompose Compiler ã¯åãããŒãžã§ã³ä»¥éã® Compose Runtime ãšã®ã¿äºææ§ããããŸããããã®å€æŽã®åŸãCompose Compiler ã¯å€ãããŒãžã§ã³ã® Compose RuntimeïŒ1.0ïŒãšäºææ§ãæã€ããã«ãªããŸããïŒaosp/1796968ïŒ
- Kotlin
1.5.30
ã«äŸåããããã«ãCompose1.1.0-alpha03
ãæŽæ°ããŸãããïŒI74545ïŒ
ããŒãžã§ã³ 1.1.0-alpha02
2021 幎 8 æ 18 æ¥
androidx.compose.runtime:runtime-*:1.1.0-alpha02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.1.0-alpha02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.1.0-alpha01
2021 幎 8 æ 4 æ¥
androidx.compose.runtime:runtime-*:1.1.0-alpha01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.1.0-alpha01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.0
ããŒãžã§ã³ 1.0.5
2021 幎 11 æ 3 æ¥
androidx.compose.runtime:runtime-*:1.0.5
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.5 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
- derivedStateOf ã€ã³ã¹ã¿ã³ã¹ããã©ããã³ã°ããã¯ã©ãã·ã¥ãä¿®æ£ããŸãããïŒaosp/1792247ïŒ
ããŒãžã§ã³ 1.0.4
2021 幎 10 æ 13 æ¥
androidx.compose.runtime:runtime-*:1.0.4
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.4 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
äŸåé¢ä¿ã®æŽæ°
- Kotlin
1.5.31
ã«äŸåããããã«æŽæ°ããŸããã
ããŒãžã§ã³ 1.0.3
2021 幎 9 æ 29 æ¥
androidx.compose.runtime:runtime-*:1.0.3
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.3 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
äŸåé¢ä¿ã®æŽæ°
- Kotlin
1.5.30
ã«äŸåããããã«æŽæ°ããŸããã
ããŒãžã§ã³ 1.0.2
2021 幎 9 æ 1 æ¥
androidx.compose.runtime:runtime-*:1.0.2
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.2 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
Compose 1.0.2
ãªãªãŒã¹ããµããŒãããããã«æŽæ°ããŸãããCompose 1.0.2
ã¯ãåŒãç¶ã Kotlin 1.5.21
ãšäºææ§ããããŸãã
ããŒãžã§ã³ 1.0.1
2021 幎 8 æ 4 æ¥
androidx.compose.runtime:runtime-*:1.0.1
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.1 ã«å«ãŸããå«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
äŸåé¢ä¿ã®æŽæ°
- Kotlin
1.5.21
ã«äŸåããããã«æŽæ°ããŸããã
ããŒãžã§ã³ 1.0.0
2021 幎 7 æ 28 æ¥
androidx.compose.runtime:runtime-*:1.0.0
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
1.0.0 ã®äž»ãªæ©èœ
ãã㯠Compose ã®æåã®å®å®çãªãªãŒã¹ã§ãã詳现ã«ã€ããŠã¯ãCompose ãªãªãŒã¹ã®å ¬åŒããã°ãã芧ãã ããã
æ¢ç¥ã®åé¡
Android Studio Bumblebee Canary 4 ãŸã㯠AGP
7.1.0-alpha04
/7.1.0-alpha05
ã䜿çšããŠããå Žåãæ¬¡ã®ã¯ã©ãã·ã¥ãçºçããããšããããŸããjava.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
ä¿®æ£ããã«ã¯ã
build.gradle
ãã¡ã€ã«ã§äžæçã« minSdkVersion ã 24 以äžã«å€æŽããŸãããã®åé¡ã¯ã次æããŒãžã§ã³ã® Android Studio Bumblebee ãš AGP7.1
ã§ä¿®æ£ãããäºå®ã§ããïŒb/194289155ïŒ
ããŒãžã§ã³ 1.0.0-rc02
2021 幎 7 æ 14 æ¥
androidx.compose.runtime:runtime-*:1.0.0-rc02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-rc02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
- NullPointerExceptions ãæ£çºçã«çºçããã SnapshotStateObserver ã®ç«¶åç¶æ ãä¿®æ£ããŸãããïŒaosp/1763445ãaosp/1758105ãb/192677711ïŒ
java.lang.IllegalStateException: Reading a state that was created after the snapshot was taken or in a snapshot that has not yet been applied
ã¯ã©ãã·ã¥ã®åå ãšãªãã©ã³ã¿ã€ã ã¹ãããã·ã§ããã®åé¡ãä¿®æ£ããŸãããïŒb/193006595ãb/192570897ïŒ
ããŒãžã§ã³ 1.0.0-rc01
2021 幎 7 æ 1 æ¥
androidx.compose.runtime:runtime-*:1.0.0-rc01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-rc01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 1.0.0-beta09
2021 幎 6 æ 16 æ¥
androidx.compose.runtime:runtime-*:1.0.0-beta09
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-beta09 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãããã¡ã€ã« ã«ãŒã«ã®è¿œå
ãã®ãªãªãŒã¹ã§ã¯ã以äžã® compose ã¢ãžã¥ãŒã«ã«ãããã¡ã€ã« ã«ãŒã«ã远å ãããŸãããïŒI14ed6ïŒ
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
ãããã¡ã€ã« ã«ãŒã«ãšã¯
ã©ã€ãã©ãªã®ãããã¡ã€ã« ã«ãŒã«ã¯ã
src/main
ãŸãã¯åçã®ãã£ã¬ã¯ããªã«ããããã¹ã ãã¡ã€ã«baseline-prof.txt
ã§æå®ããŸãããã®ãã¡ã€ã«ã§ã¯ã1 è¡ã« 1 ã€ãã€ã«ãŒã«ãæå®ããŸããããã§ã®ã«ãŒã«ã¯ãã©ã€ãã©ãªå ã®ã¡ãœãããŸãã¯ã¯ã©ã¹ãšåèŽãããã¿ãŒã³ã§ããã«ãŒã«ã®æ§æã¯ã人ãèªãã ART ãããã¡ã€ã«åœ¢åŒã®ã¹ãŒããŒã»ããã§ãadb shell profman --dump-classes-and-methods ...
ã䜿çšããéã«äœ¿çšãããŸããã«ãŒã«ã¯ãã¡ãœãããŸãã¯ã¯ã©ã¹ãã¿ãŒã²ãããšãã 2 ã€ã®åœ¢åŒã®ããããã䜿çšããŸããã¡ãœããã«ãŒã«ã®ãã¿ãŒã³ã¯æ¬¡ã®ããã«ãªããŸãã
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
ã¯ã©ã¹ã«ãŒã«ã®ãã¿ãŒã³ã¯æ¬¡ã®ããã«ãªããŸãã
<CLASS_DESCRIPTOR>
äžèšã®
<FLAGS>
ã«ã¯ããã®ã¡ãœããã«ãããããããèµ·åãããŸãã¯ãèµ·ååŸãã®ãã©ã°ãä»ããå Žåã«ããããæåH
ãS
ãP
ïŒ1 ã€ãŸãã¯è€æ°ïŒãå ¥åããŸãã<CLASS_DESCRIPTOR>
ã¯ãã¿ãŒã²ãããšãªãã¡ãœãããå±ããã¯ã©ã¹ã®èšè¿°åã§ããããšãã°ãã¯ã©ã¹androidx.compose.runtime.SlotTable
ã®èšè¿°åã¯ãLandroidx/compose/runtime/SlotTable;
ã§ãã<METHOD_SIGNATURE>
ã¯ã¡ãœããã®ã·ã°ããã£ã§ãã¡ãœããã®ååããã©ã¡ãŒã¿ã®åãæ»ãå€ã®åãå«ã¿ãŸããããšãã°ãLayoutNode
ã®ã¡ãœããfun isPlaced(): Boolean
ã®ã·ã°ããã£ã¯ãisPlaced()Z
ã§ãã1 ã€ã®ã«ãŒã«ã«è€æ°ã®ã¡ãœãããŸãã¯ã¯ã©ã¹ãå«ããå Žåã¯ããããã®ãã¿ãŒã³ã«ã¯ã€ã«ãã«ãŒãïŒ
**
ã*
ã?
ïŒã䜿çšã§ããŸãã
ã«ãŒã«ã®æ©èœ
ãã©ã°
H
ãä»ããŠããã¡ãœããã¯ããã®ã¡ãœããããããããã¡ãœããã§ãããäºåã³ã³ãã€ã«ãå¿ èŠã§ããããšã瀺ããŸããS
ãã©ã°ãä»ããŠããã¡ãœããã¯ããã®ã¡ãœãããèµ·åæã«åŒã³åºãããã¡ãœããã§ãããã³ã³ãã€ã«ã®ã³ã¹ããšèµ·åæã«ã¡ãœãããè§£éããã³ã¹ããåé¿ããããã«äºåã³ã³ãã€ã«ãå¿ èŠã§ããããšã瀺ããŸããP
ãã©ã°ãä»ããŠããã¡ãœããã¯ããã®ã¡ãœãããèµ·ååŸã«åŒã³åºãããããšã瀺ããŸãããã®ãã¡ã€ã«ã«ååšããã¯ã©ã¹ã¯ããã®ã¯ã©ã¹ãèµ·åæã«äœ¿çšãããã¯ã©ã¹ã§ãããã¯ã©ã¹èªã¿èŸŒã¿ã®ã³ã¹ããåé¿ããããã«ããŒãã§äºåå²ãåœãŠããå¿ èŠãããããšã瀺ããŠããŸãã
ã«ãŒã«ã®ä»çµã¿
- ã©ã€ãã©ãªã¯ãAAR ã¢ãŒãã£ãã¡ã¯ãã«ããã±ãŒãžããã«ãŒã«ãå®çŸ©ã§ããŸãããããã®ã¢ãŒãã£ãã¡ã¯ããå«ãã¢ããªããã«ãããããšãã«ãŒã«ãçµåãããŸããçµåãããã«ãŒã«ã¯ãã¢ããªã«åºæã®ã³ã³ãã¯ã ãã€ã㪠ART ãããã¡ã€ã«ããã«ãããããã«äœ¿çšãããŸããART ã§ã¯ãã¢ããªãããã€ã¹ã«ã€ã³ã¹ããŒã«ãããéã«ãã®ãããã¡ã€ã«ãå©çšããŠãã¢ããªã®ç¹å®ã®éšåãäºåã«ã³ã³ãã€ã«ããã¢ããªã®ããã©ãŒãã³ã¹ïŒç¹ã«ååå®è¡æïŒãæ¹åã§ããŸãããªããããã¯ãããã°å¯èœãªã¢ããªã«ã¯åœ±é¿ããŸããã
ããŒãžã§ã³ 1.0.0-beta08
2021 幎 6 æ 2 æ¥
androidx.compose.runtime:runtime-*:1.0.0-beta08
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-beta08 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
State<T>
ãState<out T>
ã«ãªããŸãããïŒI69049ïŒControlledComposition
API ã®å€æŽã«ãããåäžãã¹ã®åã³ã³ããŒãºã§åã³ã³ããŒãºã®å€æŽãå¯èœã«ãªããŸãããïŒIaafd1ãb/184173932ïŒ
ããŒãžã§ã³ 1.0.0-beta07
2021 幎 5 æ 18 æ¥
androidx.compose.runtime:runtime-*:1.0.0-beta07
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-beta07 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- ãœãŒã¹å§çž®æã«ã³ã³ãã€ã©ã§çæããããœãŒã¹æ å ±ãåé€ã§ãããæ°ãã Compose ã³ã³ãã€ã© API ã远å ããŸãããïŒIa34e6ïŒ
ReusableContent
ãå°å ¥ããããšã§ãããŒã倿Žããããšãã«ããŒãã眮ãæããã®ã§ã¯ãªããã³ã³ãã³ãå ã®ããŒãã®åå©çšã詊ã¿ãããã«ãªããŸãããããŒã倿ŽããããšãçæãããããŒããšããŒãã®æŽæ°ã«äœ¿çšãããå€ãé€ããã³ã³ãã³ãã®ã¹ããã ããŒãã«å ã®ä»¥åã®å€ã¯ç¡èŠãããŸããReusableComposeNode
ãå°å ¥ãããããšã§ãComposeNode
ã®ããã«ããŒãã眮ãæããã®ã§ã¯ãªããçæãããããŒããåå©çšãããããã«ãªããŸãããïŒI1dd86ïŒ@ComposeCompilerApi
ã@RequiresOptIn
ã§ã¯ãªããªããŸãããïŒIab690ïŒ
ãã°ã®ä¿®æ£
- LazyColumn/Row ã¯ãã¹ã¯ããŒã«ãããŠç»é¢ããæ¶ãããšãã§ããåã«è¡šç€ºãããŠããã¢ã¯ãã£ããªïŒç Žæ£ãããŠããªãïŒã¢ã€ãã ãæå€§ 2 ã€ãŸã§ç¶æããããã«ãªããŸãããããã«ãããã¹ã¯ããŒã«ã®ããã©ãŒãã³ã¹ãæ¹åããæ°ããã¢ã€ãã ãã³ã³ããŒãºããå¿ èŠãããå Žåã«ãã³ã³ããŒãã³ããã¢ã¯ãã£ããªãµãã³ã³ããžã·ã§ã³ãåå©çšããããšãå¯èœã«ãªããŸããïŒIe5555ïŒ
ããŒãžã§ã³ 1.0.0-beta06
2021 幎 5 æ 5 æ¥
androidx.compose.runtime:runtime-*:1.0.0-beta06
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-beta06 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
@ComposeCompilerApi
ã@RequiresOptIn
ã§ã¯ãªããªããŸãããïŒIab690ïŒ
ããŒãžã§ã³ 1.0.0-beta05
2021 幎 4 æ 21 æ¥
androidx.compose.runtime:runtime-*:1.0.0-beta05
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-beta05 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- ã¹ãããã·ã§ããã®èªã¿åããšæžã蟌ã¿ãèšé²ããããã®
@InternalComposeApi
ãåé€ããŸãããïŒId134dïŒ
ãã°ã®ä¿®æ£
- ui-test-manifest ãš ui-tooling-data ã® AndroidManifest ãã¡ã€ã«ã«ãAndroid 12 ãšã®äºææ§ãåãããŸãããïŒI6f9deãb/184718994ïŒ
ããŒãžã§ã³ 1.0.0-beta04
2021 幎 4 æ 7 æ¥
androidx.compose.runtime:runtime-*:1.0.0-beta04
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-beta04 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
ãã®å€æŽä»¥åã¯ãããŒã«ã«ã®ã³ã³ããŒãºå¯èœãªé¢æ°ã¯ãã©ã¡ãŒã¿ã«åºã¥ããŠã¹ãããå¯èœã§ããããã®å€æŽä»¥éã¯ãããŒã«ã«ã®ã³ã³ããŒãºå¯èœãªé¢æ°ã¯ã¹ããããããªããªããŸããããŒã«ã«é¢æ°ã芪ãããã©ã¡ãŒã¿ãååŸããã®ãæ³å®ãããäžè¬çãªåäœã§ããããã°ã®ããããçç±ãã¹ãããã§ããããããã®å€æŽãè¡ãããŸããã
以äžã®äŸãåç §ããŠãã ããã
@Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) { @Composable fun ShowCount() { Text("Count: $count") } ShowCount() Button(onClick={ onCountChange(count + 1) }) { Text("Increment") } }
ãã®å€æŽä»¥åã¯ã
count
ã®ãã©ã¡ãŒã¿ãæŽæ°ãããåŸããShowCount
ã®ã³ã³ããŒãºå¯èœãªé¢æ°ã¯åžžã«ã¹ããããããŠããŸããããã®èªèšŒãããžã®åãæ¶ãã¯å®æœãããªãããšã«ãªããŸãããïŒI5648aïŒrememberSaveable()
ã§å ¥åãã©ã¡ãŒã¿ã䜿çšããå Žåã«ãå€ãå€ã埩å ãããåé¡ãä¿®æ£ããŸãããïŒI1b110ãb/182403380ïŒ
ããŒãžã§ã³ 1.0.0-beta03
2021 幎 3 æ 24 æ¥
androidx.compose.runtime:runtime-*:1.0.0-beta03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-beta03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
DefaultMonotonicFrameClock
ãéæšå¥šãšãªããŸãããMonotonicFrameClock
ãæå®ããã«withFrameNanos
ãŸãã¯Recomposer.runRecomposeAndApplyChanges
ãåŒã³åºããšãIllegalStateException
ãã¹ããŒãããããã«ãªããŸãããïŒI4eb0dïŒ
ããŒãžã§ã³ 1.0.0-beta02
2021 幎 3 æ 10 æ¥
androidx.compose.runtime:runtime-*:1.0.0-beta02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-beta02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãã°ã®ä¿®æ£
- 詊éšéçšç API ã®äžè¬äœ¿çšã«å¯Ÿããå¶éãé©çšããŸããïŒI6aa29ãb/174531520ïŒ
- navigation-compose ã®ãã¹ãã£ããŒã·ã§ã³å
ã§äœ¿çšãããš
rememberSaveable { mutableStateOf(0) }
ãå£ããåé¡ãä¿®æ£ããŸãããïŒI1312bãb/180042685ãb/180701630ïŒ
ããŒãžã§ã³ 1.0.0-beta01
2021 幎 2 æ 24 æ¥
androidx.compose.runtime:runtime-*:1.0.0-beta01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-beta01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããã¯ãCompose 1.0.0 ããŒã¿çã®æåã®ãªãªãŒã¹ã§ãã
API ã®å€æŽ
- ç¡å¹åãããã³ã³ããžã·ã§ã³ãã¡ã€ã³ãã¬ãŒã ã«ãŒãããé€å€ããããã«åã³ã³ããŒãºããã詊éšéçšç API
Recomposer.runRecomposeConcurrentlyAndApplyChanges
ã远å ããŸãããïŒI342d0ïŒ - @ReadOnlyComposable ãšããŠããŒã¯ãããã³ã³ããŒã¶ãã«ã¯ãä»ã® @ReadOnlyComposable ã ããåŒã³åºãããã«ãã³ã³ãã€ã«æã«æ€èšŒãããããã«ãªããŸãããïŒI58961ïŒ
compositionLocalOf
ãšstaticCompositionLocalOf
ã®defaultFactory
ã¯ããªãã·ã§ã³ã§ã¯ãªãå¿ é ã«ãªããŸããããã®å€æŽã«ãããnull å€é蚱容åïŒããã©ã«ã ãã¡ã¯ããªãæäŸãããŠããªãïŒã§çºçããå¯èœæ§ã®ããåãšã©ãŒãè§£æ¶ããŸããããããŸã§ã¯ãnull å€é蚱容åã«å¯Ÿã㊠null åç §ãæå®ããŠããŸããã
null å€èš±å®¹åã®å Žåã¯ã
{ null }
ãããã©ã«ã ãã¡ã¯ããªãšããŠæäŸããããšãæ€èšããŠãã ãããnull å€èš±å®¹åãæããªãããŒã«ã«å€æ°ã¯ãæå¹ãªããã©ã«ãå€ãæå®ããªãéãã䜿çšããªãããšãããããããŸããæå¹ãªããã©ã«ããååšããªãå Žåã
defaultFactory
ã©ã ãã¯äŸå€ãã¹ããŒããŸãããã ããäŸå€ãã¹ããŒããããšãããŒã«ã«å€æ°ã®ãŠãŒã¶ãŒã¯ããã®å€æ°ãåã·ã¹ãã ã§é©çšãããªããšããåæã§ããã®å€æ°ã«æé»çã«äŸåããããšã«ãªããŸããïŒIfbd2aïŒãµããŒããçµäºããã·ã³ãã«ã Compose Runtime ããåé€ããŸãããïŒI3252cïŒ
éæšå¥šãšãªã£ã
emptyContent()
ãåé€ããŸããã代ããã«{}
ã䜿çšããŠãã ãããïŒIdb33fãb/179432510ïŒãããã€ãã®ååã CompositionLocalProvider ã«å€æŽããŸãã
- ã³ã³ããžã·ã§ã³ ã³ã³ã¹ãã©ã¯ã¿ãããŒãã©ã¡ãŒã¿ãåãå ¥ããªããªããéæšå¥šãšãªããŸããã
- currentCompositeKeyHash ããæ§æå¯èœãªãããã¬ãã«é¢æ°ã§ã¯ãªããæ§æå¯èœãªãããã¬ãã« ããããã£ã«ãªããŸããã
- CompositionData ãš CompositionGroup ã androidx.compose.runtime.tooling åå空éã«ç§»åããŸãã
- ComposableLambda ã¯å ·è±¡ã¯ã©ã¹ã§ã¯ãªãã€ã³ã¿ãŒãã§ãŒã¹ã«ãªããåãã©ã¡ãŒã¿ã¯å«ãŸããªããªããŸããã
- ComposableLambdaN ã¯å ·è±¡ã¯ã©ã¹ã§ã¯ãªãã€ã³ã¿ãŒãã§ãŒã¹ã«ãªããåãã©ã¡ãŒã¿ã¯å«ãŸããªããªããŸããã
- snapshotFlow 颿°ã androidx.compose.runtime åå空éã«ç§»åããŸãã
- SnapshotMutationPolicy ã®çµ±åã¡ãœããã¯è©Šéšéçšçã§ã¯ãªããªããŸãã
- @TestOnly ãããã¬ãã«ã® clearRoots 颿°ã¯åé€ãããäžèŠã«ãªããŸããã
- keySourceInfoOf 颿°ãš resetSourceInfo 颿°ã¯åé€ãããäžèŠã«ãªããŸããã
- Composer.collectKeySourceInformation ã¯åé€ãããäžèŠã«ãªããŸããã
- isJoinedKeyãjoinedKeyLeftãjoinedKeyRight ã®åã¡ãœãããåé€ãããäžèŠã«ãªããŸããã
- ããã€ãã®ãããã¬ãã« API ãå¥ã®ãã¡ã€ã«ã«ç§»åããåç·šæããŸãããKotlin ã®ãã¡ã€ã«ã¯ã©ã¹ ã»ãã³ãã£ã¯ã¹ã«ããããã€ããªãšã®äºææ§ã¯æãªãããŸãããœãŒã¹ã³ãŒããšã®äºææ§ã¯ç¶æãããã®ã§ãå€ãã®ãŠãŒã¶ãŒã«ãšã£ãŠåé¡ã«ã¯ãªããŸããã
- ïŒI99b7dãb/177245490ïŒ
SnapshotStateObserver ã詊éšéçšçã§ã¯ãªããªããŸãããïŒId2e6aïŒ
ãããŸã§ã«ãµããŒããçµäºããŠãã API ãããã€ãåé€ããŸãããïŒIce5daãb/178633932ïŒ
以äžã® Material API 倿Žãå ããŸããã
- Top / BottomAppBar ã« contentPadding ãã©ã¡ãŒã¿ã远å ããããã©ã«ãã®ããã£ã³ã°ãã«ã¹ã¿ãã€ãºã§ããããã«ããŸããã
- API ã¬ã€ãã©ã€ã³ã«æ²¿ã£ãŠå¿ é ã®ãã©ã¡ãŒã¿ããªãã·ã§ã³ã®ãã©ã¡ãŒã¿ã®åã«ãªããããBackdropScaffold å ã®ãã©ã¡ãŒã¿ã®é åºã倿ŽããŸããã
- BottomNavigationItem ã®
icon
ãã©ã¡ãŒã¿ãselected
ãšonClick
ã®åŸãã«ãªãããç§»åããŸããã - BottomNavigationItem ã®
alwaysShowLabels
ãã©ã¡ãŒã¿ã®ååãalwaysShowLabel
ã«å€æŽããŸããã - äžéšã®ã³ã³ããŒãã³ãã®
bodyContent
ãã©ã¡ãŒã¿ã®ååãcontent
ã®ã¿ã«å€æŽããŸããã ButtonDefaults.buttonColors()
ã®ãã©ã¡ãŒã¿ã®é åºã倿ŽããŸããããã©ã¡ãŒã¿ã®åã¯å€æŽãããªããããããã«ããã³ãŒãã§ãšã©ãŒã¯çºçããŸãããååä»ããã©ã¡ãŒã¿ã䜿çšããããé åºãæåã§æŽæ°ããŠãã ãããããããªããšãã³ãŒãã¯ä»¥åãšåãããã«åäœããŸãããdarkColors()
ã«secondaryVariant
ãã©ã¡ãŒã¿ã远å ããŸãããéåžžããã®ã«ã©ãŒã¯ããŒã¯ããŒãã®secondary
ãšåãã§ãããæŽåæ§ãšã«ã¹ã¿ãã€ãºæ§åäžã®ããã«è¿œå ããŸããã- ElevationDefaults ãš animateElevation() ã¯ããŸã䜿çšãããã圹ã«ç«ã£ãŠããªããããå ¬é API ã®ãµãŒãã§ã¹ããåé€ããŸããã
Slider
ã®onValueChangeEnd
ã®ååãonValueChangeFinished
ã«å€æŽããnull å¯èœã«ããŸããã- æŽåæ§ã®ããã
Snackbar
ã®text
ãã©ã¡ãŒã¿ã®ååãcontent
ã«å€æŽããŸããã DropdownMenuItem
ã«contentPadding
ãã©ã¡ãŒã¿ã远å ããŠããã©ã«ãã®ããã£ã³ã°ãã«ã¹ã¿ãã€ãºã§ããããã«ããcontent
ãRowScope
ã®æ¡åŒµã«ããŸãããModalDrawerLayout
ã®ååãModalDrawer
ã«å€æŽããŸãããBottomDrawerLayout
ã®ååãBottomDrawer
ã«å€æŽããŸããã- ïŒI1cc66ïŒ
ããŒãžã§ã³ 1.0.0-alpha12
2021 幎 2 æ 10 æ¥
androidx.compose.runtime:runtime-*:1.0.0-alpha12
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha12 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- ViewGroup 㯠UiApprier ã§ãµããŒããããªããªããŸãããéæšå¥šã® emitView ã³ã³ããŒã¶ãã«ãåé€ããŸãããïŒIfb214ïŒ
- CompositionReference ã®ååã CompositionContext ã«å€æŽããŸããïŒI53fcbïŒ
- ComponentActivity.setContent ã androidx.activity:activity-compose ã¢ãžã¥ãŒã«ã® androidx.activity.compose.setContent ã«ç§»åããŸãããïŒIcf416ïŒ
- Snapshot API ã API ã¬ã€ãã©ã€ã³ãšã®æŽåæ§ãé«ããå éšå®è£ ã¯ã©ã¹ãå ¬é API ããé衚瀺ã«ããããã«æŽæ°ããŸãããïŒId9e32ïŒ
- Ambient ãã CompositionLocal ãžã®åå倿Žã«åãã㊠Ambient ã®ååã倿ŽããŸãããAmbientFoo ãšããååã® Ambient ã¯ãLocalFoo ãšããååã® CompositionLocal ã«ãªããŸãããïŒI2d55dïŒ
- Ambient ã®ååã CompositionLocal ã«ãambientOf / staticAmbientOf ã®ååã compositionLocalOf / staticCompositionLocalOf ã«ãããã倿ŽããŸããããã®å€æŽã«ãããCompositionLocal ã®ç®çãã€ãŸãã³ã³ããžã·ã§ã³ã®ããŒã«ã«ãªå€ãæäŸããã³ååŸããããã®ã¡ã«ããºã ãããæç¢ºåãããŸãããCommercialLocal ã€ã³ã¹ã¿ã³ã¹ã«ã¯ã
Local
ã®ãã¬ãã£ãã¯ã¹ïŒããšãã°ãval LocalFoo = compositionLocalOf { Foo() }ïŒãä»ããå¿ èŠããããŸãïŒIa55b6ïŒ - takeMutableSnapshot ãš takeSnapshot ã¯ãã¹ãããã·ã§ããã®ã³ã³ãããªã³ ã¡ãœããã«ç§»åããŸãããïŒI91f19ïŒ
@ComposableContract
ã®ãµããŒããçµäºãã3 ã€ã®å ·äœçãªã¢ãããŒã·ã§ã³ã䜿çšããããã«ãªããŸããã@ComposableContract(restartable = false)
ã@NonRestartableComposable
ã«ãªãã@ComposableContract(readonly = true)
ã@ReadOnlyComposable
ã«ãªãã@ComposableContract(preventCapture = true)
ã@DisallowComposableCalls
ã«ãªãã@ComposableContract(tracked = true)
ãåé€ãããŸãããïŒI60a9dïŒemptyContent() ãš (@Composable () -> Unit).orEmpty() ãŠãŒãã£ãªãã£ã®ãµããŒããçµäºããŸããïŒããã©ãŒãã³ã¹äžã®å¹æã䟡å€ããªããªã£ãããïŒïŒI0484dïŒã
snapshotFlow
ãšwithMutableSnapshot
ã¯è©Šéšéçšçã§ã¯ãªããªããŸããïŒI6a45fïŒRecomposer ãã¯ããŒãºã§ããããã«ãªããŸãããã¯ããŒãºããã Recomposer ã¯ãã³ã³ããžã·ã§ã³åã³ã«ãŒãã³ãå®äºãããŸã§åã³ã³ããžã·ã§ã³ãç¶ããŸããRecomposer.shutDown ã®ååã cancel ã«å€æŽã㊠close ãšå¯Ÿæ¯ãããããã«ããŸãããïŒIb6d76ïŒ
compose:runtime-dispatch
ã¢ãŒãã£ãã¡ã¯ãã®ãµããŒããçµäºããŸãããMonotonicFrameClock 㯠compose:runtime ã«ããŸã AndroidUiDispatcher 㯠compose:ui ã«å«ãŸããããã«ãªããŸãããïŒIb5c36ïŒCompose ã³ã³ãã€ã© ãã©ã°ã€ã³ã®å¯Ÿè±¡ãšãªã API ã¯ãå ·è±¡ã¯ã©ã¹ã§ã¯ãªãã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšããããã«ãªãã¡ã¯ã¿ãªã³ã°ãããŸããããŸãããããã®ã€ã³ã¿ãŒãã§ãŒã¹ã¯ãã¿ã€ã ãã©ã¡ãŒã¿ã䜿çšããªããªããŸããã
ãã®å éšå€æŽã¯ãœãŒã¹ã³ãŒãã®äºææ§ã«ã¯åœ±é¿ãäžããŸãããããã€ããªã®äºææ§ãç Žã倿Žã«ãªããŸããïŒI3b922ãb/169406779ïŒ
SnapshotMutableState ãå°å ¥ããŸããïŒIcfd03ïŒ
DisposableEffectDisposable ã®ååã DisposaleEffectResult ã«å€æŽããŸããïŒIca7c6ïŒ
Recomposer.current() ãåé€ããŸããã[Abstract]ComposeView ã®ããã©ã«ãã¯ãé å»¶çã«äœæããããŠã£ã³ã㊠ã¹ã³ãŒãã® RecomposerïŒãŠã£ã³ããŠã® ViewTreeLifecycleLifecycle ã«ãã£ãŠé§åãããïŒã«ãªããŸããããã¹ã ã©ã€ããµã€ã¯ã«ã忢ãããšãåã³ã³ããžã·ã§ã³ãš withFrameNanos ã«åºã¥ãã¢ãã¡ãŒã·ã§ã³ ãã£ãã¯ãäžæåæ¢ããŸããïŒI38e11ïŒ
Recomposer.runningRecomposers ã¯ãããã»ã¹ã§é²è¡äžã®ã³ã³ããžã·ã§ã³ç¶æ ãç£èŠããããã®ãèªã¿åãå°çš RecomposerInfo ã®ã°ããŒãã« StateFlow ãæäŸããããã«ãªããŸããããã® API ã¯ãçŸåšéæšå¥šã® Recomposer.current() ãããåªå ãããŸããïŒIf8ebeïŒ
DisposableEffectDisposable ã®ååã DisposaleEffectResult ã«å€æŽããŸããïŒI3ea68ïŒ
ããŒãžã§ã³ 1.0.0-alpha11
2021 幎 1 æ 28 æ¥
androidx.compose.runtime:runtime-*:1.0.0-alpha11
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha11 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- onCommitãonDisposeãonActive ãéæšå¥šã«ããSideEffect API ãš DisposableEffect API ã«çœ®ãæããŸãããïŒIf760eïŒ
- emit() API ãšãã¹ãŠã®ãªãŒããŒããŒãã®ãµããŒããçµäºããååã ComposeNode ã«å€æŽãããŸãããAPI èªäœã¯åããã®ã§ãCompose ã®åœåèŠåã«åŸãããã«ååã ãã倿ŽãããŠããŸããïŒI4137bïŒ
- invalidate ãš compositionReference() ãéæšå¥šã«ãããããã currentRecomposeScope ãš rememberCompositionReference ã«çœ®ãæããŸãããïŒI583a8ïŒ
RememberObserver ã CompositionLifecycleObserver ã«çœ®ãæãããCompositionLifecycleObserver ã®ãµããŒããçµäºããŸããã
RememberObserver
ãCompositionLifecycleObserver
ã«çœ®ãæããŸãããã»ãã³ãã£ã¯ã¹ã倿Žããã¡ãœããã®ååã倿ŽããŸãããæ°ãã API ãžã®å€æŽã¯ã1 åã ãèšæ¶ãããŠãããªããžã§ã¯ãã«å¯ŸããŠã¯æ©æ¢°çã«è¡ãããšãã§ããŸãïŒåŒãç¶ãããããããããã®æ¹æ³ã§ãïŒããã ããåç §ãã³ã³ããžã·ã§ã³å ã§è€æ°åèšæ¶ãããŠããå Žåã¯ãonEnter
ã 1 åã ãåŒã³åºãããåç §ããšã«onRemembered
ãåŒã³åºãããŸãããªããžã§ã¯ããWithConstraints
ãScaffold
ãªã©ã®ãµãã³ã³ããžã·ã§ã³ã§äœ¿çšãããŠããå ŽåãonEnter
ãè€æ°ååŒã³åºãããããšã§åäžã®onEnter
åŒã³åºãã®ä¿èšŒã®ä¿¡é Œæ§ãæãªãããŠããŸããããRememberObserver
ã§ã¯åé€ãããŸãããRememberObserver
ã¯ãremember
ã«æž¡ãããã³ãŒã«ããã¯ããRememberObserver
ã€ã³ã¹ã¿ã³ã¹ãè¿ãããå Žåã«åŒã³åºãããonAbandoned
ã远å ããŸãããã³ã³ããžã·ã§ã³ã®ç¶æ ã«ã¯èšæ¶ãããªããããonRemembered
ãåŒã³åºãããããšã¯ãããŸãããããã¯ãäŸå€ã«ãã£ãŠã³ã³ããžã·ã§ã³ãå®äºåã«çµäºããå Žåããã³ã³ããžã·ã§ã³ã®çæç¶æ ãææ°ã§ãªããªã£ãããããã¯äžèŠã«ãªã£ãããã«ã³ã³ããžã·ã§ã³ãç Žæ£ãããå Žåãªã©ã«çºçããããšããããŸããäžèšã®åäžåç §ã®æšå¥šäºé ã«æ²¿ã£ãRememberObserver
ã®ã€ã³ã¹ã¿ã³ã¹ãå€éšãªãœãŒã¹ã远跡ããŠããå ŽåãonForgotten
ãšonAbandoned
ã®äž¡æ¹ãããªãœãŒã¹ãäžèŠã«ãªã£ãããšã瀺ããŸãããªããžã§ã¯ãããéå§ãããåŠçãŸãã¯onRemembered
ã«å²ãåœãŠããããªãœãŒã¹ã远跡ããå ŽåãonRemembered
ãåŒã³åºãããŠãonAbandoned
ã¯åŒã³åºãããªããããonAbandoned ã¯ç¡èŠã§ããŸããïŒI02c36ïŒcollectAsState()
颿°ãã€ã³ã©ã€ã³ãšããŠããŒã¯ããªãã§ãã ãããïŒIa73e4ïŒ
ãã°ã®ä¿®æ£
- WithConstraints 㯠BoxWithConstraints ãšããŠåæ§ç¯ãããfounds.layout ã«ç§»åããŸãããïŒI9420bãb/173387208ïŒ
- ãã¹ãã§ã¯ TestCoroutineDispatcher ãå©çšããŸããïŒI532b6ïŒ
ããŒãžã§ã³ 1.0.0-alpha10
2021 幎 1 æ 13 æ¥
androidx.compose.runtime:runtime-*:1.0.0-alpha10
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha10 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
äºææ§ãç Žã倿Ž
å éšã³ã³ãã€ã© API ã®åæ§æã«ãããã³ã³ããŒãºã®çµæãšããŠçæãããããŒããžã®å€æŽã¯ã
@Composable
颿°ããã¹ãŠå®äºããåŸãã³ã³ããŒãºã®ã倿Žãé©çšããã§ãŒãºã§äžæ¬é©çšãããããã«ãªããŸãããããã¯ãåäœé¢ã®äºææ§ãç Žã倿Žã§ãããã®å€æŽã«ãããããŒãã¯å€æŽãé©çšããããŸã§ã®éãå éš API ã詊éšéçšç API ãã䜿çšã§ããªããªããããã¢ããªã³ãŒãã®å€æŽãå¿ èŠã«ãªãå¯èœæ§ããããŸããéåžžãã®åé¡ãåé¿ããã«ã¯ãããŒããçæãããŠåæåããããŸã§ã³ãŒãã®å®è¡ãé ãããããã
SideEffect
ã³ã³ããŒã¶ãã«ã®äŸåé¢ä¿ã§ã³ãŒããå²ãããã«ããŸããïŒI018daïŒ
API ã®å€æŽ
- Recomposer ã«ãã£ãŠå€æŽãé©çšããããã©ããããã©ããã³ã°ããæ¹æ³ã远å ããŸãããïŒI1b3e2ïŒ
[Abstract]ComposeView API ãæ¡åŒµããããšã«ãããã³ã³ããžã·ã§ã³ãç Žæ£åŸã«åäœæããŠãCompose ããŒã¹ã®ãã¥ãŒããªãµã€ã¯ã«ã§ããããã«ããŸãããåã³ã³ããžã·ã§ã³ãäœæããããã®ãŠã£ã³ã㊠ã¹ã³ãŒãã® Recomposer ãš ComposerReference ãã€ã³ã¹ããŒã«ããã³æ€åºããããã® API ã远å ããŸãã
[Abstract]ComposeViews ã®ã³ã³ããžã·ã§ã³ç Žæ£æŠç¥ãèšå®ããããã® ViewCompositionStrategy ã远å ããŸããããã©ã«ãã§ã¯ããŠã£ã³ããŠã®ãã¿ããæã«ç Žæ£ãããŸããïŒI860abïŒ
ãã°ã®ä¿®æ£
- Recomposer ã®çŸæç¹ã«ãããç¶æ ã®ãããŒãå ¬éããããã®ã¢ã¯ãã£ããã£ããã³é¢é£ãã广ã®ã¢ã¯ãã£ããã£ãã¢ãã¿ãªã³ã°ã§ããããã«ãªããŸãããïŒIfb2b9ïŒ
- ãã€ãã£ã keyEvent ã« keyEvent.nativeKeyEvent ã§ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãããïŒI87c57ãb/173086397ïŒ
ããŒãžã§ã³ 1.0.0-alpha09
2020 幎 12 æ 16 æ¥
androidx.compose.runtime:runtime-*:1.0.0-alpha09
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha09 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
SlotTableãSlotReaderãSlotWriter ãå ¬é API ããåé€ããŸããããããã¯ã以å InternalComposeAPI ãšããŠããŒã¯ãããŠããŸãããçŸåšã¯ Compose ã¢ãžã¥ãŒã«ã®å éšã«ãããŸãã
ã³ã³ããžã·ã§ã³æ å ±ã®æœåºã«äœ¿çšãããããCompositionData ãš CompositionGroup ã UI-Tooling API ã«ä»£ãã£ãŠè¿œå ãããŸããããããã¯å ¬éãããŠããŸãããUI-Tooling API ãè§£éããæªå å·¥ã®æ å ±ãæäŸããã®ã§ãUI-Tooling API ã®å€éšã§ã®äœ¿çšã¯æ³å®ãããŠããŸãããïŒI31a9cïŒ
Appier ã¯ã©ã¹ã¯è©Šéšéçšç API ãšèŠãªãããªããªããŸãããïŒId85b0ïŒ
Applier
ã€ã³ã¿ãŒãã§ãŒã¹ã倿ŽããããããããŠã³ã§ã¯ãªãããã ã¢ããã§ããªãŒã®ãã«ããç°¡çŽ åãããŸãããinsert()
ã¡ãœããã®ååãinsertTopDown()
ã«å€æŽãããŸãããæ°ããã¡ãœãã
insertBottomUp()
ã远å ãããŸãããApplier ã¯ãç·šé察象ã®ããªãŒã«ããŒããæ¿å ¥ããéã«ã
insertTopDown()
ãŸãã¯insertBottomUp()
ã®ãã¡ããã©ãŒãã³ã¹ãåªããŠããã»ãã䜿çšããŸããLayoutNode
ãView
ãªã©ã®äžéšã®ããªãŒã¯ããããããŠã³ããããã ã¢ããã®ã»ããå¹ççã«ãã«ãã§ããŸãããã®å€æŽã®åã¯ãããã ã¢ãããå®è£ ããããã«å€§éã®æ¿å ¥ãå¿ èŠã§ãããããã©ãŒãã³ã¹ãåäžãããããã«ããã ã¢ããã®æ§ç¯ãå¿ èŠãšãããã¹ãŠã® Applier ã«ããã ã¢ãããã³ããŒããå¿ èŠããã£ãããã§ãããã®å€æŽã«ãããApplier
ã¯insertBottomUp()
ãšinsertTopDown()
ããªãŒããŒã©ã€ãããããããããã ã¢ãããšãããããŠã³ã§ããªãŒããã«ãããããã«ãªããŸãããïŒIcbdc2ïŒCompose ã¯ãã³ã³ããŒãºå¯èœãªåŒã³åºããè¡ãããããã㣠ã²ãã¿ãŒããµããŒãããŠããŸãããã®ãµããŒãã¯çµäºããŸãããããããã㣠ã²ãã¿ãŒã @Composable ãšããŠå®£èšããæ§æã倿ŽãããŸãã
éæšå¥šãšãªã£ãæ§æã§ã¯ããããè¡ãããã«ããããã£èªäœã«ã¢ãããŒã·ã§ã³ãä»ããŠããŸããã
@Composable val someProperty: Int get() = ...
çŸåšã®é©åãªæ§æã§ã¯ããããè¡ãããã«ããããã£ã®ã²ãã¿ãŒã«ã¢ãããŒã·ã§ã³ãä»ããŸãã
val someProperty: Int @Composable get() = ...
åœé¢ã¯ã©ã¡ãã®æ§æãæ©èœããŸãããéæšå¥šãšãªã£ãæ§æã¯ãããã¯ã³ã³ãã€ã« ãšã©ãŒã«ãªããŸããïŒId9197ïŒ
ãã°ã®ä¿®æ£
- AndroidOwner ãå éšã«é èœãããŸãããïŒIbcad0ãb/170296980ïŒ
- subcomposeInto(LayoutNode) ãå éšã«é èœãããŸãããïŒId724aïŒ
ããŒãžã§ã³ 1.0.0-alpha08
2020 幎 12 æ 2 æ¥
androidx.compose.runtime:runtime-*:1.0.0-alpha08
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha08 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- Compose ã®ã¬ã€ãã©ã€ã³ãšã®æŽåæ§ã確èªãããããã³ã³ããŒãºå¯èœãªã©ã ã ãã©ã¡ãŒã¿ã®ååãšäœçœ®ã«å¯Ÿãã lint ãã§ãã¯ã远å ããŸããããŸããlint ãã§ãã¯ããã³ã¬ã€ãã³ã¹ã«åŸã£ãŠãåŸçœ®ã©ã ãã®ååãšããŠ
children
ã䜿çšããäžéšã® API ãcontent
ã«ç§»è¡ããŸãããïŒIec48eïŒ - Recomposer 㯠EmbeddingContext ãåãå ¥ããªããªããŸãããå¿ èŠãªã¹ã±ãžã¥ãŒãªã³ã°äŸåé¢ä¿ã¯ effectCoroutineContext ããååŸãããŸããFrameManager ãéæšå¥šã«ãªããŸããããã©ãããã©ãŒã çµ±åã¯ãåºæã®ã°ããŒãã« ã¹ãããã·ã§ããåŠçãåæåããå¿ èŠããããŸããïŒI02369ïŒ
- RestorableStateHolder.withRestorableState 颿°ã®ååã RestorableStateProvider ã«å€æŽãããŸãããïŒI66640ïŒ
ãã°ã®ä¿®æ£
Ambient
ãšããæ¥å°ŸèŸãæã€ Ambient ãéæšå¥šã«ãªãããã®ä»ã® Ambient ãš Compose API ã®ã¬ã€ãã©ã€ã³ã«æ²¿ã£ãŠãAmbient ãšããæ¥é èŸãæã€æ°ããããããã£ã«çœ®ãæããããŸãããïŒI33440ïŒ- å€ã ui-test ã¢ãžã¥ãŒã«ãšãã®ã¹ã¿ããåé€ããŸãããïŒI3a7cbïŒ
ããŒãžã§ã³ 1.0.0-alpha07
2020 幎 11 æ 11 æ¥
androidx.compose.runtime:runtime-*:1.0.0-alpha07
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha07 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
æ°æ©èœ
API ã®å€æŽ
@UnionType
ã¢ãããŒã·ã§ã³ã®ãµããŒããçµäºããŸããïŒI57cdeïŒ- ã¢ã³ããšã³ããæäŸããä»£æ¿ææ®µãšã㊠provideDefault ã远å ãããŸãããã¢ã³ããšã³ãå€ããŸã æäŸãããŠããªãå Žåã«ã®ã¿èšå®ãããã¢ã³ããšã³ãå€ãæå®ããããã«äœ¿çšã§ããŸããïŒId6635ãb/171024925ïŒ
- SideEffect API ãš DisposableEffect API ãšã®æŽåæ§ãæãããããã«ãLaunchedTask ã®ååã LaunchedEffect ã«å€æŽãããŸããããã¹ã ãã©ã¯ãã£ã¹ãä¿é²ããããã«ããµããžã§ã¯ã ãã©ã¡ãŒã¿ã®ãªã LaunchedEffect ã¯èš±å¯ãããŸãããïŒIfd3d4ïŒ
- Applier ã«ãComposer ãããªãŒãžã®å€æŽã®é©çšãéå§ / çµäºãããšãã«åŒã³åºããã onBeginChanges / onEndChanges ã³ãŒã«ããã¯ã远å ãããŸãããå¿ èŠã«å¿ããŠãªãœãŒã¹ç®¡çã®ãããåŠçã«äœ¿çšã§ããŸããïŒIcf476ïŒ
- Recomposer ã¯ãäœææã« CoroutineContext ãå¿ èŠã«ãªããŸããïŒIc4610ïŒ
- å ¬é API ã«åœ±é¿ãäžããªããå éš SlotTable å®è£ ã«å€æŽããŸãããïŒIf9828ïŒ
- åæå€ãåããªãããµããŒããçµäºãã rxjava2 ã¢ããã¿ãåé€ããŸããïŒIdb72fïŒã
ãã°ã®ä¿®æ£
- foundation.Text ãéæšå¥šã«ãªããmaterial.Text ã«çœ®ãæããããŸãããããŒãã®å€ã䜿çšããªããåºæ¬çã§ç¬èªæ§ã®ãªãããã¹ã API ã«ã€ããŠã¯ãandroidx.compose.foundation.BasicText ãã芧ãã ãããïŒIf64cbïŒ
- BaseTextField ãéæšå¥šã«ãªããŸããã代ããã« BasicTextField ã䜿çšããŠãã ãããïŒI896ebïŒ
- ããã€ãã®ã¬ã€ã¢ãŠãé¢é£ã·ã³ãã«ã androidx.compose.ui ãã androidx.compose.layout.ui ã«ç§»åããŸãããïŒI0fa98ãb/170475424ïŒ
å€éšããã®åå
- Compose çšã®
runtime-rxjava3
ã¢ãžã¥ãŒã«ã远å ããŸãããruntime-rxjava2
ã«é¡äŒŒããŠããŸãïŒI02cbfïŒ
ããŒãžã§ã³ 1.0.0-alpha06
2020 幎 10 æ 28 æ¥
androidx.compose.runtime:runtime-*:1.0.0-alpha06
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha06 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- Recomposer ã CompositionReference ã«ãªããæå¹ãªã³ã³ããžã·ã§ã³ã®èŠªã«ãªããŸãããæç€ºç㪠Recomposer ãå¿ èŠãªå Žé¢ã¯å°ãªããªããŸãããïŒI4036fïŒ
- SideEffect ã«å¯Ÿå¿ãã DisposableEffect ã® API ã远å ããŸãããonCommit-with-params ã®åœ¹å²ãæãããŸãããonDispose ãå¿
èŠã§ãã
- åã³ã³ããžã·ã§ã³ããé²è¡äžãŸãã¯é·æã®ããã»ã¹ïŒDisposableEffects ã LaunchedTasks ãªã©ã®ïŒã«ããŒã¿ããããªãã·ã¥ãã rememberUpdatedState API ã远å ããŸããã
- ïŒId50b9ïŒ
- MutableVector ã« RandomAccess ãå®è£ ãããŸããïŒI85d73ãb/170461551ïŒ
- ã³ã³ããžã·ã§ã³ã«ãã£ãŠç®¡çããããªããžã§ã¯ãã«ã³ã³ããžã·ã§ã³ã®å¯äœçšãé©çšããããã«ãSideEffect ã³ã³ããŒã¶ãã«ã远å ããŸãããSideEffect ã¯ãonCommit ã³ã³ããŒã¶ãã«ã眮ãæããããšãç®çãšããŠããŸããïŒIa77c2ïŒ
- æ°ãã詊éšéçšç API RestorableStateHolderãããã«ããã[savedInstanceState] ãš [rememberSavedInstanceState] ã§å®çŸ©ããããµãããªãŒã®ç¶æ ãä¿åããŠãã廿£ããæ¬¡åã«åŸ©å ãããç¶æ ã§ã³ã³ããŒãºãçŽãããšãã§ããŸããïŒI66884ãb/166586419ïŒ
ãã°ã®ä¿®æ£
- ComposeTestRule ã§é·ç§»ãæå¹ã«ãªããŸãããComposeTestRule ãããã«ãŒãœã«ã®ç¹æ» ãæå¹ã«ãããªãã·ã§ã³ãåé€ããŸãããïŒIf0de3ïŒ
ããŒãžã§ã³ 1.0.0-alpha05
2020 幎 10 æ 14 æ¥
androidx.compose.runtime:runtime-*:1.0.0-alpha05
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha05 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- 詊éšéçšçã® Modifier.pointerInput å ¥åäžæåæ¢ä¿®é£ŸåïŒIa77d2ïŒ
- LazyColumn/Row ã®ã¹ã¯ããŒã« ããã©ãŒãã³ã¹ããã¹ã¯ããŒã«ããšã®ãµãã³ã³ããžã·ã§ã³ã§ã®äœæ¥ã軜æžããããšã§æ¹åãããŸãããComposition ã¯ã©ã¹çšã®æ°ãã hasInvalidations() ã¡ãœããã远å ãããŸãããRecomposer ã® hasPendingChanges() ã¡ãœãã㯠hasInvalidations() ãšããååã«å€æŽãããŸããïŒIb2f32ãb/168293643ãb/167972292ãb/165028371ïŒ
- æéããããŠåäžã®
State<T>
å€ãæŽæ°ããã³ã³ããžã·ã§ã³ããã³ã«ãŒãã³ãèµ·åããããã« produceState API ã远å ãããŸããïŒId4a57ïŒ - Compose API ã¬ã€ãã©ã€ã³ã«åãã㊠launchInComposition ã LaunchedTask ãšããååã«å€æŽãããŸããïŒI99a8eïŒ
- ã«ã¹ã¿ã Layouts ã§ã® place() åŒã³åºãã®é åºã§ãåã®æç»é åºãå®çŸ©ã§ããããã«ãªããŸããïŒIbc9f6ïŒ
ããŒãžã§ã³ 1.0.0-alpha04
2020 幎 10 æ 1 æ¥
androidx.compose.runtime:runtime-*:1.0.0-alpha04
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha04 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- ã¬ã€ã¢ãŠããå³åœ¢æç»ã®ã¢ãã¿ãªã³ã° ã¹ã³ãŒãããæå¹ã§ãªããªã£ãåŸã«åéã§ããããã«ãOwnerScope ã远å ããŸãããïŒIc4cf8ïŒ
- èšç®ã«åºã¥ããŠç¶æ ãªããžã§ã¯ããäœæããããã® derivedStateOf API ã远å ããä»ã®ç¶æ ãªããžã§ã¯ããèªã¿èŸŒãã§ïŒããããå°åºããŠïŒç¶æ ãªããžã§ã¯ããäœæããããã«ããŸãããïŒIf758bïŒ
- SnapshotStateObserver çšã® TestOnly API ã远å ããŸãããïŒI6e2a9ïŒ
ãã°ã®ä¿®æ£
- foundation.Box ã¯ãµããŒããçµäºããŸããã代ããã« foundation.layout.Box ã䜿çšããŠãã ãããïŒIe5950ãb/167680279ïŒ
ããŒãžã§ã³ 1.0.0-alpha03
2020 幎 9 æ 16 æ¥
androidx.compose.runtime:runtime-*:1.0.0-alpha03
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha03 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
CompositionCoroutineScope
ã¯MonotonicFrameClock
ãå®è£ ããªããªããŸãããwithFrameNanos
ã®åŒã³åºãå ã¯ããããã¬ãã«é¢æ°ãæç€ºçã«ã€ã³ããŒãããå¿ èŠããããŸããïŒIcb642ãb/166778123ïŒ
ãã°ã®ä¿®æ£
onNode
ãwaitForIdle
ãªã©ã®ã°ããŒãã« ãã¹ã颿°ã®ãµããŒãã¯çµäºããŸãããComposeTestRule ã§å®çŸ©ãããŠããæ°ããåçã®é¢æ°ã«ç§»è¡ããŠãã ããïŒI7f45aïŒlaunchInComposition
ããã£ã¹ããããããŠããªãã³ã«ãŒãã³ãéå§ããªãããã«ãªããŸããïŒIef6afãb/166486000ïŒ
ããŒãžã§ã³ 1.0.0-alpha02
2020 幎 9 æ 2 æ¥
androidx.compose.runtime:runtime-*:1.0.0-alpha02
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha02 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- Snapshot ããŒã¿ã®å€æŽã®æ¶è²»ããã³çæçšã«
snapshotFlow
ããã³withMutableSnapshot
API ã远å ãããŸãããïŒI3e722ïŒ ã³ã³ããŒãºå¯èœãªé¢æ°ã®åŒã³åºãèŠåã倿ŽãããŸãããããã¯äºææ§ãç Žããã€ããªã®å€æŽã§ãããã®ããŒãžã§ã³ã® Compose ã³ã³ãã€ã© ãã©ã°ã€ã³ã§åäœããã«ã¯ããã¹ãŠã®ã©ã€ãã©ãªãåã³ã³ãã€ã«ããå¿ èŠããããŸãã
倿Žããã API ã¯æç€ºçãªãªããã€ã³ãããã³ã³ãã€ã© API ã ãã§ããããããœãŒã¹ã¬ãã«ã§äºææ§ãç Žã倿Žã¯ãããŸãããïŒI7afd2ãb/158123185ïŒ
EmbeddingContext ããã¹ã±ãžã¥ãŒã«èšå®ã¡ãœãããåé€ããŸãããïŒI7b9beïŒ
onPrecommit ã¯éæšå¥šã§ããonCommit ã§ onPrecommit ã®åäœããµããŒããããããã«ãªããŸããã
onCommit ãš onActive ã¯ã次㮠Choreographer ãã¬ãŒã ã®éå§æç¹ã§ã¯ãªããæ§æèŠçŽ ã®å€æŽã commit ãããåã Choreographer ãã¬ãŒã ã§å®è¡ãããããã«ãªããŸãããïŒI70403ïŒ
ããŒãžã§ã³ 1.0.0-alpha01
2020 幎 8 æ 26 æ¥
androidx.compose.runtime:runtime-*:1.0.0-alpha01
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 1.0.0-alpha01 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ããŒãžã§ã³ 0.1.0-dev
ããŒãžã§ã³ 0.1.0-dev17
2020 幎 8 æ 19 æ¥
androidx.compose.runtime:runtime-*:0.1.0-dev17
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 0.1.0-dev17 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
- ã«ã¹ã¿ã åºåã§ã¯ã1 ã€ä»¥äžã®ã»ãã¿ãŒãã¹ããããããã®åºåãšã¯é¢ä¿ãªãåã³ã³ããŒãºã§ããããšã宣èšã§ããããã«ãªããŸãããïŒIbbd13ïŒ
ãµããŒããçµäºãã FrameManager ã®åŒã³åºããåé€ããŸããã
å éšã³ã³ããŒãº API ã倿Žããã
mutableStateof()
ãªã©ã®ç¶æ ãªããžã§ã¯ãã远跡ãããªãŒããŒããããæžããŸãããïŒI80ba6ïŒæç¢ºåã®ããã
state { ... }
ã³ã³ããŒã¶ãã«ãéæšå¥šã«ããremember { mutableStateOf(...) }
ã®æç€ºçãªåŒã³åºãã«çœ®ãæããŸãããããã«ãããç¶æ 管çã® API ãµãŒãã§ã¹å šè¬ãšã³ã³ã»ããã®æ°ãçž®å°ãããã¯ã©ã¹ ããããã£å§ä»»ã®by mutableStateOf()
ãã¿ãŒã³ãšäžèŽããããã«ãªããŸããïŒIa5727ïŒFlow.collectAsState ã¯ãããã©ã«ã ãã£ã¹ãããã£ã Dispatchers.Main ã«ãããã³ã³ããžã·ã§ã³èªäœããæ±ºå®ããããã«ãªããŸãããïŒI9c1d9ïŒ
ç¶æ ãä¿åããäœãã for ã«ãŒãå ã§äœ¿çšããããšãã«ã¯ã©ãã·ã¥ããåé¡ãä¿®æ£ãããŸãããsavedInstanceState() ã§åãããŒã䜿çšã§ããããã«ãªããããã«åãã㊠UiSavedStateRegistry ã® API ã調æŽãããŸãããïŒI4ab76ãb/160042650ãb/156853976ãb/159026663ãb/154920561ïŒ
ãã°ã®ä¿®æ£
emitView
ã®ãµããŒããçµäºããŸãããCompose å ã§ View ãåºåããå Žåãå¯èœã§ããã°ã代ããã«AndroidView
ã䜿çšããŠãã ãããView ãš ViewGroup ãçŽæ¥ã³ã³ããŒãºããæ¹æ³ã¯ãå°æ¥ãµããŒããããªããªããŸãããã ããããããã³ã³ããžã·ã§ã³ ããªãŒã«æ®ã£ãŠããŠãAndroidView ã䜿çšããŠã³ã³ããŒãºãããå Žåã¯é€ããŸããïŒI29b1eãb/163871221ïŒ
ããŒãžã§ã³ 0.1.0-dev16
2020 幎 8 æ 5 æ¥
androidx.compose.runtime:runtime-*:0.1.0-dev16
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 0.1.0-dev16 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
API ã®å€æŽ
mutableStateOf()
ãambientOf()
ãsavedInstanceStateOf()
ã®ããã©ã«ãã®å€æŽããªã·ãŒããreferentialEqualityPolicy()
ããstructuralEqualityPolicy()
ã«å€æŽãããŸãããmutableStateOf()
ã€ã³ã¹ã¿ã³ã¹ãžã®ä»£å ¥ã倿Žãšã¿ãªããã©ããã®æ±ºå®ã«äœ¿çšããç䟡æŒç®åã®ããã©ã«ããã===
ãã==
ã«å€æŽããŸããã詳ããã¯ãhttps://kotlinlang.org/docs/reference/equality.html ãã芧ãã ããã
ambientOf()
ãšsavedInstanceStateOf()
ã¯å®è£ ã§mutableStateOf()
ã䜿çšããŠãããããmutableStateOf()
ãšã®æŽåæ§ããšãããã®å€æŽãè¡ããŸãããæ§é çç䟡æ§ã®äœ¿çšã¯ããããããŒã®æ³å®ã«è¿ããã®ã§ãã
ããšãã°ã
val state = mutableStateOf(1f)
ã®åŸã«
state.value = 1f
ãå®è¡ãããšããŠãã
state
ãžã®å€æŽãšã¯ã¿ãªããããã³ã³ããžã·ã§ã³äžã«state
ã䜿çšããŠãåã³ã³ããžã·ã§ã³ã¯äžèŠãšãªããŸããããã¯äºææ§ãç Žã倿Žã§ãããã»ãšãã©ã®å ŽåïŒ
equals()
ããªãŒããŒã©ã€ãããªãã¯ã©ã¹ã䜿çšããå Žåãªã©ïŒãã¢ããªã«ç®ç«ã£ã圱é¿ã¯ãããŸãããequals()
ããªãŒããŒã©ã€ãããã¯ã©ã¹ïŒdata
ã¯ã©ã¹ãªã©ïŒã§ã¯ãããã©ãŒãã³ã¹ãäœäžããå¯èœæ§ããããŸããããã¯ãmutableStateOf()
ã«ä»£å ¥ãããå Žåã«ããã©ã«ãã§equals()
ã¡ãœãããåŒã³åºãããããã§ããmutableStateOf()
ãambientOf()
ãsavedInstanceStateOf()
ã®åŒã³åºãã«ããªã·ãŒ ãã©ã¡ãŒã¿policy = referentialEqualityPolicy()
ã远å ãããšã以åã®åäœã«æ»ããŸããïŒIc21a7ïŒRow
ãšColumn
ãã€ã³ã©ã€ã³é¢æ°ã«ããŸãããããã«ããã䜿çšããéã®ãªãŒããŒããããå€§å¹ ã«åæžãããŸããïŒI75c10ïŒ
ãã°ã®ä¿®æ£
- setViewContent ã®ãµããŒããçµäºããŸããã代ããã« setContent ã䜿çšããŠãã ãããïŒI7e497ãb/160335130ïŒ
MonotonicFrameAnimationClock ã远å ããŠãMonotonicFrameClock ã AnimationClockObservable ãšããŠäœ¿çšã§ããããã«ããŸãããããã«ãããæ°ããã³ã«ãŒãã³ ããŒã¹ã®ã¯ããã¯ãšãåŸæ¥ã®ã³ãŒã«ãã㯠ããŒã¹ã®ã¯ããã¯ã䜿çšããŠãã API ãšã®ééãåãŸããŸããã
ManualAnimationClock ã«çžåœãã MonotonicFrameClock 㯠ManualFrameClock ã«ãªããŸãããïŒI111c7ãb/161247083ïŒ
Modifier.stateDraggable ã¯ãå šé¢çã«æžãçŽãããååã Modifier.swipeable ã«å€ãããŸãããæ°ãã SwipeableState ã¯ã©ã¹ãå°å ¥ãããDrawerState ãš BottomDrawerState ã SwipeableState ã¯ã©ã¹ãç¶æ¿ããããã«ãªãã¡ã¯ã¿ãªã³ã°ãããŸããã[Modal/Bottom]DrawerLayout ã onStateChange ãã©ã¡ãŒã¿ãåããªããªããŸãããïŒI72332ãb/148023068ïŒ
Modifier.plus ãéæšå¥šã«ãªããŸããã代ããã« Modifier.then ã䜿çšããŠãã ãããthen ã«ãããé åºãæç¢ºåããã
Modifier.padding().background() + anotherModifier
ãšæžããŠãã§ãŒã³ãåæãå¯èªæ§ãäžããããšã鲿¢ãããŸããïŒIedd58ãb/161529964ïŒSubcomposeLayout ã远å ããŸãããããã¯ã枬å®äžã«åŸã«ãªããªããšäœ¿çšã§ããªãå€ã䜿çšããŠãµãããªãŒãã³ã³ããŒãºããå Žåã«ãåãã³ã³ããŒãºã§ããããã«ããäœã¬ãã« ããªããã£ãã§ããããšãã°ãWithConstraints 㯠SubcomposeLayout ã䜿çšããã«å®è£ ãããŠããŸããïŒI25cc8ïŒ
material ã® FilledTextField ã TextField ã«ãfoundation ã® TextField ã BaseTextField ã«åå倿Žããã·ã³ãã«ã§æãŸãã API ãç°¡åã«èŠã€ããŠäœ¿çšã§ããããã«ããŸãããïŒIa6242ãb/155482676ïŒ
Modifier.drawBackground ã®ååã Modifier.background ã«å€æŽãããŸãããïŒI13677ïŒ
ããŒãžã§ã³ 0.1.0-dev15
2020 幎 7 æ 22 æ¥
androidx.compose.runtime:runtime-*:0.1.0-dev15
ããªãªãŒã¹ãããŸãããããŒãžã§ã³ 0.1.0-dev15 ã«å«ãŸãã commit ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
äŸåé¢ä¿ã®æŽæ°
0.1.0-dev15
ããŒãžã§ã³ã® Compose ã䜿çšããã«ã¯ãäžèšã®äŸåé¢ä¿ã®å®£èšã§ç€ºãããŠããæ°ããã³ãŒã ã¹ããããã«åŸã£ãŠãäŸåé¢ä¿ãæŽæ°ããå¿ èŠããããŸãã
API ã®å€æŽ
@Model
ã¢ãããŒã·ã§ã³ãéæšå¥šã«ãªããŸããã代ããã« state ãš mutableStateOf ã䜿çšããŠãã ããããã®ãµããŒãçµäºã¯ãæ éã«æ€èšãããããã§æ±ºå®ããããã®ã§ãããµããŒãçµäºã®çç±
äž»ãªçç±ã以äžã«ç€ºããŸãã
- API ã«é¢ããé ç®ãšæŠå¿µã«ã€ããŠãæåãå¿ èŠãªå å®¹ãæžããã
- ä»ã®åçã®ããŒã«ãããïŒSwift UIãReactãFlutterïŒãšã®é£æºãããç·å¯ã«ããã
- ãµããŒãçµäºã®å€æãåãäžããããšãã§ããã
@Model
ã¯ãã€ã§ãå ã«æ»ãããšãã§ããŸãã @Model
ã®æ§æã«é¢ããŠã以äžã®ãããªãŸããªäœ¿çšäŸããªãããåçã®é£ãã質åãåºãªãããã«ããã@Model
ããŒã¿ã¯ã©ã¹ãçåŒãããã·ã¥ã³ãŒããªã©ã- äžéšã®ããããã£ãç£èŠå¯Ÿè±¡ãšãããã®ä»ã®ããããã£ã¯ç£èŠå¯Ÿè±¡ãšããªãæ¹æ³ã
- ç£èŠãè¡ãéã«äœ¿çšããæ§é ç䟡åŒãšåç §ç䟡åŒã®æå®æ¹æ³ã
- ã·ã¹ãã ãžã®ãéåºŠãªæåŸ ããæžãããã·ã¹ãã ã®èœåãéä¿¡ãããããšïŒãªã¹ãã®å·®åååŸã®æ¹æ³ããã§ã«ãããšèãããªã©ïŒãå°ãªããªãããã«ããŸãã
- ç£èŠã®ç²åºŠãããçŽæçã«ããã
- ãªãã¡ã¯ã¿ãªã³ã°ã«ããã倿°ãã¯ã©ã¹ã®ããããã£ã«ã§ããå¯èœæ§ãé«ããã
- State ãåå¥ã«æäœããŠæé©åãè¡ããå¯èœæ§ãé«ããã
- ãšã³ã·ã¹ãã ã®ä»ã®éšåãšã®é£æºãããç·å¯ã«ããState ã倿Žäžèœã§ããããšã«ããææ§ãã軜æžããïŒå€æŽå¯èœãª State ãæŽ»çšããïŒã
ç§»è¡ã¡ã¢
@Model
ã®æ¢åã®äœ¿çšäŸã«ã€ããŠã¯ãäžã® 2 ã€ã®æ¹æ³ã®ããããã«ãã»ãŒãã¹ãŠå®¹æã«å€æã§ããŸãã以äžã«ã2 ã€ã®ããããã£ãå«ã¿ãã³ã³ããŒãºå¯èœãªé¢æ°å ã§äœ¿çšããã@Model
ã¯ã©ã¹ãäŸãšããŠç€ºããŸãã@Model class Position( var x: Int, var y: Int ) @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
æ¹æ³ 1:
State<OriginalClass>
ã䜿çšããŠã³ããŒãäœæãããã®ã¢ãããŒãã¯ãKotlin ã®ããŒã¿ã¯ã©ã¹ã䜿çšããããšã§ç°¡åã«å®æœã§ããŸããåºæ¬çã«ã¯ã以åã®ãã¹ãŠã®
var
ããããã£ãããŒã¿ã¯ã©ã¹ã®val
ããããã£ã«ããŠãremember
ã§ã¯ãªãstate
ã䜿çšããŸãããããŠãããŒã¿ã¯ã©ã¹ã®copy(...)
ã³ã³ãããšã³ã¹ ã¡ãœããã䜿çšããŠãå ã®ã¯ã©ã¹ã®ã³ããŒã« state ã®å€ãå²ãåœãŠãŸãããã®ã¢ãããŒããæ©èœããã®ã¯ã
State
ã€ã³ã¹ã¿ã³ã¹ãäœæãããã¹ã³ãŒããšåãã¹ã³ãŒãã§ãã¯ã©ã¹ã«å¯Ÿãã倿Žã ããè¡ãããå Žåã§ããããšã«æ³šæããŠãã ãããã¹ã³ãŒãå€ã§ã¯ã©ã¹ã®å€æŽãå éšçã«è¡ãããŠããããã®ç£èŠã«äŸåããŠããå Žåã¯ã次ã®ã¢ãããŒãã䜿çšããŸããdata class Position( val x: Int, val y: Int ) @Composable fun Example() { var p by state { Position(0, 0) } PositionChanger( position=p, onXChange={ p = p.copy(x=it) } onYChange={ p = p.copy(y=it) } ) }
æ¹æ³ 2: mutableStateOf ãšããããã£å§ä»»ã䜿çšãã
ãã®ã¢ãããŒãã¯ãKotlin ã§ã®ããããã£å§ä»»ãš
mutableStateOf
API ã䜿çšããããšã§ç°¡åã«å®æœã§ããŸããã³ã³ããžã·ã§ã³ã®å€éšã« MutableState ã€ã³ã¹ã¿ã³ã¹ãäœæããããšãå¯èœã§ããåºæ¬çã«ã¯ãå ã®ã¯ã©ã¹ã®ãã¹ãŠã®var
ããããã£ããããããã£å§ä»»ãšããŠmutableStateOf
ãæã€var
ããããã£ã«çœ®ãæããŸãããã®ã¢ãããŒãã«ã¯ãã¯ã©ã¹ã®äœ¿ç𿹿³ã®å€æŽãäžåãªããã¯ã©ã¹ã®å éšå®è£ ã®ã¿ã倿Žããããšããå©ç¹ããããŸãããã ããåããããã£ãåå¥ã«ç£èŠããã³ç»é²ãããããã«ãªããããå ã®äŸãšãŸã£ããåãåäœã«ã¯ãªããŸããããªãã¡ã¯ã¿ãªã³ã°åŸã«å床ã³ã³ããžã·ã§ã³ãäœæãããéã«ã¯ã察象ãéå®ããããšããå©ç¹ããããŸããclass Position(x: Int, y: Int) { var x by mutableStateOf(x) var y by mutableStateOf(y) } // source of Example is identical to original @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
ïŒI409e8ãb/152050010ãb/146362815ãb/146342522ãb/143413369ãb/135715219ãb/143263925ãb/139653744ïŒ
Compose ã®ã³ã³ãã€ã©ã«ãããã³ãŒãçæã®ä»æ§ã倿ŽããŸããã倿Žåã® Compose ã³ã³ãã€ã©ã§ã¯ãã³ã³ããŒãºå¯èœãªé¢æ°ã®åŒã³åºãéšåã倿ããŠããŸããã倿ŽåŸã¯ã³ã³ããŒãºå¯èœãªé¢æ°ã®æ¬æã倿ããåŒã³åºãéšåã§ã®å€æã¯äžéšãé€ããŠè¡ããŸããã
ã€ãŸããCompose ã©ã³ã¿ã€ã ãšã®ããžãã¯äžã®ããåãã¯ãåŒã³åºãéšåã§ã¯ãªã颿°æ¬æã®éå§éšåã§çºçããŸãã
ãã®å€æŽã¯ Compose ã®äœ¿ç𿹿³ã«é¢ããããœãŒã¹äºæã§ãããCompose ã䜿çšããŠããŠãéåžžã¯ã³ãŒããæŽæ°ããå¿ èŠã¯ãããŸããã
ãã®åŠçããµããŒãããããããã¹ãŠã®ã³ã³ããŒãºå¯èœãªé¢æ°ã® JVM ã®çœ²åã倿ŽãããŸãããã³ã³ããŒãºå¯èœãªé¢æ°ã§ãã©ã¡ãŒã¿ã 1 ã€åãåãå Žåã3 ã€ã®ãã©ã¡ãŒã¿ãåãåã颿°ã«å€æãããŸãã远å ããããã©ã¡ãŒã¿ã¯ Composer ãšãkeyãæŽæ°ã§ããããããã¹ã¯æŽæ°ãšããŠãåŒã³åºããéããŠã¡ã¿ããŒã¿ãäŒéããéã«äœ¿çšãããŸãã
ãªããããã©ã«ãã®åŒæ°ãã³ã³ããŒãºå¯èœãªé¢æ°ã«å€æãããããã«ãªã£ãŠããŸãã倿æã«ã颿°ã®åæã«ãããªãŒããŒããŒããããã©ã«ãã§è¡ãããããšã¯ãªããããå®çŸ©ããã颿°ã®æ°ã¯å°ãªããªããŸãã
ä»åã®å€æŽã«ããç¢ºèªæžã¿ã®æå³çãªåäœå€æŽã¯æ¬¡ã®ãšããã§ãã
- äžéšã®åŒã³åºããã倿Žåã«ã¯ã¹ããããããªãã£ãç®æã§ã¹ããããããã
- ããã©ã«ãã®åŒæ°ãå«ãåŒã§ãã³ã³ããŒãºå¯èœãªåŒãæ£ããç»é²ããã³åŠçãããã
æé©åã«é¢ããŠã¯ã次ã®å 容ãå«ãŸããŸãã 1. ãã©ã¡ãŒã¿ã®æ¯èŒçµæããã³ãŒã«ã°ã©ããä»ããŠä»ã®ã³ã³ããŒãºå¯èœãªé¢æ°ã«äŒéãããããã®çµæãå®è¡æã®æ¯èŒåŠçãæžã£ãŠã¹ããã ããŒãã«ã®ãµã€ãºãå°ãããªãããŸããã¹ããããããã³ã³ããŒãºå¯èœãªé¢æ°ã以åãããå¢ããã 2. ã³ã³ãã€ã«æã«ãéçããšå€å®ããããã©ã¡ãŒã¿ã¯å®è¡æã«æ¯èŒãŸãã¯ä¿åãããªããªãããã®çµæãæ¯èŒåŠçãæžã£ãŠã¹ããã ããŒãã«ã®ãµã€ãºãå°ãããªãã 3. 颿°ã®æ¬æã«å¶åŸ¡ãããŒæ§é ã䜿çšãããçæãããã°ã«ãŒãã®æ°ãæå°éã«æããããããã®çµæãã¹ããã ããŒãã«ã®ãµã€ãºãå°ãããªããå®è¡æã®åŠçãæžå°ããã 4. 颿°ã«æž¡ãããæªäœ¿çšã®ãã£ã¹ããã ãã©ã¡ãŒã¿ãšã¬ã·ãŒã ãã©ã¡ãŒã¿ãã颿°ã®æ¬æå ã§äœ¿çšãããŠããªãå Žåã«ã¯ã颿°ã®ã¹ããããè¡ããã©ããã®å€æã«ã¯çšããããªãã
äºææ§ãç Žã倿Žã®ã»ãšãã©ã¯ãã³ã³ãã€ã©ãçŽæ¥ã¿ãŒã²ãããšãã API ã«é¢ãããã®ã§ãããcompose ã®äžè¬çãªäœ¿çšã«ã¯åœ±é¿ããŸããã 1. Composer::startExpr ãåé€ãããŸããã 2. Composer::endExpr ãåé€ãããŸããã 3. Composer::call ãéæšå¥šã«ãªããŸããã 4.
key
ã® non-varargs ã®ãªãŒããŒããŒããåé€ãããŸãããä»åŸã¯vararg
ããŒãžã§ã³ã䜿çšããŠãã ããã 5. Pivotal ã¢ãããŒã·ã§ã³ãéæšå¥šã«ãªããŸããã代ããã«key
ã䜿çšããŠãã ããã6. ScopeUpdateScope::updateScope ã倿ŽãããFunction1 ã§ã¯ãªã Function3 ãæ³å®ããããã«ãªããŸããã7. restartableFunction ãš restartableFunctionN ãæŽæ°ãããã³ã³ãã€ã«æãã©ã¡ãŒã¿ã远å ãããŸãããïŒI60756ãb/143464846ïŒsortWith ãš removeRange ã MutableVector ã«è¿œå ããŸãããïŒIcccf7ïŒ
CompositionLifecycleObserver ã®ããã©ã«ãã®ã¡ãœããå®è£ ã远å ããŸãããïŒI24289ïŒ
Applier ã«ã¯ãã³ã³ããžã·ã§ã³ãç Žæ£ããããã® clear() ã¡ãœãããå¿ èŠã«ãªããŸãããïŒIbe697ïŒ
asMutableList() ã MutableVector ã«è¿œå ããŸãããããã«ããããªã¹ãå šäœãã³ããŒããªããŠãå ¬é API ã«æž¡ããããã«ãªããŸãããïŒI298dfïŒ
ã³ã³ããžã·ã§ã³å ã®ç®¡ç察象㮠CoroutineScope ãååŸããããã® rememberCoroutineScope() ã远å ããŠãã€ãã³ãã«å¿ããŠãžã§ããèµ·åã§ããããã«ããŸãããïŒI0e264ïŒ
MutableVector ã¯ãæšæºã® Collection ã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ããªãæ°ããã³ã¬ã¯ã·ã§ã³ã§ãããã®ã³ã¬ã¯ã·ã§ã³ã¯ãä»ã®èŠä»¶ãè¶ ããé床ãæäŸããå éšå®è£ ã§ã®ã¿äœ¿çšãããŸããïŒI8ebd6ïŒ
Compose ãå¿ èŠãšãã Kotlin ã®ããŒãžã§ã³ã®åé¡ãé¿ããããã«ã
StableMutableList
ãšStableMutableMap
ãäžæçã«åé€ããŸããããããã®ã€ã³ã¿ãŒãã§ãŒã¹ã¯ãCompose ãåé¡ã®ãªãããŒãžã§ã³ã® Kotlin ã«æŽæ°ããæ¬¡ç¬¬ãåå°å ¥ãããäºå®ã§ããSnapshotStateList
ãšSnapshotStateMap
ã¯çŸåšå ¬éãããŠããŸãããStableMutableList
ãšStableMutableMap
ãåå°å ¥ããæ¬¡ç¬¬ããµããŒãçµäºãšãªããŸããïŒIa7769ïŒã¢ãã¡ãŒã·ã§ã³ã®ã¿ã€ãã³ã°ããµããŒãããæäžäœã¬ãã«ã® withFrameNanos 颿°ã远å ããŸãããïŒIe34c5ïŒ
@Untracked ã¢ãããŒã·ã§ã³ãéæšå¥šã«ãªããŸããã@ComposableContract(tracked=false) ã«çœ®ãæããŸããïŒId211eïŒ
RestartableFunction ããã³é¢é£ãã API ã®ååã ComposableLambda ãªã©ã«å€æŽãããŸããããããã® API ãã¿ãŒã²ãããšããŠããã®ã¯ã³ã³ãã€ã©ã®ã¿ã®ãããéåžžã¯ãã®åå倿ŽããœãŒã¹ã¬ãã«ã®äºææ§ã«åœ±é¿ããããšã¯ãããŸããããã®åå倿Žã®äž»ãªç®çã¯ããã®ã¯ã©ã¹ãã¹ã¿ã㯠ãã¬ãŒã¹ã«è¡šç€ºããããšãã«ãã®é·æãäŒããããã§ããïŒI7eb25ïŒ
@Composable ã¢ãããŒã·ã§ã³ãã¯ã©ã¹ã§äœ¿çšã§ããªããªããŸãããïŒIa5f02ïŒ
Ambient<T>
ã @Immutable ã§ã¯ãªã @Stable ã«ãªããŸãããïŒI0b4bbïŒãã®å€æŽãè¡ãããåãcompose ã³ã³ãã€ã© ãã©ã°ã€ã³ã¯ãã¹ã³ãŒãå ã®è§£æ±ºããããcomposerãã«ãemit æŒç®åãã¡ãœãããèŠã€ãã£ãå Žåã@Composable 颿°å ã®ã³ã³ã¹ãã©ã¯ã¿ã®åŒã³åºãã«å¯ŸããŠèªæã§ãªãã€ã³ã¿ãŒã»ãããå®è¡ããŠããŸãããïŒI5205aãb/158123804ïŒ
Recompose composable ã¯ãæçšãªæœè±¡åã§ã¯ãªããªããŸãããã»ãšãã©ã®å Žåãåã³ã³ããŒãºã¯ãMutableState å²ãåœãŠã®çµæãšããŠçããŸãããã以å€ã®å Žåã¯ã
invalidate
颿°ã䜿çšããŠãçŸåšã®ã¹ã³ãŒãã®åã³ã³ããŒãºãããªã¬ãŒããããšãããããããŸããïŒIfc992ïŒObserve ã¯æçšãªæœè±¡åã§ã¯ãªããªããŸãããObserve ãè€è£œããå¿ èŠãããå Žåã¯ãã³ã³ããŒãºå¯èœãªã©ã ã ãã©ã¡ãŒã¿ãå®è¡ããã³ã³ããŒãºå¯èœãªé¢æ°ãäœæããããšã«ãããObserve ã®å®è£ ãè€è£œã§ããŸããäŸ:
@Composable fun Observe(body: @Composable () -> Unit) = body()
ïŒI40d37ïŒ@Direct ã®ãµããŒããçµäºãã@ComposableContract(restartable=false) ã«çœ®ãæããããŸãããïŒIf4708ïŒ
æè¿å°å ¥ããã StateFlow çšã®ã¢ããã¿ã远å ããŸãããState ãè¿ãããéã« null ã«ãªãããšããªãããã«ãåæå€ãäºåå ¥åã§ããŸãïŒI61dd8ãb/156233789ïŒã
Flow çšã®ã¢ããã¿ã远å ããŸããã䜿çšäŸ: val value by flow.collectAsState()ïŒIf2198ãb/153375923ïŒ
[Mutable] State ãããã㣠ããªã²ãŒãæŒç®åããKotlin 1.4 ã®ãããã㣠ããªã²ãŒãæé©åã«å¯Ÿå¿ãããããæ¡åŒµæ©èœã«ç§»åãããŸããã
by state { ... }
ãŸãã¯by mutableStateOf(...)
ãåŒãç¶ã䜿çšããã«ã¯ãåŒã³åºãå ã§ã€ã³ããŒãã远å ããå¿ èŠããããŸããïŒI5312cïŒandroidx.compose.ViewComposer ã androidx.ui.node.UiComposer ã«ç§»åãããandroidx.compose.Emittable ãåé€ãããŸããããã㯠ComponentNode ãšéè€ããŠããŸãããandroidx.compose.ViewAdapters ãåé€ãããŸããããµããŒã察象ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãªããªããŸãããCompose.composeInto ãéæšå¥šã«ãªããŸããã代ããã«
setContent
ãŸãã¯setViewContent
ã䜿çšããŠãã ãããCompose.disposeComposition ãéæšå¥šã«ãªããŸããã代ããã«ãsetContent
ãè¿ãComposition
ã®dispose
ã¡ãœããã䜿çšããŠãã ãããandroidx.compose.Compose.subcomposeInto 㯠androidx.ui.core.subcomposeInto ã«ç§»åãããŸãããComponentNode#emitInsertAt ã®ååã ComponentNode#insertAt ã«å€æŽãããŸãããComponentNode#emitRemoveAt ã®ååã ComponentNode#removeAt ã«å€æŽãããŸãããComponentNode#emitMode ã®ååã ComponentNode#move ã«å€æŽãããŸãããïŒIdef00ïŒComposeFlags.COMPOSER_PARAM
ãã©ã°ãtrue
ã«æŽæ°ããŸãããããã«ãããcompose ãã©ã°ã€ã³ã®ã³ãŒãçææ¹æ³ã倿ŽãããŸããæŠç¥ãšããŠã¯ãã©ã³ã¿ã€ã ãå®è¡ãé©åã«ç®¡çã§ããããã«ããããã@Composable 颿°ã远å ã®åæãã©ã¡ãŒã¿ã§çæããããã®ãã©ã¡ãŒã¿ããã®åŸã® @Composable åŒã³åºãã«æž¡ãããŸããããã¯äºææ§ãç Žãé倧ãªãã€ããªã®å€æŽã§ãããcompose ã®ãã¹ãŠã®èš±å¯ãããäœ¿çšæ¹æ³ã§ãœãŒã¹ã¬ãã«ã®äºææ§ãä¿æãããŸããïŒI7971cïŒã¢ã³ããšã³ã API ãå€§å¹ ã«å€æŽããŸããã詳现ã«ã€ããŠã¯ããã°ãš
Ambient<T>
ã®ããã¥ã¡ã³ããã芧ãã ããïŒI4c7eeãb/143769776ïŒui-livedataïŒLiveData çšã¢ããã¿ãå«ãæ°ããã¢ãŒãã£ãã¡ã¯ãïŒã远å ããŸããã䜿çšäŸ: val value by liveData.observeAsState()ïŒIe9e8cãb/150465596ïŒ
æç€ºçãªåæå€ã®ãªã Rx ã¢ããã¿ãéæšå¥šã«ãªããŸãããnull ã䜿çšããããšã¯ãå¿ ãããæé©ãªããã©ã«ãã§ã¯ãããŸãããããšãã°ãList ã䜿çšããå Žåã¯ãemptyList() ãªã©ã®åŠ¥åœãªããã©ã«ãããå§ããããšãããããããŸããïŒI00025ãb/161348384ïŒ
ui-rxjava2ïŒRxJava2 çšã¢ããã¿ãå«ãæ°ããã¢ãŒãã£ãã¡ã¯ãïŒã远å ããŸããã䜿çšäŸ: val value by observable.subscribeAsState()ïŒIfab4bãb/153369097ïŒ
savedInstanceState()
ã§ null 蚱容åã䜿çšã§ããããã«ãªããŸãããïŒI6847fãb/153532190ïŒæ°ãã listSaver() ãš mapSaver() ã«ãããã«ã¹ã¿ã ã® Saver ãªããžã§ã¯ããç°¡åã«èšè¿°ã§ããããã«ãªããŸãããïŒI8cf68ãb/152331508ïŒ
æ°ãã颿°: savedInstanceState() ããã³ rememberSavedInstanceState()ãããã㯠state() ã remember() ã«äŒŒãŠããŸãããä¿åãããã€ã³ã¹ã¿ã³ã¹ã®ç¶æ ã®ãµããŒããçµã¿èŸŒãŸããŠããŸããïŒIf1987ãb/152025209ïŒ
ãã°ã®ä¿®æ£
runOnIdleCompose
ã®ååãrunOnIdle
ã«å€æŽãããŸãããïŒI83607ïŒ- LayoutNode API ã詊éšéçšçã«ãªããŸãããïŒI4f2e9ïŒ
- androidx.ui.foundation.TextFieldValue ãš androidx.ui.input.EditorValue ã®ãµããŒããçµäºããŸããããã®åã䜿çšãã TextFieldãFilledTextFieldãCoreTextField ã®å composable ãéæšå¥šã«ãªããŸããã代ããã« androidx.ui.input.TextFieldValue ã䜿çšããŠãã ãããïŒI4066dãb/155211005ïŒ
- éæšå¥šãšãªã£ã DrawBackground API ãåé€ããModifier ã® drawBackground æ¡åŒµæ©èœ API ã«çœ®ãæããŸãããè²ããã©ã·ããã€ã³ãã«é¢ãã drawBackground å®è£ ããªãã¡ã¯ã¿ãªã³ã°ããã³ãŒããã¹ãåæžãããšãšãã«ãã³ã³ããžã·ã§ã³ã®äžéšãšã㊠Modifier ãäœæããå¿ èŠããªãããŸãããïŒI0343aïŒ
- ãã£ã³ãã¹ãå ¬éãããã€ã¬ãã«ã® Compose API ãæŽæ°ããŠã代ããã« CanvasScope ãå ¬éããããã«ããŸãããããã«ããããŠãŒã¶ãŒãç¬èªã® Paint ãªããžã§ã¯ããç¶æç®¡çããå¿ èŠããªããªããŸããåŒãç¶ããã£ã³ãã¹ã®å©çšãå¿ èŠãªãŠãŒã¶ãŒã¯ãdrawCanvas æ¡åŒµã¡ãœããã䜿çšã§ããŸãããã®ã¡ãœããã«ããã察象ã®ãã£ã³ãã¹ã«å¯Ÿã㊠Draw ã³ãã³ããå®è¡ããã³ãŒã«ããã¯ãè¡ãããŸããïŒI80afdïŒ
- WithConstraints åŸçœ®ã©ã ã API ã倿ŽãããŸããã2 ã€ã®ãã©ã¡ãŒã¿ã«ä»£ãã£ãŠã¬ã·ãŒã ã¹ã³ãŒããèšããããconstraints ãš layoutDirection ã«å ããŠãDp åäœã§æå®ãã minWidthãmaxWidthãminHeightãmaxHeight ããããã£ãçšæãããŸãããïŒI91b9aãb/149979702ïŒ
- 察称ããã£ã³ã°ä¿®é£Ÿåã远å ããŸãããïŒI39840ïŒ
- ä»»æã® Alignment ã§ã¯ãªãåçŽæ¹åãŸãã¯æ°Žå¹³æ¹åã® Alignment ãåãå ¥ããããã«ãwrapContentWidth ãš wrapContentHeight ãæŽæ°ããŸãããåçŽæ¹åãŸãã¯æ°Žå¹³æ¹åã® Alignment ãåãå ¥ããããã«ãéå修食åãæŽæ°ããŸãããã«ã¹ã¿ã ã®é£ç¶ Alignment ããµããŒãããããšãç®çãšã㊠RowãColumnãStack ãæŽæ°ããŸãããïŒIb0728ïŒ
- ui-text ã¢ãžã¥ãŒã«ã®ååã ui-text-core ã«å€æŽãããŸãããïŒI57decïŒ
- DrawModifier API ã®æ¹å:
- draw() ã®ã¬ã·ãŒã ã¹ã³ãŒãã ContentDrawScope ã«ããŸããã
- draw() ã®ãã©ã¡ãŒã¿ããã¹ãŠåé€ããŸããã
- DrawScope ã«ä»¥åã® CanvasScope ãšåãã€ã³ã¿ãŒãã§ãŒã¹ãèšå®ããŸããã
- ContentDrawScope ã« drawContent() ã¡ãœããã远å ããŸãããïŒIbacedãb/152919067ïŒ
- ColoredRect ãéæšå¥šã«ãªããŸããã代ããã«
Box(Modifier.preferredSize(width, height).drawBackground(color))
ã䜿çšããŠãã ãããïŒI499faãb/152753731ïŒ - 修食åãšæŒç®åãå·¥å Žåºè·æã®æ¡åŒµæ©èœã«çœ®ãæããŸããïŒI225e4ïŒ
- RowScope ãš ColumnScope ã®ã¡ã³ããŒã«ãè¡ãšåã®å€éšããã¢ã¯ã»ã¹ã§ããããã«ãªããŸãããïŒI3a641ïŒ
- LayoutFlexible ã®ååã LayoutWeight ã«å€æŽããŸããããã®ãã©ã¡ãŒã¿ãè£ãããã« tight ãã©ã¡ãŒã¿ã®ååã倿ŽããŸãããïŒIf4738ïŒ
- WithConstraint ã« LayoutDirection ãã©ã¡ãŒã¿ã远å ãããŸããïŒI6d6f7ïŒ
- background ã®ååã DrawBackground ã«å€æŽãããããã©ã«ãã§èšæ¶ãããããã«ãªããŸãããïŒIa0bd3ïŒ
- ButtonStyle ãå¥ã®é¢æ°ã«çœ®ãæããããã¹ãïŒæååïŒãªãŒããŒããŒããåé€ããŸãããäœ¿çšæ¹æ³ã«ã€ããŠã¯ãæŽæ°æžã¿ã®ãµã³ãã«ãã芧ãã ãããïŒIf63abãb/146478620ãb/146482131ïŒ
runOnIdleCompose
ãšrunOnUiThread
ã ComposeTestRule ã®ã¡ãœããã§ã¯ãªãã°ããŒãã«é¢æ°ã«ãªããŸãããïŒIcbe8fïŒ
å€éšããã®åå
- Looper ã Handler ãªã©ã®äžèŠãª API ã Compose Runtime ç§»æ€ã¬ã€ã€ããåé€ãããŸãããïŒI6847dïŒ
- åæå€ã®ãªã
Flow<T>.collectAsState()
ãéæšå¥šã«ãªããŸããã代ããã«StateFlow<T>
ã䜿çšããããæç€ºçãªåæå€ãæž¡ããŠãã ãããïŒI63f98ãb/157674865ïŒ