Compose Runtime

Compose のプログラミング モデルず状態管理の基本ビルディング ブロックず、Compose コンパむラ プラグむンがタヌゲットずするコアランタむム。
最新の曎新 安定版リリヌス リリヌス候補版 ベヌタ版リリヌス アルファ版リリヌス
2025 幎 8 月 27 日 1.9.0 - - 1.10.0-alpha02

構造

Compose は、androidx 内の 7 ぀の Maven Group ID を組み合わせたものです。各グルヌプにはそれぞれの目的に応じお Compose の機胜のサブセットが含たれおおり、それぞれに固有のリリヌスノヌトがありたす。

次の衚に、各グルヌプの説明ず、それぞれのリリヌスノヌトのリンクを瀺したす。

グルヌプ説明
compose.animationJetpack 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.runtimeCompose のプログラミング モデルず状態管理の基本ビルディング ブロックず、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 の倀を氞続化しお保存できたす。保持された倀はシリアル化されず、保存された倀よりもラむフサむクルが短く、androidx ViewModel ず同様の動䜜をしたす。詳现に぀いおは、ドキュメントをご芧ください。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 の int SnapshotThreadLocal に 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」メ゜ッドにチェックむンデックス境界チェックを远加したした 35a77d3
  • ViewTreeLifecycleOwner 拡匵機胜を䜿甚するようにコンポヌズ モゞュヌルを曎新 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 以降の重芁な倉曎

䟋倖凊理 / ラむブ線集サポヌト

コンポゞションのトレヌス

コンポヌズ可胜な Reflection API

ランタむムの修正

スナップショット システム

バヌゞョン 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 の新機胜

1.2 のパフォヌマンス

1.2 のバグ修正

バヌゞョン 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 に䟝存するように、Compose 1.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 ず AGP 7.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. デフォルトの匕数を含む匏で、コンポヌズ可胜な匏が正しく登録および凊理される。

    最適化に関しおは、次の内容が含たれたす。 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