Compose çalışma zamanı

Compose'un programlama modeli ve durum yönetiminin temel yapı taşları ve Compose Derleyici Eklentisi'nin hedefleyeceği temel çalışma zamanı.
Son Güncelleme Kararlı Sürüm Sürüm Adayı Beta sürümü Alfa Sürümü
9 Eylül 2026 1.12.1 - - 1.13.0-alpha03

Yapı

Compose, androidx içindeki 7 Maven Group kimliğinin birleşimidir. Her grup, kendi sürüm notları kümesine sahip, hedeflenen bir işlevsellik alt kümesini içerir.

Bu tabloda gruplar açıklanmakta ve her bir sürüm notu grubuna bağlantı verilmektedir.

GrupAçıklama
compose.animationKullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyonlar oluşturun.
compose.compiler@Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisiyle optimizasyonları etkinleştirin.
compose.foundationKullanıma hazır yapı taşlarıyla Jetpack Compose uygulamaları yazın ve kendi tasarım sistemi parçalarınızı oluşturmak için temeli genişletin.
compose.materialKullanıma hazır Materyal Tasarım bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Bu, Compose'un daha üst düzey giriş noktasıdır ve www.material.io adresinde açıklanan bileşenlerle eşleşen bileşenler sağlamak üzere tasarlanmıştır.
compose.material3Materyal Tasarım'ın bir sonraki evrimi olan Materyal Tasarım 3 bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Material 3; güncellenmiş temalar ve bileşenler ile dinamik renk gibi Material You kişiselleştirme özelliklerini içerir. Ayrıca yeni Android 12 görsel stili ve sistem kullanıcı arayüzü ile uyumlu olacak şekilde tasarlanmıştır.
compose.runtimeCompose'un programlama modeli ve durum yönetiminin temel yapı taşları ve Compose Derleyici Eklentisi'nin hedefleyeceği temel çalışma zamanı.
compose.uiDüzen, çizim ve giriş dahil olmak üzere cihazla etkileşim kurmak için gereken temel Compose kullanıcı arayüzü bileşenleri.

Bağımlılıkları bildirme

Compose'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.

Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:

Groovy

dependencies {
    implementation "androidx.compose.runtime:runtime:1.11.4"
    implementation "androidx.compose.runtime:runtime-livedata:1.11.4"
    implementation "androidx.compose.runtime:runtime-rxjava2:1.11.4"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.runtime:runtime:1.11.4")
    implementation("androidx.compose.runtime:runtime-livedata:1.11.4")
    implementation("androidx.compose.runtime:runtime-rxjava2:1.11.4")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.

Geri bildirim

Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.

Yeni sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.

Sürüm 1.13

Sürüm 1.13.0-alpha03

9 Eylül 2026

androidx.compose.runtime:runtime-*:1.13.0-alpha03 iptal edilir. 1.13.0-alpha03 sürümü bu commit'leri içerir.

Performans

  • Tahsisleri ortadan kaldırmak için satır içi SlotWriter.forAllDataInRememberOrder (Ie39f6)

Sürüm 1.13.0-alpha02

26 Ağustos 2026

androidx.compose.runtime:runtime-*:1.13.0-alpha02 iptal edilir. 1.13.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • İçerik lambda'sından değer döndürmenizi sağlayan withLocalRetainedValuesStore işlevi eklendi. (I8e871, b/542168593)
  • MutableState için rememberSerializable öğesinin null değer atanabilir aşırı yüklemeleri eklendi. (I77b83, b/543285462)

Sürüm 1.13.0-alpha01

12 Ağustos 2026

androidx.compose.runtime:runtime-*:1.13.0-alpha01 iptal edilir. 1.13.0-alpha01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Birleştirilmiş ProGuard kural kümelerindeki çekişmeyi azaltmak ve bir uygulama Gradle dışında küçültüldüğünde uyumluluğu artırmak için LinkTable özellik bayrağını ayarladık. Bayrağı yapılandırmak için kullanılan proguard söz dizimi biraz değişti. Aşağıdaki örneği inceleyin ve eklenen nota (I419da) dikkat edin: -assumevalues public class androidx.compose.runtime.ComposeRuntimeFlags { static boolean isLinkBufferComposerEnabled() return true; }

  • produceState() ve Flow.collectAsState() artık temel alınan State nesnesinin eşitlik ve birleştirme politikasını kontrol etmek için SnapshotMutationPolicy bağımsız değişkenini kabul ediyor. (I0c167, b/405128869)

  • @ComposableTarget tekrarlanabilir hale getirildi. Daha fazla bilgi için güncellenen belgelere bakın. (I99a89, b/481422057)

  • Yeniden oluşturma geçersiz kılma akışını kaydetmek için RecompositionTracer eklendi (I1dbc1, Ia991d, b/531813367)

  • Gezinmeyi/geri yığın durum yönetimini basitleştirmek ve harici key izlemeye olan ihtiyacı ortadan kaldırmak için SaveableStateHolder üzerinde gözlemlenebilir keys kullanıma sunuldu. holder.keys ile erişin, removeState ile kaldırın. (I9bbbb, b/398887924)

  • staticCompositionLocalWithComputedDefaultOf, sağlandığında statik olarak davranan veya sağlanmadığında hesaplanan ProvidableCompositionLocals oluşturmak için eklendi. (I844e4)

Hata Düzeltmeleri

  • GapComposer içinde, withCompositionLocal bloğundan sonraki RememberObserver örneklerinin, bloktaki RememberObserver'lerden önce unutma geri çağırmalarını yanlış şekilde yürütmesine neden olabilen bir sorun düzeltildi. (I4d54c)
  • Değişebilir durum nesnesine yazarken oluşan düşük hacimli istisna düzeltildi. (I48194, b/503110696)
  • SnapshotStateSet.writeToParcel'da yalnızca ilk girişi serileştiren hata düzeltildi. (I64f4c, b/537461421)
  • Yığın izlemelerinde göründüğünde daha anlaşılır olması için CancellationException iptal etmek üzere kullanılan LaunchedEffect ve hatırlanan CoroutineScopes değiştirildi. (I89840, b/449897855)
  • Dinamik alıcıları kullanarak compose:runtime değer sınıflarının (ComposeStackTraceMode, GroupKind) optimize edilmiş yardımcı nesne başlatması. (I50640)
  • compileSdk 37 (If78b4) şartını kaldırın

Harici Katkı (External Contribution)

  • Canlı düzenleme sırasında hata veren alt kompozisyon kaldırıldığında üst kompozisyonların yanıt vermemesi sorunu düzeltildi. (I3717c)
  • Alt kompozisyonda hata oluştuğunda Canlı Düzenleme'nin kurtarılması düzeltildi. Böylece üst kompozisyonlar durum değişikliklerini gözlemlemeye devam edebilir. (I63fb5)

Sürüm 1.12

Sürüm 1.12.1

9 Eylül 2026

androidx.compose.runtime:runtime-*:1.12.1, 1.12.0 sürümünden bu yana herhangi bir değişiklik yapılmadan yayınlandı. 1.12.1 sürümü bu commit'leri içerir.

Sürüm 1.12.0

12 Ağustos 2026

androidx.compose.runtime:runtime-*:1.12.0 iptal edilir. 1.12.0 sürümü bu commit'leri içerir.

1.11.0 sürümünden beri yapılan önemli değişiklikler:

Deneysel yer tablosunda yapılan güncellemeler

  • 1.11 sürümünde kullanıma sunulan deneysel LinkTable uygulamasının kararlılığını artırmaya yönelik çalışmalarımız devam ediyor. Yeni uygulama, özellikle küçük rastgele değişikliklerde yeniden oluşturma performansını artırmak için tasarlanmıştır. Kullanıcıları yeni SlotTable özelliğini denemeye ve karşılaştıkları sorunları bildirmeye teşvik ediyoruz. Daha fazla bilgi için ComposeRuntimeFlags.isLinkBufferComposerEnabled belgesine göz atın.

Keys API ile Yan Etki

  • Anahtar bağımsız değişkenleri kabul eden SideEffect için aşırı yükleme eklendi. Yeni API, SideEffect'ları tek seferlik olarak tetiklemek için kullanılabilir. Bunun için CoroutineScope veya onDispose blokları kullanılmayan bir LaunchedEffect ya da DisposableEffect gerekmez. (I528b2, b/476108743)

Sürüm 1.12.0-rc01

29 Temmuz 2026

androidx.compose.runtime:runtime-*:1.12.0-rc01 iptal edilir. 1.12.0-rc01 sürümü bu commit'leri içerir.

Sürüm 1.12.0-beta02

1 Temmuz 2026

androidx.compose.runtime:runtime-*:1.12.0-beta02 iptal edilir. 1.12.0-beta02 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • İç içe yerleştirilmiş MovableContent kullanılırken LinkComposer içindeki ArrayIndexOutOfBoundsException düzeltildi. (I85daf)

Sürüm 1.12.0-beta01

17 Haziran 2026

androidx.compose.runtime:runtime-*:1.12.0-beta01 iptal edilir. 1.12.0-beta01 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Bir durum nesnesi bir anlık görüntüde oluşturulup ilk anlık görüntü uygulanmadan önce eşzamanlı bir anlık görüntüde değiştirildiğinde anlık görüntü uygulama gözlemcilerinin bilgilendirilmemesine neden olan sorun düzeltildi. (Ide27f, b/451479063)
  • derivedStateOf() değerlerinin kompozisyonda izlenme şeklindeki olası bir bellek sızıntısı düzeltildi. Türetilmiş bir durum tarafından okunan nesnelere yazma işlemlerinin yönlendirilmesi, derivedStateOf() örneğinin, bileşim kaldırılana kadar bileşim tarafından tutulmasına neden oldu. derivedStateOf() doğru şekilde hatırlanmazsa her kompozisyon yeni bir sızıntı oluşturabileceğinden bu sızıntı önemli olabilir. (Ib5d87, b/516904513)
  • LinkComposer içinde, kompozisyon sırasında geçersiz kılınan composable'ların yeniden oluşturulmak yerine atlanmasına neden olabilen bir sorun düzeltildi. (Ie29fe)
  • remember öğesinin vararg aşırı yüklemesiyle ilgili, hatırlanan değerin geçersiz kılınmasını engelleyen ve remember işlevinden yanlış bir değer döndürülmesine neden olan sorun düzeltildi. Bu durum, remember dizinin sonundaki öğeler çıkarılarak önceki anahtarlarla aynı olan daha az anahtarla yeniden oluşturulduğunda meydana gelir. Bu düzeltmenin uygulanması için etkilenen kodun yeniden derlenmesi gerekir. (I0736b)

Harici Katkı (External Contribution)

  • Compose çalışma zamanında DisposableEffect ve SideEffect çalışmaları için ayrıntılı izleme eklendi. (Ie451f)

Sürüm 1.12.0-alpha03

19 Mayıs 2026

androidx.compose.runtime:runtime-*:1.12.0-alpha03 iptal edilir. 1.12.0-alpha03 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Teşhis yığını izlerinin doldurulmadığı veya bilgilerin eksik olduğu (I3918c) LinkTable ile ilgili çeşitli sorunlar giderildi.
  • Dahili bir veri türünde, taşınabilir içeriklerde nadir durumlarda istisnaya neden olabilecek bir sorun düzeltildi. (Ic478f, b/507724717)
  • LinkComposer'nın atlama davranışında, GapComposer ile karşılaştırıldığında tutarsız davranışa, varsayılan bağımsız değişkenlerin beklenmedik şekilde yeniden hesaplanmasına ve test zaman aşımlarına neden olan sorun düzeltildi. (I783dc)

Sürüm 1.12.0-alpha02

6 Mayıs 2026

androidx.compose.runtime:runtime-*:1.12.0-alpha02 iptal edilir. 1.12.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Anahtar bağımsız değişkenleri kabul eden SideEffect için aşırı yükleme eklendi. Yeni API, veya CoroutineScope ya da onDispose blokları kullanılmayan bir LaunchedEffect veya DisposableEffect gerekmeden tek seferlik SideEffects tetiklemek için kullanılabilir. (I528b2, b/476108743)

Sürüm 1.12.0-alpha01

22 Nisan 2026

androidx.compose.runtime:runtime-*:1.12.0-alpha01 iptal edilir. 1.12.0-alpha01 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • LinkTable'da geçersiz düğüm işlemlerine neden olabilecek bir sorun düzeltildi. (I491c3)
  • Compose'un compileSdk'si API 37'ye güncellendi. Bu nedenle, Compose kullanılırken minimum AGP sürümü 9.2.0 olmalıdır. (Id45cd, b/413674743)
  • LinkTable'da, yeniden boyutlandırmayı tetikleyen içerik eklemelerinin eski değerlerin okunmasına yol açabileceği ve bunun da CompositionLocals'ın çözümlenmemesine neden olabileceği bir önbelleğe alma sorunu düzeltildi. (I8016c)
  • T.writableRecord'nın gereksiz IllegalStateException'ler oluşturmasına neden olan hata düzeltildi (Ia778f, b/440975176)

Çalışma Zamanı İzleme Sürümü 1.7

Sürüm 1.7.0-rc01

18 Eylül 2024

androidx.compose.runtime:runtime-tracing:1.7.0-rc01 iptal edilir. 1.7.0-rc01 sürümü bu commit'leri içerir.

Çalışma Zamanı İzleme Sürümü 1.0

Sürüm 1.0.0-beta01

29 Kasım 2023

androidx.compose.runtime:runtime-tracing:1.0.0-beta01 iptal edilir. 1.0.0-beta01 sürümü şu commit'leri içerir.

Sürüm 1.0.0-alpha05

15 Kasım 2023

androidx.compose.runtime:runtime-tracing:1.0.0-alpha05 iptal edilir. 1.0.0-alpha05 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Bağımlılıklar, desteklenen en düşük kararlı sürümlere (ör.compose-runtime ve tracing-perfetto) sabitlendi. Böylece, compose-runtime-tracing'in uygulamaya compose-runtime'ın daha yeni bir sürümünü getirmesine neden olan sorun düzeltildi.

Sürüm 1.0.0-alpha04

23 Ağustos 2023

androidx.compose.runtime:runtime-tracing:1.0.0-alpha04 iptal edilir. 1.0.0-alpha04 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Benchmark ve Tracing Perfetto'nun en yeni sürümleriyle uyumludur. Bu sayede, uygulama baştan başlatılırken (sıfırdan başlatma) AndroidX Benchmark ve Android Studio'da (Hedgehog Beta 2'den itibaren) Composition Tracing desteği sağlanır.

API Değişiklikleri

  • androidx.tracing.perfetto.Trace, androidx.tracing.perfetto.PerfettoSdkTrace olarak yeniden adlandırıldı. (I44af8)
  • Tracing Perfetto SDK API'lerinin android.os.Trace ile tutarlı hale getirilmesi. (I73ba0, b/282199917)
  • Uygulama başlatılırken izleme için ön koşullar. (Iad890)
  • Deneysel ve genel API dosyaları birleştirildi (I0f2e1, b/278769092)

Sürüm 1.0.0-alpha02

8 Şubat 2023

androidx.compose.runtime:runtime-tracing:1.0.0-alpha02 iptal edilir. 1.0.0-alpha02 sürümü şu commit'leri içerir.

Yeni Özellikler

  • İşlevsel değişiklik yok. Aşağı akış bağımlılıklarında birden fazla performans optimizasyonu androidx.tracing:tracing-perfetto*.

Sürüm 1.0.0-alpha01

7 Eylül 2022

androidx.compose.runtime:runtime-tracing:1.0.0-alpha01 iptal edilir. 1.0.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • androidx.compose.runtime:runtime-tracing, destekleyen araçlar (çok yakında kullanıma sunulacak) olduğunda Compose uygulamasında genişletilmiş izlemeye olanak tanıyan bir kitaplıktır. Bu ilk sürüm 1.0.0-alpha01'dir.

Sürüm 1.11

Sürüm 1.11.4

1 Temmuz 2026

androidx.compose.runtime:runtime-*:1.11.4 iptal edilir. 1.11.4 sürümü bu commit'leri içerir.

Sürüm 1.11.3

17 Haziran 2026

androidx.compose.runtime:runtime-*:1.11.3 iptal edilir. 1.11.3 sürümü bu commit'leri içerir.

Sürüm 1.11.2

19 Mayıs 2026

androidx.compose.runtime:runtime-*:1.11.2 iptal edilir. 1.11.2 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Dahili bir veri türünde, taşınabilir içeriklerde nadir durumlarda istisnaya neden olabilecek bir sorun düzeltildi. (Ic478f, b/507724717)

Sürüm 1.11.1

6 Mayıs 2026

androidx.compose.runtime:runtime-*:1.11.1 iptal edilir. 1.11.1 sürümü bu commit'leri içerir.

Sürüm 1.11.0

22 Nisan 2026

androidx.compose.runtime:runtime-*:1.11.0 iptal edilir. 1.11.0 sürümü bu commit'leri içerir.

1.10.0 sürümünden beri yapılan önemli değişiklikler:

Yeni deneysel SlotTable

  • Kompozisyon hiyerarşinizi izlemek, yeniden oluşturmadan kaynaklanan değişiklikleri belirlemek ve hatırlanan değerleri depolamak için Compose Runtime tarafından kullanılan dahili veri yapısı olan SlotTable öğesini yeniden yazdık. Bu yeniden yazma işlemi, yeniden oluşturma performansını iyileştirmeye odaklanır ve bunu öncelikle aralık arabelleğinden SlotTable önemli ölçüde daha az bellek kopyalama işlemi kullanarak yapar. Öğelerin uzun listesini yeniden sıralama gibi kompozisyon hiyerarşinizde yapılan belirli değişiklikler, eski SlotTable'ya kıyasla iki kat daha hızlı yeniden oluşturulabilir. Diğer işlemlerin çoğu, yeni SlotTable uygulamasıyla% 10 daha hızlı yeniden oluşturulur. Çalışma zamanı tarafından kullanılan SlotTable uygulaması, tüm Composable yöntemlerini etkiler ve yeniden derleme gerektirmez. Yeni SlotTable kullanmak, bağımlılıklar da dahil olmak üzere uygulama genelinde bir değişikliktir.
  • Bu SlotTable uygulama hâlâ deneyseldir ve şu anda varsayılan olarak devre dışıdır. ComposeRuntimeFlags.isLinkBufferComposerEnabled değerini true olarak ayarlayarak bu özelliği etkinleştirebilirsiniz. Küçültmenin etkinleştirildiği yayın derlemelerinde, bu değer çalışma zamanıyla birlikte sağlanan varsayılan proguard-rules.pro dosyasında yanlış olarak kabul edilir. Üretimde yeni SlotTable özelliğini etkinleştirmek için bu varsayımın uygulamanın proguard-rules.pro dosyasında doğru olarak değiştirilmesi gerekir. Daha fazla bilgi için ComposeRuntimeFlags.isLinkBufferComposerEnabled adresindeki dokümanları inceleyin.

Ana makine varsayılanı bileşimi yerelleri

  • Varsayılan değerleri için barındırma ortamına (ör. Android View etiketleri) geri dönen CompositionLocals'in tanımlanmasına olanak tanıyan compositionLocalWithHostDefaultOf eklendi.

ile SnapshotFlowManager snapshotFlow daha verimli gözlem

  • SnapshotFlowManager API'yi kullanıma sunduk. Bu API, snapshotFlow daha verimli bir şekilde gözlemlemenizi sağlar. Aynı SnapshotFlowManager öğesinin birden fazla snapshotFlow örneği için yeniden kullanılması, daha az anlık görüntü uygulama gözlemcisinin kaydedilmesine ve işlem durumu güncellemelerinin daha hızlı işlenmesine neden olur.

Sürüm 1.11.0-rc01

8 Nisan 2026

androidx.compose.runtime:runtime-*:1.11.0-rc01 iptal edilir. 1.11.0-rc01 sürümü bu commit'leri içerir.

Sürüm 1.11.0-beta02

25 Mart 2026

androidx.compose.runtime:runtime-*:1.11.0-beta02 iptal edilir. 1.11.0-beta02 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • WASM'de kimlik karma kodlarının her zaman 0 döndürmesine neden olan sorun düzeltildi (I9d70c).
  • İç içe yerleştirilmiş bir türetilmiş durumun bağımlılıkları değiştiğinde üst türetilmiş durumun doğru şekilde geçersiz kılınamamasına neden olan sorun düzeltildi (Ia7981, b/481750019).
  • Bir kompozisyon silindikten sonra geçersiz yazma işlemlerine neden olabilen LinkTable ile ilgili sorun düzeltildi. (I5c97a)
  • Kopyalama işlemi sırasında tablo yeniden boyutlandırıldığında LinkTable içinde geçersiz yazma işlemlerine neden olabilen sorun düzeltildi (Ie7edf).
  • LinkTable içinde, bir düğümün (I58a4a) depolanan değerini yanlış şekilde güncelleyen sorun düzeltildi.
  • LinkTable artık daha küçük bir kapasiteyle başlatılıyor. Bu sayede, daha küçük yığın boyutlarına sahip cihazlarda çok sayıda alt kompozisyon oluşturulurken OOM hataları önleniyor (I112b9).

Sürüm 1.11.0-beta01

11 Mart 2026

androidx.compose.runtime:runtime-*:1.11.0-beta01 iptal edilir. 1.11.0-beta01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • SnapshotFlowManager ve manager parametresini kabul eden snapshotFlow aşırı yüklemesi artık deneysel olarak işaretleniyor (I5c1a5, b/486077876, I0de71, b/486077876)

Hata Düzeltmeleri

  • Duraklatılabilir kompozisyonda "Apply is called on deactivated node" (Uygulama devre dışı bırakılmış düğümde çağrılıyor) kilitlenmesini düzeltme (I880c0, b/484300733)
  • LinkTable bölümünde, MovableContent kullanılırken ArrayIndexOutOfBoundsExceptions veya meta veri bozulmasına neden olabilecek bir sorun düzeltildi. (I8452b)
  • LinkTable'da, teşhis izlerinin doğru şekilde doldurulmasını engelleyen sorun düzeltildi (I59868).
  • Yeni SlotTable'da, MovableContent içinde kullanılan RememberObservers öğesinin kaldırıldığında OutOfMemoryError/infinite döngüsüne neden olabileceği sorun düzeltildi. (I884e7)

Sürüm 1.11.0-alpha06

25 Şubat 2026

androidx.compose.runtime:runtime-*:1.11.0-alpha06 iptal edilir. 1.11.0-alpha06 sürümü bu commit'leri içerir.

Sürüm 1.11.0-alpha05

11 Şubat 2026

androidx.compose.runtime:runtime-*:1.11.0-alpha05 iptal edilir. 1.11.0-alpha05 sürümü bu commit'leri içerir.

API Değişiklikleri

  • ComposeRuntimeFlags.isMovingNestedMovableContentEnabled adlı çalışma zamanı özellik bayrağı kaldırıldı. (I3ee62, b/455588848)
  • HostDefaultKey, open class olan önceki oran interface olarak değiştirildi. Bu sayede anahtarlar, tek sınıflı devralma ile kısıtlanmadan birden fazla arama mekanizması (ör. ViewTreeHostDefaultKey) uygulayabilir ve özel barındırma ortamlarının genişletilebilirliğini artırabilir. (I917a2)
  • HostDefaultProvider ve LocalHostDefaultProvider artık public olduğundan özel barındırma ortamları, platforma özgü yerel ayarlar için değerler tanımlayabilir. (I5bdbe)

Hata Düzeltmeleri

  • İki iş parçacığında aynı anda iki snapshotFlow çalıştırıldığında kilitlenme olasılığı ortadan kaldırıldı. (Ib4339)
  • Bağlantı tablosunda, araçların hiyerarşideki composable'ları atlamasına ve alt kompozisyonları yanlış şekilde bağlamasına neden olabilen bir sorun düzeltildi (I7178e).

Harici Katkı (External Contribution)

  • produceState bloğundaki değeri değiştirmek için tekli operatör kullanılırken Lint'in yanlış pozitif sonuç vermesi sorunu düzeltildi (I1c7c9).

Sürüm 1.11.0-alpha04

28 Ocak 2026

androidx.compose.runtime:runtime-*:1.11.0-alpha04 iptal edilir. 1.11.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri.

  • Kompozisyon hiyerarşinizi izlemek, yeniden oluşturmadan kaynaklanan değişiklikleri belirlemek ve hatırlanan değerleri depolamak için Compose Runtime tarafından kullanılan dahili veri yapısı olan SlotTable öğesini yeniden yazdık. Bu yeniden yazma işlemi, yeniden oluşturma performansını iyileştirmeye odaklanır ve bunu öncelikle aralık arabelleğinden SlotTable önemli ölçüde daha az bellek kopyalama işlemi kullanarak yapar. Öğelerin uzun listesini yeniden sıralama gibi kompozisyon hiyerarşinizde yapılan belirli değişiklikler, eski SlotTable'ya kıyasla iki kat daha hızlı yeniden oluşturulabilir. Diğer işlemlerin çoğu, yeni SlotTable uygulamasıyla% 10 daha hızlı yeniden oluşturulur. Çalışma zamanı tarafından kullanılan SlotTable uygulaması, tüm Composable yöntemlerini etkiler ve yeniden derleme gerektirmez. Yeni SlotTable kullanmak, bağımlılıklar da dahil olmak üzere uygulama genelinde bir değişikliktir.
  • Bu SlotTable uygulama şu anda varsayılan olarak devre dışıdır ve ComposeRuntimeFlags.isLinkBufferComposerEnabled, true olarak ayarlanarak etkinleştirilebilir.
  • Küçültme etkinleştirilmiş yayın derlemelerinde, bu değerin çalışma zamanıyla birlikte sağlanan varsayılan proguard-rules.pro dosyasında false olduğu varsayılır. Üretimde yeni SlotTable özelliğini etkinleştirmek için bu varsayımın uygulamanın proguard-rules.pro dosyasında true olarak değiştirilmesi gerekir. Daha fazla bilgi için ComposeRuntimeFlags.isLinkBufferComposerEnabled adresindeki dokümanları inceleyin. (Ib741d, b/268366116)

Yeni Özellikler

  • compositionLocalWithHostDefaultOf eklendi.Bu özellik, varsayılan değerleri için barındırma ortamına geri dönen CompositionLocals tanımlanmasına olanak tanır (ör. Android View etiketleri). (I15b81)

Hata Düzeltmeleri

  • Gerekli uygulama bildirimleri gönderilene kadar Snapshot.sendApplyNotifications aramalarının geri dönmemesi sağlandı. (I95f20, b/418800424)
  • Kaynak bilgileri çalışma zamanında mevcut olmadığında kaynak bilgisi yığın izlerinin grup anahtarlarına düşürülmesini önleyin. (If3712)
  • ComposeToolingFlags ile tanışın. Bu işaretler kalıcı olacak şekilde tasarlanmıştır (ComposeRuntimeFlags işaretlerinin aksine) ve performans üzerinde önemli etkisi olan araç özellikleri için kullanılır. (I87863)

Harici Katkı (External Contribution)

  • Yeni deneysel RecomposerInfo#errorState API'si (I0decc)
  • FunctionKeyMeta açıklamasının AnnotationRetention değerini "BINARY" (İKİLİ) olarak değiştirin (I53495)

Sürüm 1.11.0-alpha03

14 Ocak 2026

androidx.compose.runtime:runtime-*:1.11.0-alpha03 iptal edilir. 1.11.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • SnapshotFlowManager sınıfı kullanıma sunuldu ve snapshotFlow öğesine isteğe bağlı bir SnapshotFlowManager parametresi eklendi. Böylece kullanıcılar, kaydedilen anlık görüntü uygulama gözlemcilerinin sayısını optimize edebilecek. (I6289b, b/446746211)

Hata Düzeltmeleri

  • Taşınabilir içerik ekleme için izleme notu eklendi (Ibf176)

Sürüm 1.11.0-alpha02

17 Aralık 2025

androidx.compose.runtime:runtime-*:1.11.0-alpha02 iptal edilir. 1.11.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

Harici Katkı (External Contribution)

  • Hata düzeltildi: Canlı Düzenleme'de hatadan kurtarılamama sorunu. (Ieb34f)

Sürüm 1.11.0-alpha01

3 Aralık 2025

androidx.compose.runtime:runtime-*:1.11.0-alpha01 iptal edilir. 1.11.0-alpha01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • RetainedValuesStore.getExitedValueOrDefault, consumeExitedValueOrDefault olarak yeniden adlandırıldıc7a0929
  • Deneysel eşzamanlı yeniden oluşturma API'si kaldırıldı.(c8af15d)

Sürüm 1.10

Sürüm 1.10.6

25 Mart 2026

androidx.compose.runtime:runtime-*:1.10.6 iptal edilir. 1.10.6 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Duraklatılabilir bileşimde "Kökten yeniden kullanım devre dışı bırakılamıyor" kilitlenmesini düzeltin (I474b5, b/488433633)
  • Duraklatılabilir kompozisyonda "Apply is called on deactivated node" (Uygulama devre dışı bırakılmış düğümde çağrılıyor) kilitlenmesini düzeltme (I880c0, b/484300733)

Sürüm 1.10.5

11 Mart 2026

androidx.compose.runtime:runtime-*:1.10.5 iptal edilir. 1.10.5 sürümü bu commit'leri içerir.

Sürüm 1.10.4

25 Şubat 2026

androidx.compose.runtime:runtime-*:1.10.4, 1.10.3 sürümünden beri herhangi bir değişiklik yapılmadan yayınlanmıştır. 1.10.4 sürümü bu commit'leri içerir.

Sürüm 1.10.3

11 Şubat 2026

androidx.compose.runtime:runtime-*:1.10.3 iptal edilir. 1.10.3 sürümü bu commit'leri içerir.

Sürüm 1.10.2

28 Ocak 2026

androidx.compose.runtime:runtime-*:1.10.2 iptal edilir. 1.10.2 sürümü bu commit'leri içerir.

Sürüm 1.10.1

14 Ocak 2026

androidx.compose.runtime:runtime-*:1.10.1 iptal edilir. 1.10.1 sürümü bu commit'leri içerir.

Sürüm 1.10.0

3 Aralık 2025

androidx.compose.runtime:runtime-*:1.10.0 iptal edilir. 1.10.0 sürümü bu commit'leri içerir.

Sürüm 1.10.0-rc01

19 Kasım 2025

androidx.compose.runtime:runtime-*:1.10.0-rc01 iptal edilir. 1.10.0-rc01 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • SnapshotStateObserver içinde türetilmiş durumlar kaydedilirken yeniden girişli değişikliğe karşı koruma (I7b862, b/435655844, b/456249373, b/402535073)
  • [Lint] Algılayıcının bileşik atama konusunda düzgün şekilde uyarı vermesini sağlamak için küçük bir hata düzeltildi. (I08319, b/456775556)

Sürüm 1.10.0-beta02

5 Kasım 2025

androidx.compose.runtime:runtime-*:1.10.0-beta02 iptal edilir. 1.10.0-beta02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • RetainedValuesStore kurulumunu ve yönetimini kolaylaştırmak için API ile uyumlu olmayan çeşitli değişiklikler yaptık. retain ve RetainedEffect ile ilgili mevcut çağrılar etkilenmez ancak özel RetainedValuesStore'ların bu sürümle uyumlu olması için taşınması gerekir. (If3c2f, b/451921682, b/450539803)

  • RetainedValuesStore artık saklamayı başlatmak/durdurmak için düşük düzeyli API'leri kullanıma sunmuyor. Saklama durumu artık içeriği otomatik olarak takip ediyor. LocalRetainedValuesStoreProvider artık RetainedValuesStore yükleme seçeneği sunuyor. LocalRetainedValuesStore doğrudan sağlanmamalıdır. Bu değişiklikler hakkında daha fazla bilgi için güncellenen dokümanlara ve örneklere göz atın.

  • RetainedValuesStoreProvider, RetainedValuesStoreRegistry olarak yeniden adlandırıldı. Bu sınıf artık yalnızca kompozisyondaki RetainedValuesStore'leri yüklemek ve yönetmek için API'ler sunuyor.

  • ControlledRetainedValuesStore, ManagedRetainedValuesStore ile değiştirildi.

  • RetainedValuesStore artık bir arayüz.

Daha önce, özel bir RetainedValuesStore yükleme işlemi aşağıdaki gibi görünüyordu:

  val retainedValuesStore = retainControlledRetainedValuesStore()
  if (active) {
      CompositionLocalProvider(LocalRetainedValuesStore provides retainedValuesStore) {
          content()
      }

      val composer = currentComposer
      DisposableEffect(retainedValuesStore) {
          val cancellationHandle =
              if (retainedValuesStore.retainExitedValuesRequestsFromSelf > 0) {
                  composer.scheduleFrameEndCallback {
                      retainedValuesStore.stopRetainingExitedValues()
                  }
              } else {
                  null
              }

          onDispose {
              cancellationHandle?.cancel()
              retainedValuesStore.startRetainingExitedValues()
          }
      }
  }

Bu API değişiklikleriyle birlikte, bu yükleme artık şu kodla ifade edilebilir:

  val retainedValuesStore = retainManagedRetainedValuesStore()
  if (active) {
      LocalRetainedValuesStoreProvider(retainedValuesStore) {
          content()
      }
  }

Hata Düzeltmeleri

  • Taşınabilir içeriği yuva tablosundan taşımadan önce kapsamın geçersiz kılınmalarını aktarır (I9d123, b/451651649).

Sürüm 1.10.0-beta01

22 Ekim 2025

androidx.compose.runtime:runtime-*:1.10.0-beta01 iptal edilir. 1.10.0-beta01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • RetainedValuesStore.getExitedValueOrDefault, RetainedValuesStore.getExitedValueOrElse olarak yeniden adlandırıldı (If9653, b/452340613)
  • isKeepingExitedValues, isRetainingExitedValues olarak yeniden adlandırıldı (I660bf, b/437095756)
  • RetainScope, RetainedValuesStore olarak yeniden adlandırıldı. RetainScopeHolder, RetainedValuesStoreRegistry olarak yeniden adlandırıldı. RetainScopeHolder.RetainScopeProvider, RetainedValuesStoreRegistry.ProvideChildRetainedValuesStore olarak yeniden adlandırıldı. (Idf23a, b/437095756)

Hata Düzeltmeleri

  • İlk kullanıma kadar SaveableStateRegistry içinde SavedState'nın başlatılması geciktirilir. (Ic0a93)

Sürüm 1.10.0-alpha05

8 Ekim 2025

androidx.compose.runtime:runtime-*:1.10.0-alpha05 iptal edilir. 1.10.0-alpha05 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Yayın modunda DiagnosticComposeException için yığın izlemeyi (stack trace) doldurun. (Ib76cb)
  • Anlık görüntü durumunda, bir tür için birleştirme politikası kullanıldığında önceki değerin yanlış hesaplanmasına ve önceki değer yerine durumun gelecekteki değerinin döndürülmesine neden olabilen bir sorun düzeltildi. Bu durum, ikiden fazla değiştirilebilir anlık görüntü beklemedeyse ve uygulanan değerlerden en az birinde birleştirme politikası varsa ortaya çıkar. (I527b5, b/442791065)

Sürüm 1.10.0-alpha04

24 Eylül 2025

androidx.compose.runtime:runtime-*:1.10.0-alpha04 iptal edilir. 1.10.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri

  • RetainScopes koleksiyonunu yönetmek için RetainScopeHolder API'si eklendi. Bu, farklı elde tutma sürelerine sahip birçok alt öğeden oluşan kapsayıcılar ve gezinme ana makineleri için elde tutma özelliğini uygulamak amacıyla kullanılabilir. (I10e0f)
  • Daraltılan paneller gibi kaybolan içerikler için otomatik olarak yönetilen RetainScopes oluşturmak üzere kullanılabilecek RetainedContentHost ve retainControlledRetainScope API'leri eklendi (If81f6).
  • Updater#set, sağlanan değeri çok fazla kez kutuladığından satır içi aşırı yüklemesi kullanımdan kaldırıldı. Updater#init işlevine, yakalama lambdası gerektirmeyen bir parametre alan aşırı yükleme eklendi. (Id679e)
  • yerine saklama yaşam döngüsünü takip eden, DisposableEffect'ya benzer bir yan etki API'si olan RetainedEffect'yı kullanıma sunar. Bu API, RetainObserver'yı uygulamayan veya uygulayamayan başka bir nesnenin tutulmasıyla ilişkili efektler için kullanılmak üzere tasarlanmıştır. (I1c61f, b/177562901)
  • RetainObserver.onRetained ile ilgili dokümanlar düzeltildi ve RememberObserver.onAbandoned'yi yansıtan RetainObserver.onUnused eklendi (Ia6fc5).

Hata Düzeltmeleri

  • Bir işlevdeki (ör. composable çağrısı) ilk gruptan sonra ve onForgotten'ı yanlış sırada gönderebilecek, kaldırılabilen bir gruptan (ör. if ifadesi) önce hatırlatıcı gönderme sorunu düzeltildi. (I453f6, b/346821372)
  • LaunchedEffect başlatılırken coroutine bağlamı geçişinden kaçınılır. (I8d2c3b)

Sürüm 1.10.0-alpha03

10 Eylül 2025

androidx.compose.runtime:runtime-*:1.10.0-alpha03 iptal edilir. 1.10.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Küçültülmüş uygulamalarda çalışan, grup anahtarı tabanlı Compose yığın izlemelerini kullanıma sunar. Bu izlemeler için proguard eşlemesi, Kotlin 2.3.0'dan itibaren Compose derleyici Gradle eklentisi tarafından oluşturulur. Bu yığın izleri varsayılan olarak devre dışıdır. Bunları etkinleştirmek için ComposeStackTraceMode.GroupKeys simgesini kullanın. (Ifbcb5)
  • Araçlar için IdentifiableRecomposeScope arayüzünü ekleyin (Idd5e0, b/434194620)
  • CompositionLocalContext içeren kompozisyonlarda gereksiz geçersiz kılmaların oluşması önlendi (I3fa21, b/412750209)

Hata Düzeltmeleri

  • Tutulacak anahtarların da tutulduğu, dokümanlarda ve araçlarda netleştirildi. Bellek sızıntısına neden olacak şekilde saklanacak anahtarları iletmeyin. (Ib553b, b/177562901)
  • Bekleyen bildirimlerin durumu, ana iş parçacığı bir duraklatılabilir kompozisyonu resume() bir sonraki kare için yeniden oluşturmaya çalıştığında karıştırılabiliyordu. Bu sorun düzeltildi. (Ie5f17, b/442649894)
  • Bestede yakalanan istisnaları günlüğe kaydetme. (I47d78, b/432799675, b/436878515, b/359623674, b/400436355)

Sürüm 1.10.0-alpha02

27 Ağustos 2025

androidx.compose.runtime:runtime-*:1.10.0-alpha02 iptal edilir. 1.10.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Kaynak sızdırabilecekleri için retain API'siyle kullanılmaması gereken türleri açıklama eklemek için kullanılabilecek @DoNotRetain eklendi. (Ie5435)
  • Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir. (Idb6b5)

Hata Düzeltmeleri

  • İçerik, bir kompozisyonun kök düğümünü değiştirdiğinde, Applier'a yönelik işlemleri doğru şekilde hesaplamak için taşınabilir içerik düzeltildi. Taşınabilir içerikteki değişiklikler hesaplanırken up() çağrısı bekletilebilir ve uygulayıcıya gönderilmeyebilir. Bu durum, uygulayıcı durumunun sonraki kullanımlar için yanlış konumlandırılmasına neden olur. (I7c583), (I47b70)
  • Kullanılması amaçlanmadığı için CheckResult işaretini kullanımdan kaldırılmış olarak işaretler. (I32934)

Sürüm 1.10.0-alpha01

13 Ağustos 2025

androidx.compose.runtime:runtime-*:1.10.0-alpha01 iptal edilir. 1.10.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Retain API'yi kullanıma sunar. rememberSaveable gibi, retain, kompozisyon hiyerarşisinden ayrılan hatırlanan değerleri kalıcı hale getirebilir ve kaydedebilir. Saklanan değerler serileştirilmez, kaydedilen değerlerden daha kısa ömürlüdür ve androidx ViewModel'ya benzer şekilde davranır. Daha fazla ayrıntı için belgelere bakın. (Ia3105, b/177562901)
  • Recomposer, mevcut kareyi oluşturmayı tamamladığında geri çağırma işlemi yapan bir awaitOrScheduleNextCompositionEnd() API'si eklendi. Recomposer şu anda bir çerçeve oluşturmuyorsa bu API, bir sonraki çerçevenin oluşturulması tamamlanana kadar askıya alınır ve oluşturulacak yeni bir çerçeve planlar. (Ib873c)
  • Birimsiz döndüren bir kompozisyon yerel sağlayıcı API'si ekleyin (I22521, b/271871288)
  • İçerik ilk oluşturulurken ek yükü önlemek için taşınabilir içeriğin kullanımının izlenmesine olanak tanıyan bir özellik bayrağı (isMovableContentUsageTrackingEnabled) eklendi. Bu özellik bayrakları şu anda varsayılan olarak devre dışıdır. (Ia713d)

Hata Düzeltmeleri

  • Alt kompozisyonlar arasında taşınan hareketli içeriklerdeki kilitlenme sorunu düzeltildi. (I3fa1e, b/436858107)
  • Birden fazla iç içe yerleştirilmiş alt kompozisyonun içinde bulunulduğunda composable yığın izleme (stack trace) bir bölümünün eksik olmasına neden olan hata düzeltildi. (I98c6f)
  • Varsayılan minSdk'nın API 21'den API 23'e taşınması (Ibdfca, b/380448311, b/435705964, b/435705223)
  • Durdurulabilir bir kompozisyonun iç durumu birden fazla iş parçacığından güncellenirken oluşan yarış durumu düzeltildi. (I03895)
  • İlk kompozisyondan önce çağrılacak şekilde kompozisyon kaydı gözlemcisini günceller. (I4adca, b/430600932)
  • AutoboxingStateValuePropertyDetector uygulamasının hem K1 hem de K2 ile uyumlu olması için küçük bir hata düzeltildi. (Ie81c1)

Harici Katkı (External Contribution)

  • runtime-rxjava2 yapısını çok platformlu hale getirin ve JVM'yi desteklenen hedef olarak ekleyin. (I5409e)
  • runtime-rxjava3 yapısını çok platformlu hale getirin ve JVM'yi desteklenen hedef olarak ekleyin. (I97e84)

Sürüm 1.9

Sürüm 1.9.5

19 Kasım 2025

androidx.compose.runtime:runtime-*:1.9.5 iptal edilir. 1.9.5 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Taşınabilir içeriği yuva tablosundan taşımadan önce kapsamın geçersiz kılınmalarını aktarır (I9d123, b/451651649).

Sürüm 1.9.4

22 Ekim 2025

androidx.compose.runtime:runtime-*:1.9.4 iptal edilir. 1.9.4 sürümü bu commit'leri içerir.

Sürüm 1.9.3

8 Ekim 2025

androidx.compose.runtime:runtime-*:1.9.3 iptal edilir. 1.9.3 sürümü bu commit'leri içerir.

Sürüm 1.9.2

24 Eylül 2025

androidx.compose.runtime:runtime-*:1.9.2 iptal edilir. 1.9.2 sürümü bu commit'leri içerir.

Sürüm 1.9.1

10 Eylül 2025

androidx.compose.runtime:runtime-*:1.9.1 iptal edilir. 1.9.1 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Oluşturma sürecinde olan kompozisyonları yeniden oluşturmaktan kaçının. (Iacb01)
  • Yeniden oluşturma kapsamlarının iki kez duraklatılmasını önleme. (I060b2, b/431584881)

Sürüm 1.9.0

13 Ağustos 2025

androidx.compose.runtime:runtime-*:1.9.0 iptal edilir. 1.9.0 sürümü bu commit'leri içerir.

1.8.0 sürümünden beri yapılan önemli değişiklikler

  • Compose ile birlikte gelen hata analizi kontrolleri artık minimum 8.8.2 AGP sürümü gerektiriyor. AGP'yi yükseltemiyorsanız gradle.properties dosyanızda android.experimental.lint.version=8.8.2 (veya daha yeni bir sürüm) kullanarak Lint'i tek başına yükseltebilirsiniz. IDE'de Compose lint kontrollerini çalıştırmak için Android Studio Ladybug veya daha yeni bir sürüm gerekir.
  • Yeni bir çalışma zamanı ek açıklaması kitaplığı oluşturuldu. Bu kitaplık, Compose çalışma zamanına bağımlı olmayan ek açıklama tanımlarını içerdiğinden Compose dışı modüllerden kullanılabilir.
    • @Stable, @Immutable ve @StableMarker, Compose olmayan modüllere açıklama eklenmesine olanak tanımak için çalışma zamanı açıklamasına taşındı
    • @FrequentlyChangingValue ve @RememberInComposition, çalışma zamanı ek açıklamasına eklendi. @FrequentlyChangingValue, sık sık yeniden oluşturmaya neden olabilecek bildirimleri, @RememberInComposition ise birleştirmede hatırlanması gereken bildirimleri işaretler. İlgili lint kontrolleri, yanlış kullanım konusunda uyarı verir.
  • androidx.compose.runtime:runtime artık ek platformları destekleyecek. Masaüstü, iOS ve yerel hedeklere yönelik destek, JetBrains'in Compose Multiplatform projesinden alınarak Google Maven üzerinden yayınlanacak. Diğer Compose yapıları etkilenmez.

Sürüm 1.9.0-rc01

30 Temmuz 2025

androidx.compose.runtime:runtime-*:1.9.0-rc01 iptal edilir. 1.9.0-rc01 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Bileşim kaydı gözlemcisini, ilk bileşimden önce çağrılacak şekilde günceller. (I4adca, b/430600932)

Sürüm 1.9.0-beta03

16 Temmuz 2025

androidx.compose.runtime:runtime-*:1.9.0-beta03 iptal edilir. 1.9.0-beta03 sürümü bu commit'leri içerir.

Sürüm 1.9.0-beta02

2 Temmuz 2025

androidx.compose.runtime:runtime-*:1.9.0-beta02 iptal edilir. 1.9.0-beta02 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Yuva tablosundaki değerlerin kompozisyonlar arasındaki referans ömrü kısaltıldı. Bir yuva tablosundaki referansın gerekenden bir kare daha uzun sürdüğü durumlar olabilir. (I49e74, b/418516940)
  • Anında yeniden yükleme yöntemleri için Kotlin ad değişikliğini kaldırın. (Ic56a3, b/426871325)

Sürüm 1.9.0-beta01

18 Haziran 2025

androidx.compose.runtime:runtime-*:1.9.0-beta01 iptal edilir. 1.9.0-beta01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Compose derleyicisi tarafından eklenen kaynak bilgilerini ayrıştırmak için bir araç API'si eklendi. (Iceaf9, b/408492167)
  • SnapshotStateSet artık Android'de Parcelable'yi uyguluyor. Bu nedenle, rememberSaveable { ... }'nin bir parçası olarak kullanılması destekleniyor. (I755dd, b/378623803)
  • SnapshotStateList artık Android'de Parcelable'yi uyguluyor. Bu nedenle, rememberSaveable { ... }'nin bir parçası olarak kullanılması destekleniyor. (Id18be, b/378623803)
  • movableContentOf() artık @RememberInComposition ek açıklamasıyla işaretleniyor. Bu sayede lint, yanlış kullanımları (I2738d) yakalayabiliyor.
  • Yeniden oluşturma nedenlerinin daha kapsamlı bir şekilde gözlemlenmesine olanak tanımak için deneysel kompozisyon gözlemcileri API'si güncellendi (I32b6a).
  • Bu özelliğin gelecekteki gelişimini hesaba katmak için setDiagnosticStackTraceEnabled değerini deneysel olarak değiştirin. (I11db3)
  • currentCompositeKeyHash artık kullanımdan kaldırıldı. Bunun yerine currentCompositeKeyHashCode politikasını kullanın. Yeni API, aynı karmayı daha fazla bit ile kodlar. Bu da, kompozisyon hiyerarşisinde rastgele ve alakasız iki grubun aynı karma anahtarına sahip olma olasılığını katlanarak azaltır. (I4cb6a, b/177562901)
  • Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir (Idb6b5)
  • @Stable, @Immutable ve @StableMarker, çalışma zamanı ek açıklamasına (uyumlu bir şekilde) taşındı. Artık Compose'a bağlı olmayan kitaplıklardaki bu ek açıklamaları kullanmak istiyorsanız çalışma zamanı ek açıklamalarını kullanabilirsiniz. (I23a16)
  • rememberSaveable aşırı yüklemesi, KSerializer kabul eden rememberSerializable olarak yeniden adlandırıldı. Bu değişiklik, kotlinx.serialization ile kullanım amacını netleştirir. Genel kotlinx.Serializable sınıflarının doğrudan rememberSaveable içinde desteklenmesi için reified türünde bir parametre gerekir. Bu da tüm çağrı sitelerinin derleme sırasında somutlaştırılmış tür bilgileri sağlamasını gerektirerek kaynak uyumluluğunu bozar. (Idb875, I38627, b/376028110)

Hata Düzeltmeleri

  • Durdurulabilir içeriklerle oluşturulan ve iptal edilen kompozisyonlar kaldırılmalıdır. Bu durum artık beste tarafından kontrol ediliyor ve yeniden kullanılması durumunda hata veriliyor. (I2daa5, b/406792785)
  • Durdurulabilir birleştirme, artık durdurulabilir birleştirme kaldırıldığında gözlemcilere hatırlatma için sahte bir onForgotten göndermeyecek şekilde düzeltildi. Durdurulabilir bir kompozisyonda RememberObservers yalnızca onAbandoned gönderilmelidir. (I26f54)
  • Taşınabilir içerik işleme sürecinin son aşamalarında gelen geçersiz kılmaların besteciye eklendiği ancak içerik taşındığında bu geçersiz kılmaların güncellenmediği ve içeriğin yanlış yerde yeniden oluşturulmasına neden olduğu taşınabilir içerik sorunu düzeltildi. (Icd2fa, b/409439507)
  • Taşınabilir içerik oluşturulduktan sonra ancak taşınmadan önce geçersiz hale geldiğinde yaşanan sorun düzeltildi. (I99eac, b/229001114)
  • previous() çağrıldıktan sonra SnapshotStateList tarafından üretilen bir liste yineleyicisinin remove() çağrılması, listeden yanlış öğenin kaldırılmasına neden olabiliyor ve aynı çağrı dizisi için ArrayList işlevinin yaptığıyla eşleşmiyordu. (I05ab7, b/417493222)
  • onForgotton gönderimiyle ilgili bir sıralama sorunu düzeltildi. Bu sorun, örneğin tek kullanımlık efektlerin onDispose işleminin yanlış sırada yürütülmesine neden olabiliyordu. (Ic1c91, b/417450712)
  • Duraklatılabilir kompozisyonda durum işleme özelliğinin yeniden kullanılmasını sağlayan düzeltme (Ife96e, b/404058957)
  • Bir beste duraklatılıp yeniden başlatıldığında yeniden kullanma durumu düzeltildi. Beste duraklatılmışken okuduğu bazı durumlar değiştiğinden daha önce duraklatılmış bazı durumların yeniden oluşturulması gerekiyordu. (I441d1, b/416209738)
  • b/404058957 numaralı sorun için duraklatılabilir beste hatırlatma gönderme düzeltmesi tamamlandı. Önceki düzeltme tamamlanmamıştı. (I1afd4, b/404058957)
  • OffsetApplier artık duraklatılabilir kompozisyonla kullanıma sunulan apply() öğesini doğru şekilde geçersiz kılıyor. Bu özelliğin olmaması, duraklatılabilir bileşimde sanal düğümler güncellenirken istisna oluşmasına neden olabilir. (Idbf31, b/409291131)
  • Bir çerçeve gönderilirken FrameClock.withFrameNanos'ya yapılan askıya alınmış bir arama iptal edildiğinde Molecule kullanıcılarını etkileyebilecek kilitlenme sorunu düzeltildi. (I89cab, b/407027032)
  • Yeniden Oluşturucu, taşınabilir içeriklerle boşta kalabiliyor (Ie5416, b/409267170)
  • onReuse ve onDeactivate öğelerinin, duraklatılabilir beste sırasında tersine dönebilmesi sorunu düzeltildi. Artık onDeactivate/onReuse sırasıyla gerçekleşmeleri garanti edilmektedir. (I996e4, b/404058957)
  • Pausable composition'da remember gözlemcilerinin gönderilmesini düzeltin. Böylece, aynı uygulama içinde hatırlanan/unutulan öğeler gönderilmez (I570b2, b/404645679, b/407931790).
  • Çok platformlu Oluşturma'da LifecycleRegistry kontrollerini devre dışı bırakmak ve iş parçacığı sorunlarını düzeltmek için güvenli olmayan moda MainThread geçildi. Ayrıntılar için CMP-8227'ye bakın. (Icee87)

Harici Katkı (External Contribution)

  • Molecule kullanıcılarını etkileyen ve RecompositionMode.Immediate kullanımının yeniden oluşturmaların kaçırılmasına neden olabildiği hata düzeltildi. (I9f3a9, b/419527812)
  • PausableComposition durumunun kontrol edilmesine olanak tanıyan PausableComposition isApplied ve isCancelled alıcıları kullanıma sunuldu. (I994aa)
  • AnnotationTarget.FUNCTION, FunctionKeyMeta ek açıklamasına eklendi. (I08021)

Sürüm 1.9.0-alpha04

4 Haziran 2025

androidx.compose.runtime:runtime-*:1.9.0-alpha04 iptal edilir. 1.9.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri

  • SnapshotStateSet artık Android'de Parcelable'ı uyguluyor. Bu nedenle, rememberSaveable { ... }'nin bir parçası olarak kullanılması destekleniyor. (I755dd, b/378623803)
  • SnapshotStateList artık Android'de Parcelable'ı uyguluyor. Bu nedenle, rememberSaveable { ... }'nin bir parçası olarak kullanılması destekleniyor. (Id18be, b/378623803)
  • movableContentOf() artık @RememberInComposition ek açıklamasıyla işaretleniyor. Bu sayede lint, yanlış kullanımları (I2738d) yakalayabiliyor.
  • Yeniden oluşturma nedenlerinin daha kapsamlı bir şekilde gözlemlenmesine olanak tanımak için deneysel kompozisyon gözlemcileri API'si güncellendi (I32b6a).

Hata Düzeltmeleri

  • onForgotton gönderimiyle ilgili bir sıralama sorunu düzeltildi. Bu sorun, örneğin tek kullanımlık efektlerin onDispose işleminin yanlış sırada yürütülmesine neden olabiliyordu. (Ic1c91, b/417450712)
  • Duraklatılabilir kompozisyonda durum işleme özelliğinin yeniden kullanılmasını sağlayan düzeltme (Ife96e, b/404058957)
  • Değişebilir koleksiyon algılamanın hem K1 hem de K2 ile uyumlu olması için küçük bir hata düzeltildi (Ie4878).
  • K1 ve K2'de (I9900d) geçersiz kılınan özellik erişimcilerinde ek açıklama aramasının uyumlu olması için küçük bir hata düzeltildi.

Harici Katkı (External Contribution)

  • Molecule kullanıcılarını etkileyen ve RecompositionMode.Immediate kullanımının yeniden oluşturmaların kaçırılmasına neden olabildiği hata düzeltildi. (I9f3a9, b/419527812)
  • PausableComposition durumunun kontrol edilmesine olanak tanıyan PausableComposition isApplied ve isCancelled alıcıları kullanıma sunuldu. (I994aa)

Sürüm 1.9.0-alpha03

20 Mayıs 2025

androidx.compose.runtime:runtime-*:1.9.0-alpha03 iptal edilir. 1.9.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Bu özelliğin gelecekteki gelişimini hesaba katmak için setDiagnosticStackTraceEnabled değerini deneysel olarak değiştirin. (I11db3)

Hata Düzeltmeleri

  • Bir beste duraklatılıp yeniden başlatıldığında yeniden kullanma durumu düzeltildi. Beste duraklatılmışken okuduğu bazı durumlar değiştiğinden daha önce duraklatılmış bazı durumların yeniden oluşturulması gerekiyordu. (I441d1, b/416209738)
  • b/404058957 numaralı sorunun önceki düzeltmesi eksik olduğundan, hatırlatma gönderme düzeltmesi için duraklatılabilir beste tamamlandı. (I1afd4, b/404058957)
  • SaveableStateHolder.SaveableStateProvider artık kompozisyon aracılığıyla içeriğine LocalSavedStateRegistryOwner sağlıyor. (Ia2761, b/413108878)
  • androidx.compose.runtime.saveable artık androidx.lifecycle.runtime.compose SDK'sına bağlıdır. (I53228, b/413108878)

Sürüm 1.9.0-alpha02

7 Mayıs 2025

androidx.compose.runtime:runtime-*:1.9.0-alpha02 iptal edilir. 1.9.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Özel "anahtar" ile rememberSaveable desteği sonlandırıldı. Konumsal kapsamı atlayarak durum hatalarına ve tutarsız davranışlara (ör. istenmeden durum paylaşımı veya kaybı, iç içe yerleştirilmiş LazyLayouts'daki sorunlar) yol açar. Tutarlı ve yerel olarak kapsamlı durum için lütfen "key" parametresini kaldırın. Daha fazla bilgi için tam commit mesajına bakın. (I5e6ff, b/357685851)

Hata Düzeltmeleri

  • OffsetApplier artık duraklatılabilir kompozisyonla kullanıma sunulan apply() öğesini doğru şekilde geçersiz kılıyor. Bu özelliğin olmaması, duraklatılabilir oluşturmanın sanal düğümleri güncellerken hata vermesine neden olabilir. (Idbf31, b/409291131)
  • Bir çerçeve gönderilirken FrameClock.withFrameNanos'ya yapılan askıya alınmış bir arama iptal edildiğinde Molecule kullanıcılarını etkileyebilecek kilitlenme sorunu düzeltildi. (I89cab, b/407027032)
  • Yeniden oluşturucu, taşınabilir içerik durumu hala silinmeyi beklerken boşta kalabilir. Bu durum normalde oluşmaz. Çünkü taşınabilir içerik durumu, Recomposer'ın ana döngüsünde atılır. Ancak bu durum, resume() sırasında taşınabilir içerik atıldığında duraklatılabilir kompozisyonda ortaya çıkabilir(Ie5416, b/409267170).
  • onReuse ve onDeactivate öğelerinin, duraklatılabilir beste sırasında tersine dönebilmesi sorunu düzeltildi. Artık onDeactivate/onReuse sırasıyla gerçekleşmeleri garanti edilir. (I996e4, b/404058957)

Sürüm 1.9.0-alpha01

23 Nisan 2025

androidx.compose.runtime:runtime-*:1.9.0-alpha01 iptal edilir. 1.9.0-alpha01 sürümü bu commit'leri içerir.

Davranış Değişiklikleri

  • Compose ile birlikte gelen hata analizi kontrolleri artık minimum 8.8.2 AGP sürümü gerektiriyor. AGP'yi yükseltemiyorsanız bunun yerine gradle.properties dosyanızda android.experimental.lint.version=8.8.2 (veya daha yeni bir sürüm) kullanarak Lint'i tek başına yükseltebilirsiniz. IDE'de Compose lint kontrollerini çalıştırmak için Android Studio Ladybug veya daha yeni bir sürüm gerekir.

API Değişiklikleri

  • currentCompositeKeyHash artık kullanımdan kaldırıldı. Bunun yerine currentCompositeKeyHashCode politikasını kullanın. Yeni API, aynı karmayı daha fazla bit ile kodlar. Bu da, kompozisyon hiyerarşisinde rastgele ve alakasız iki grubun aynı karma anahtarına sahip olma olasılığını katlanarak azaltır. (I4cb6a, b/177562901)
  • Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir (Idb6b5)
  • @Stable, @Immutable ve @StableMarker, çalışma zamanı ek açıklamasına (uyumlu bir şekilde) taşındı. Artık Compose'a bağlı olmayan kitaplıklardaki bu ek açıklamaları kullanmak istiyorsanız çalışma zamanı ek açıklamalarını kullanabilirsiniz. (I23a16)
  • onCreating ve onDisposing, kullanımdan kaldırılıp onPreCreate ve onPreDispose olarak yeniden adlandırıldığından kaldırıldı. Bu değişiklik, yeniden adlandırma işlemini tamamlar. (I97461)
  • Birleştirme içindeki bir birleştirme düğümü konumuna göre birleştirme yığını izlemesi eklemeye olanak tanıyan bir birleştirme yereli kullanıma sunulur. (Ie0bda, b/354163858)
  • Kompozisyonda depolanan kaynak bilgilerine göre teşhis amaçlı Compose yığın izlemeleri sunun. (I3db9f, b/354163858)
  • Davranışı daha net bir şekilde açıklayan runWithMeasurementDisabled lehine runWithTimingDisabled desteği sonlandırıldı. Tüm metrikler duraklatıldı. Ayrıca, runWithMeasurementDisabled işlevi satır içi olduğundan erişimi açmak için yeniden tanımlamak mümkün olmadığından MicrobenchmarkScope üst sınıfını kullanıma sunun. (I9e23b, b/389149423, b/149979716)
  • @FrequentlyChangingValue eklenir: İşlevlerin ve özellik alıcılarının, sık sık yeniden oluşturmaya neden olabileceğinden kompozisyon içinde doğrudan çağrılmaması gerektiğini belirtmek için işaretlenebileceği bir ek açıklama. Örneğin, kaydırma konumu değerlerini ve animasyon değerlerini işaretlemek için. Uyarılar, ilgili lint kontrolü tarafından sağlanır. (I83630, b/234042500)
  • @RememberInComposition ekler: Oluşturucuları, işlevleri ve özellik alıcılarını işaretleyebilen bir açıklama. Bu açıklama, bunların hatırlanmadan kompozisyon içinde doğrudan çağrılmaması gerektiğini belirtir. Hatalar, ilgili lint kontrolü tarafından oluşturulur. Bu ek açıklama, durum bilgisi olan / değiştirilebilir nesneler, kimliğinin kompozisyonlar arasında korunmasının önemli olduğu nesneler veya oluşturulması maliyetli olan ve kompozisyonlar arasında önbelleğe alınması gereken nesneleri döndüren bildirimleri işaretlemek için kullanılabilir. (Ie7db0)
  • KotlinX Serialization kullanarak tür güvenli durum kalıcılığı için KSerializer öğesini destekleyen yeni bir rememberSaveable aşırı yüklemesi eklendi. Mevcut Saver tabanlı API desteklenmeye devam edecektir. (Iea4ab, b/376028110)

Hata Düzeltmeleri

  • Pausable composition'da remember gözlemcilerinin gönderilmesini düzeltin. Böylece, aynı uygulama içinde hatırlanan/unutulan öğeler gönderilmez (I570b2, b/404645679, b/407931790).
  • API kurallarına uymak için Creating sınıfındaki SnapshotObserver yöntemlerinin adı onPreCreate olarak, onDisposing yöntemlerinin adı ise onPreDispose olarak değiştirildi. Önceki yöntemler kullanımdan kaldırıldı ve yeni yöntemler varsayılan olarak eski yöntemleri çağırıyor. Bu nedenle, yöntemler kaldırılana kadar bu arayüzün mevcut uygulamaları çalışmaya devam edecek. Bu yöntemler, bu CL'yi kısa süre içinde takip edecek bir CL ile 1.9.0 alfa sürümünde kaldırılacak. Bu özellikler, 1.8 kararlı sürümünden önce 1.8 beta sürümünden kaldırılacak. (I6d753)
  • Taşınabilir bir grubun ardından görünen, kısaltılmış bir grup yeniden oluşturulurken hatırlanan değerlerin yanlışlıkla unutulup yeniden hesaplanmasına neden olan sorun düzeltildi (I62cab, b/383769314).
  • LaunchedEffect ve rememberCoroutineScope'de yığın izlemeleri oluşturma desteği eklendi (I705c0, b/354163858).
  • Compose lint kontrolleri artık komut satırından minimum AGP sürümü 8.8.2'yi ve IDE desteği için en az Android Studio Ladybug'ı gerektiriyor. AGP'nin eski bir sürümünü kullanıyorsanız Lint sürümünü yükseltmek için gradle.properties dosyasında android.experimental.lint.version=8.8.2 değerini ayarlayabilirsiniz. Bu işlem AGP'yi etkilemez. (I6f2a8)

Harici Katkı (External Contribution)

  • AnnotationTarget.FUNCTION, FunctionKeyMeta ek açıklamasına eklendi. (I08021)

Sürüm 1.8

Sürüm 1.8.3

18 Haziran 2025

androidx.compose.runtime:runtime-*:1.8.3 iptal edilir. 1.8.3 sürümü bu commit'leri içerir.

Sürüm 1.8.2

20 Mayıs 2025

androidx.compose.runtime:runtime-*:1.8.2 iptal edilir. 1.8.2 sürümü bu commit'leri içerir.

Sürüm 1.8.1

7 Mayıs 2025

androidx.compose.runtime:runtime-*:1.8.1 iptal edilir. 1.8.1 sürümü bu commit'leri içerir.

Sürüm 1.8.0

23 Nisan 2025

androidx.compose.runtime:runtime-*:1.8.0 iptal edilir. 1.8.0 sürümü bu commit'leri içerir.

Sürüm 1.8.0-rc03

9 Nisan 2025

androidx.compose.runtime:runtime-*:1.8.0-rc03 iptal edilir. 1.8.0-rc03 sürümü bu commit'leri içerir.

Sürüm 1.8.0-rc02

26 Mart 2025

androidx.compose.runtime:runtime-*:1.8.0-rc02 iptal edilir. 1.8.0-rc02 sürümü bu commit'leri içerir.

Sürüm 1.8.0-rc01

12 Mart 2025

androidx.compose.runtime:runtime-*:1.8.0-rc01 iptal edilir. 1.8.0-rc01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • API kurallarına uymak için Creating sınıfındaki SnapshotObserver yöntemlerinin adı onPreCreate olarak, onDisposing yöntemlerinin adı ise onPreDispose olarak değiştirildi. Önceki yöntemler kullanımdan kaldırıldı ve yeni yöntemler varsayılan olarak eski yöntemleri çağırıyor. Bu nedenle, yöntemler kaldırılana kadar bu arayüzün mevcut uygulamaları çalışmaya devam edecek. Bu yöntemler, bu CL'yi kısa süre içinde takip edecek bir CL ile 1.9.0 alfa sürümünde kaldırılacak. Bu özellikler, 1.8 kararlı sürümünden önce 1.8 beta sürümünden kaldırılacak. (I6d753)

Sürüm 1.8.0-beta03

26 Şubat 2025

androidx.compose.runtime:runtime-*:1.8.0-beta03 iptal edilir. 1.8.0-beta03 sürümü bu commit'leri içerir.

Sürüm 1.8.0-beta02

12 Şubat 2025

androidx.compose.runtime:runtime-*:1.8.0-beta02 iptal edilir. 1.8.0-beta02 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Durdurulabilir bileşimde yakalanan istisnayı yeniden oluşturun .(384486d)

Sürüm 1.8.0-beta01

29 Ocak 2025

androidx.compose.runtime:runtime-*:1.8.0-beta01 iptal edilir. 1.8.0-beta01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Exception'dan türemeyen bir throwable'ın oluşturma sırasında oluşturulmasının "Pending composition has not been applied" (Bekleyen oluşturma uygulanmadı) hatasına yol açabileceği sorun düzeltildi. (I356be, b/382094412)

Sürüm 1.8.0-alpha08

15 Ocak 2025

androidx.compose.runtime:runtime-*:1.8.0-alpha08 iptal edilir. 1.8.0-alpha08 sürümü bu commit'leri içerir.

Sürüm 1.8.0-alpha07

11 Aralık 2024

androidx.compose.runtime:runtime-*:1.8.0-alpha07 iptal edilir. 1.8.0-alpha07 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Bir düğüm, kompozisyonları birbirine bağlamak için kullanılmadığında düzen inceleyicinin alt kompozisyonları üst kompozisyonla ilişkilendirmesine yardımcı olan bir araç API'si eklendi. (I4ce3d)
  • SnapshotId için aritmetik ve özel sabitleri herkese açık yerine dahili hale getirdik. Gerekirse SnasphotId üzerinde aritmetik işlemler yapılabilir. Bunun için sırasıyla toInt() veya toLong() kullanılarak Int ya da Long'ye dönüştürülmelidir. (Ic3a57)

Harici Katkı (External Contribution)

  • Depolamayı movableContentOf parametreleri için optimize edin. (ed87177)

Sürüm 1.8.0-alpha06

13 Kasım 2024

androidx.compose.runtime:runtime-*:1.8.0-alpha06 iptal edilir. 1.8.0-alpha06 sürümü bu commit'leri içerir.

API Değişiklikleri

  • PausableComposition API'sinde yapılan değişiklikler. Bu değişiklikler, 1.8.0-alpha'nın önceki sürümlerine (1.8.0-alpha02'den itibaren) göre uyumluluğu bozmaktadır. Ancak bunlar 1.8.0'daki yeni API'ler olduğundan API'ler hâlâ alfa sürümünde olduğundan geriye dönük uyumluluk korunmaz. (I39819)
  • Bir Recomposer'da yeni kompozisyonların oluşturulmasını gözlemlemek için araç API'leri ekler (Iaeb7e).
  • Snapshot öğesine Long türünde snapshotId eklendi ve id öğesinin desteği sonlandırıldı. Anlık görüntü kimliğinin, çok yüksek kare hızlarına ve uzun süren animasyonlara sahip sistemlerde taşmasını önlemek için anlık görüntü kimliği IntLong olarak değiştirildi. Bu türün, yerel Long türü olmayan platformlarda Int veya başka bir tür olmasına izin vermek için tür, beklenen/gerçek tür olarak ayarlandı. JavaScript gibi yerel Long'ye sahip olmayan platformlar, yaklaşık 24 günde bir Int taşmasına neden olacak yüksek kare hızlarından (1.000 FPS'nin üzerinde) kaçınmalıdır. (I38ac3, b/374821679)

Hata Düzeltmeleri

Sürüm 1.8.0-alpha05

30 Ekim 2024

androidx.compose.runtime:runtime-*:1.8.0-alpha05 iptal edilir. 1.8.0-alpha05 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Int.MAX_VALUE öğesini SnapshotIdSet öğesine ekleyerek yığın taşmasını düzeltin. (b/370536104, Ic4179f6)
  • Çalışma zamanı mikro optimizasyonları (I50c60)
  • R8'in hata ayıklama sırasında çalışma zamanı kontrolü çağrılarını kaldırmasına izin verin (I8c44)
  • compoundKeyOf işlevini yinelemeli (iterative) hale getirin (özyinelemeli (recursive) yerine) (I5817f)

Harici Katkı (External Contribution)

  • Koleksiyon listeleriyle yığınları uygulama (I7d47c)

Sürüm 1.8.0-alpha04

16 Ekim 2024

androidx.compose.runtime:runtime-*:1.8.0-alpha04 iptal edilir. 1.8.0-alpha04 sürümü şu commit'leri içerir.

Performans İyileştirmeleri

  • Oluşturucuda durum kayıtları için anlık görüntü kimliği sağlama (85c00f)
  • Sınıf doğrulama hatalarını önlemek için SnapshotState*** öğesini yeniden düzenleyin (6ee4a6)
  • R8 kurallarını, throw inlining'i önleyecek şekilde düzeltin (5beb92)
  • İşlemleri mikro düzeyde optimize etme (d73c5c)
  • JVM'de SynchronizedObject ayırmalarını optimize etme (2b043f)

Sürüm 1.8.0-alpha03

2 Ekim 2024

androidx.compose.runtime:runtime-*:1.8.0-alpha03 iptal edilir. 1.8.0-alpha03 sürümü bu commit'leri içerir.

Performans İyileştirmeleri

  • rememberCoroutineScope için alt bağlamı geç oluşturma (f61464)
    • rememberCoroutineScope, genellikle kompozisyon sonrası gerçekleşen etkinliklere yanıt olarak eş yordamları başlatmak için kullanılır. Bazı senaryolarda bu etkinlikler hiç gerçekleşmeyebilir. Bu da iş oluşturma ve iptal etme işlemlerinin ek maliyetlere yol açmasına neden olur ancak herhangi bir fayda sağlamaz.
    • rememberCoroutineScope tarafından döndürülen kapsamın, erişildiğinde coroutineContext öğesini geç oluşturmasını sağlayın. Kapsam hiç kullanılmazsa iş oluşturma ve iptal etme işlemlerini tamamen önleyin.

Sürüm 1.8.0-alpha02

18 Eylül 2024

androidx.compose.runtime:runtime-*:1.8.0-alpha02 iptal edilir. 1.8.0-alpha02 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Bileşim sırasında duraklatılabilen ve bileşime eşzamansız olarak uygulanabilen bir alt bileşim oluşturmaya olanak tanıyan PausableComposition eklendi. Şu anda geliştirme aşamasında olan duraklatma özelliği için derleyici desteği gereklidir. (I3394b)

Sürüm 1.8.0-alpha01

4 Eylül 2024

androidx.compose.runtime:runtime-*:1.8.0-alpha01 iptal edilir. 1.8.0-alpha01 sürümü bu commit'leri içerir.

Sürüm 1.7

Sürüm 1.7.8

12 Şubat 2025

androidx.compose.runtime:runtime-*:1.7.8 iptal edilir. 1.7.8 sürümü bu commit'leri içerir.

Sürüm 1.7.7

29 Ocak 2025

androidx.compose.runtime:runtime-*:1.7.7 iptal edilir. 1.7.6 sürümünden itibaren değişiklik yok.

androidx.compose.runtime:runtime-*:1.7.6 iptal edilir. 1.7.6 sürümü bu commit'leri içerir.

Sürüm 1.7.5

30 Ekim 2024

androidx.compose.runtime:runtime-*:1.7.5 iptal edilir. 1.7.5 sürümü bu commit'leri içerir.

Sürüm 1.7.4

16 Ekim 2024

androidx.compose.runtime:runtime-*:1.7.4 iptal edilir. 1.7.4 sürümü bu commit'leri içerir.

Sürüm 1.7.3

2 Ekim 2024

androidx.compose.runtime:runtime-*:1.7.3 iptal edilir. 1.7.3 sürümü bu commit'leri içerir.

Sürüm 1.7.2

18 Eylül 2024

androidx.compose.runtime:runtime-*:1.7.2 iptal edilir. 1.7.2 sürümü bu commit'leri içerir.

Sürüm 1.7.1

10 Eylül 2024

  • Android yapıları değiştirilmez. -desktop yapı kaldırıldı, -jvmStubs ve -linuxx64Stubs yapıları eklendi. Bu hedeflerden hiçbiri kullanılmak üzere tasarlanmamıştır. Jetbrains Compose çalışmalarına yardımcı olmak için yer tutucu olarak kullanılırlar.

Sürüm 1.7.0

4 Eylül 2024

androidx.compose.runtime:runtime-*:1.7.0 iptal edilir. 1.7.0 sürümü bu commit'leri içerir.

1.6.0 sürümünden beri yapılan önemli değişiklikler

  • Diğer beste yerellerinin değerlerine göre hesaplanan bir beste yereli sağlamak için varsayılan olarak compositionLocalWithComputedDefault() kullanma veya provides yerine providesComputed kullanarak değeri hesaplamak için kullanılacak bir lambda sağlama özelliği eklendi.
  • Bir kompozisyon yerelinin değeri, değeri hesaplayan lambda'nın içinden erişilebilen kompozisyon yerelinin currentValue özelliği kullanılarak elde edilebilir. Bu, yalnızca @Composable işlevlerinde erişilebilen current yerine kullanılır. (Iadbc0)
  • Yeni oluşturulan durum nesnelerine, başlangıç durumlarıyla birlikte global anlık görüntü de dahil olmak üzere diğer anlık görüntülerden hemen erişilebilir. Sonraki değişiklikler, nesnenin oluşturulduğu anlık görüntü uygulanana kadar görünmez.
  • mutableStateOf()'nın ve temel sürümlerinin başlangıç durumu, mutableStateOf()'ya parametre olarak iletilen değerdir. mutableStateListOf() ve mutableStateMapOf() öğelerinin başlangıçtaki durumu boştur.
  • Durum nesnesinin oluşturulduktan sonra genel anlık görüntüden hemen erişilebilir olmasını sağlamak için kullanılan Snapshot.isInSnapshot ve Snapshot.PreexistingSnapshotId eklendi.
  • Özel durum nesneleri, yerleşik anlık görüntü nesnelerinde yapılan değişikliklerin düzenini izleyerek anında erişilebilirliği destekleyebilir. (I84a17)
  • Oluşturma kitaplıkları için nonSkippingGroupOptimization'ı etkinleştirin. Bu, androidx'teki yeniden başlatılamayan tüm composable işlevler için oluşturulan kodun daha verimli olmasını sağlar. Gelecekte bu özelliği varsayılan olarak etkinleştirmeyi planlıyoruz. I(acbc08)
  • Aynı karedeki alt kompozisyonlarda composable lambda'ları geçersiz kılın. (98301c)
  • onRelease geri arama işlevini onForgotten ile aynı sırada çağırın. (2cd790)
  • Güçlü atlama modunu etkinleştirme (ed1766)
  • currentCompoundHashKey cihazını daha fazla durumda benzersiz hale getirme (d4a872)

Sürüm 1.7.0-rc01

21 Ağustos 2024

androidx.compose.runtime:runtime-*:1.7.0-rc01 iptal edilir. 1.7.0-rc01 sürümü bu commit'leri içerir.

Sürüm 1.7.0-beta07

7 Ağustos 2024

androidx.compose.runtime:runtime-*:1.7.0-beta07 iptal edilir. 1.7.0-beta07 sürümü bu commit'leri içerir.

Sürüm 1.7.0-beta06

24 Temmuz 2024

androidx.compose.runtime:runtime-*:1.7.0-beta06 iptal edilir. 1.7.0-beta06 sürümü bu commit'leri içerir.

Sürüm 1.7.0-beta05

10 Temmuz 2024

androidx.compose.runtime:runtime-*:1.7.0-beta05 iptal edilir. 1.7.0-beta05 sürümü bu commit'leri içerir.

Sürüm 1.7.0-beta04

26 Haziran 2024

androidx.compose.runtime:runtime-*:1.7.0-beta04 iptal edilir. 1.7.0-beta04 sürümü bu commit'leri içerir.

Sürüm 1.7.0-beta03

12 Haziran 2024

androidx.compose.runtime:runtime-*:1.7.0-beta03 iptal edilir. 1.7.0-beta03 sürümü bu commit'leri içerir.

Sürüm 1.7.0-beta02

29 Mayıs 2024

androidx.compose.runtime:runtime-*:1.7.0-beta02 iptal edilir. 1.7.0-beta02 sürümü bu commit'leri içerir.

Sürüm 1.7.0-beta01

14 Mayıs 2024

androidx.compose.runtime:runtime-*:1.7.0-beta01 iptal edilir. 1.7.0-beta01 sürümü bu commit'leri içerir.

Sürüm 1.7.0-alpha08

1 Mayıs 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha08 iptal edilir. 1.7.0-alpha08 sürümü bu commit'leri içerir.

Sürüm 1.7.0-alpha07

17 Nisan 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha07 iptal edilir. 1.7.0-alpha07 sürümü bu onayları içerir.

Yeni Özellikler

  • Diğer beste yerellerinin değerlerine göre hesaplanan bir beste yereli sağlamak için varsayılan olarak compositionLocalWithComputedDefault() kullanma veya provides yerine providesComputed kullanarak değeri hesaplamak için kullanılacak bir lambda sağlama özelliği eklendi.
  • Bir kompozisyon yerelinin değeri, değeri hesaplayan lambda'nın içinden erişilebilen kompozisyon yerelinin currentValue özelliği kullanılarak elde edilebilir. Bu, yalnızca @Composable işlevlerinde erişilebilen current yerine kullanılır. (Iadbc0)

API Değişiklikleri

  • Yeni oluşturulan durum nesnelerine, başlangıç durumlarıyla birlikte global anlık görüntü de dahil olmak üzere diğer anlık görüntülerden hemen erişilebilir. Sonraki değişiklikler, nesnenin oluşturulduğu anlık görüntü uygulanana kadar görünmez.
  • mutableStateOf()'nın ve temel sürümlerinin başlangıç durumu, mutableStateOf()'ya parametre olarak iletilen değerdir. mutableStateListOf() ve mutableStateMapOf() öğelerinin başlangıçtaki durumu boştur.
  • Durum nesnesinin oluşturulduktan sonra genel anlık görüntüden hemen erişilebilir olmasını sağlamak için kullanılan Snapshot.isInSnapshot ve Snapshot.PreexistingSnapshotId eklendi.
  • Özel durum nesneleri, yerleşik anlık görüntü nesnelerinde yapılan değişikliklerin düzenini izleyerek anında erişilebilirliği destekleyebilir. (I84a17)

Hata Düzeltmeleri

  • İç içe yerleştirilmiş anlık görüntülerde readObserver birleştirme sorunu düzeltildi. Bu durum, iç içe yerleştirilmiş türetilmiş durumların snapshotFlow içinde kullanıldığında geçersiz kılınmamasına neden oluyordu. (Idf138)

Sürüm 1.7.0-alpha06

3 Nisan 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha06 iptal edilir. 1.7.0-alpha06 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Tek değerlerin işlenmesiyle ilgili düzeltme providesDefault (538f45)
  • Recomposer'ın kare saatine erişirken kilitlenmeyi önleme (07e5c6)

Sürüm 1.7.0-alpha05

20 Mart 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha05 iptal edilir. 1.7.0-alpha05 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Devre dışı bırakılan beste üzerindeki geç değişiklikleri temizleme (5950bc)

Sürüm 1.7.0-alpha04

6 Mart 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha04 iptal edilir. 1.7.0-alpha04 sürümü bu commit'leri içerir.

Performans İyileştirmeleri

  • Türetilmiş durum değerlendirmesi başına bir kez Snapshot.current çağrısı yapın (ee7daf).
  • Kompozisyonda gözlem başına bir kez currentRecord okunur (b882b2)
  • snapshotFlow içinde yanlışlıkla yapılan yineleyici ayırmayı kaldırma (231e56)
  • Oluşturma kitaplıkları için nonSkippingGroupOptimization'ı etkinleştirin. Bu, androidx'teki yeniden başlatılamayan tüm composable işlevler için oluşturulan kodun daha verimli olmasını sağlar. Gelecekte bu özelliği varsayılan olarak etkinleştirmeyi planlıyoruz. I(acbc08)

Sürüm 1.7.0-alpha03

21 Şubat 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha03 iptal edilir. 1.7.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Değişiklik algılamayı iyileştirmek için grupları değiştirme özelliği kullanıma sunuldu (0941b5)

Performans İyileştirmeleri

  • Değişiklikleri algılarken bellek ayırmayı iyileştirme (53e7fd)
  • Oluşturma aracındaki bellek sızıntısı düzeltildi (0e097d).
  • Yeniden oluşturma sırasında geçersiz kılmaları iletmek için ScopeMap kullanın (e19a7e)
  • İptal haritasını yalnızca türetilmiş durumları koruyacak şekilde optimize edin (f11c44)
  • IdentityArraySet kullanımlarını ScatterSet ile değiştirme (db572e)
  • ScopeMap içinde removeScope optimize edin (bb0530)

Sürüm 1.7.0-alpha02

7 Şubat 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha02 iptal edilir. 1.7.0-alpha02 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Aynı karedeki alt kompozisyonlarda composable lambda'ları geçersiz kılın. (98301c)
  • onRelease geri arama işlevini onForgotten ile aynı sırada çağırın. (2cd790)
  • snapshotFlow'da gözlemlenmeyen filtre değiştirme durumları. (796b80)

Performans İyileştirmeleri

  • Şeffaf olan anlık görüntü gözlemcisini yerinde değiştirme. (f60f30)
  • Optimize edin SnapshotIdSet.lowest(). (7ae149)
  • SnapshotIdSet uygulamasında ücretsiz bir fold() kullanın. (532b7d)
  • Yineleyici ayırmayı kaldır (83f96b)

Sürüm 1.7.0-alpha01

24 Ocak 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha01 iptal edilir. 1.7.0-alpha01 sürümü şu commit'leri içerir.

Performans optimizasyonları

  • Alt grup eklendikten sonra yer oluşturma özelliği eklendi (b5960c)
  • Anlık görüntü durumlarının kayıt değişikliklerini optimize etme (28c3fe)
  • Güçlü atlama modunu etkinleştirme (ed1766)

Hata Düzeltmeleri

  • Intrinsic remember'da varsayılan parametre meta'sını hesaba katma (096665)
  • currentCompoundHashKey cihazını daha fazla durumda benzersiz hale getirme (d4a872)
  • Satır içi işlev çağrısından çıkarken grupları gerçekleştirme (2a90fc)

Sürüm 1.6

Sürüm 1.6.8

12 Haziran 2024

androidx.compose.runtime:runtime-*:1.6.8 iptal edilir. 1.6.8 sürümü bu commit'leri içerir.

Sürüm 1.6.7

1 Mayıs 2024

androidx.compose.runtime:runtime-*:1.6.7 iptal edilir. 1.6.7 sürümü bu commit'leri içerir.

Sürüm 1.6.6

17 Nisan 2024

androidx.compose.runtime:runtime-*:1.6.6 iptal edilir. Son sürümden bu yana değişiklik yok.

Sürüm 1.6.5

3 Nisan 2024

androidx.compose.runtime:runtime-*:1.6.5 iptal edilir. 1.6.5 sürümü bu commit'leri içerir.

Sürüm 1.6.4

20 Mart 2024

androidx.compose.runtime:runtime-*:1.6.4 iptal edilir. 1.6.4 sürümü bu commit'leri içerir.

Sürüm 1.6.3

6 Mart 2024

androidx.compose.runtime:runtime-*:1.6.3 iptal edilir. 1.6.3 sürümü bu commit'leri içerir.

Sürüm 1.6.2

21 Şubat 2024

androidx.compose.runtime:runtime-*:1.6.2 iptal edilir. 1.6.2 sürümü şu commit'leri içerir.

Sürüm 1.6.1

7 Şubat 2024

androidx.compose.runtime:runtime-*:1.6.1 iptal edilir. 1.6.1 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • onRelease geri arama işlevini onForgotten ile aynı sırada çağırın. (2cd790)
  • snapshotFlow'da gözlemlenmeyen filtre değiştirme durumları. (796b80)

Sürüm 1.6.0

24 Ocak 2024

androidx.compose.runtime:runtime-*:1.6.0 iptal edilir. 1.6.0 sürümü şu commit'leri içerir.

1.5.0 sürümünden beri yapılan önemli değişiklikler

Yeni Özellikler

  • Yeniden oluşturma döngüsü sırasında yutulan istisnaları yeniden oluşturma (4dff9a)

Performans optimizasyonları

  • Anlık görüntü durumlarının kayıt değişikliklerini optimize etme (28c3fe)
  • Optimize etme rememberSaveable (f01d79)
  • Değişiklikler kaydedilene kadar türetilmiş durumların yeniden okunmasını erteleme (f38099)
  • Yerel değerlerin sağlanmasıyla ilgili kompozisyonu iyileştirme (a337ea)

Hata Düzeltmeleri

  • Yuva tablosu bellek sızıntısı düzeltildi (73fcfe)
  • Kaldırılacak alt bileşenlerin yeniden oluşturulmasını atlayın. (Ieeb99, b/254645321)
  • Yalnızca hatırlama hesaplamasında depolandığında RememberObserver yaşam döngülerini tetikleyin. (f6b4dc)
  • $dirty yakalamayı satır içi lambda'larla kısıtlayın. (acfca0)
  • Bazen yanlış kompozisyon yerelleri alan taşınabilir içerik düzeltildi. (035cd6)

Sürüm 1.6.0-rc01

10 Ocak 2024

androidx.compose.runtime:runtime-*:1.6.0-rc01 iptal edilir. 1.6.0-rc01 sürümü şu commit'leri içerir.

Sürüm 1.6.0-beta03

13 Aralık 2023

androidx.compose.runtime:runtime-*:1.6.0-beta03 iptal edilir. 1.6.0-beta03 sürümü şu commit'leri içerir.

Sürüm 1.6.0-beta02

29 Kasım 2023

androidx.compose.runtime:runtime-*:1.6.0-beta02 iptal edilir. 1.6.0-beta02 sürümü şu commit'leri içerir.

Sürüm 1.6.0-beta01

15 Kasım 2023

androidx.compose.runtime:runtime-*:1.6.0-beta01 iptal edilir. 1.6.0-beta01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Açıklamada belirli kararlılık değerlerini yayma. (274a4c)

Hata Düzeltmeleri

  • Bağlamdaki yerel kapsam durumunu oluşturmak için referans politikası kullanın. (83361c)
  • $dirty yakalamayı satır içi lambda'larla kısıtlayın. (acfca0)
  • Bazen yanlış kompozisyon yerelleri alan taşınabilir içerik düzeltildi. (035cd6)
  • RecomposeScopeImpl'da daha hızlı, tahsis edilmeyen karma haritalar kullanın. (d79494)
  • DerivedState uygulamasında ObjectIntMap hesabını kullanın. (21862e)
  • DerivedState içinde int SnapshotThreadLocal için IntRef kullanın. (04eaf4)

Sürüm 1.6.0-alpha08

18 Ekim 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha08 iptal edilir. 1.6.0-alpha08 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Yalnızca hatırlama hesaplamasında depolandığında RememberObserver yaşam döngülerini tetikleyin. (f6b4dc)
  • Geçersiz kılma listesi sıralamasındaki ayırmaları iyileştirin. (954d63)
  • SnapshotStateObserver'da yeni tahsis edilmeyen haritaları kullanın. (4303ce)
  • Beste devre dışı bırakıldığında geçersiz kılmaları temizleyin. (e001be)

Sürüm 1.6.0-alpha07

4 Ekim 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha07 iptal edilir. 1.6.0-alpha07 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Liste yardımcılarının doğrudan dizine ekleme sürümünün kullanılabilmesi için SnapshotStateList artık RandomAccess olarak işaretleniyor. (I5210c, b/219554654)

Sürüm 1.6.0-alpha06

20 Eylül 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha06 iptal edilir. 1.6.0-alpha06 sürümü şu commit'leri içerir.

Sürüm 1.6.0-alpha05

6 Eylül 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha05 iptal edilir. 1.6.0-alpha05 sürümü şu commit'leri içerir.

Sürüm 1.6.0-alpha04

23 Ağustos 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha04 iptal edilir. 1.6.0-alpha04 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Yeniden oluşturma döngüsü sırasında yutulan istisnaları yeniden oluşturma (4dff9a)

API Değişiklikleri

  • ReusableComposition'ı devre dışı bırakmak için bir yöntem eklendi. Bu yöntem, gözlemleri kaldırır ancak düğümleri yerinde tutar. Devre dışı bırakılan beste, setContent aranarak tekrar etkinleştirilebilir. (Ib7f31)
  • Alt bileşenlerin yaşam döngüsünü ve yeniden kullanımını yönetmek için ReusableComposition arayüzü eklendi. (I812d1, b/252846775)

Sürüm 1.6.0-alpha03

9 Ağustos 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha03 iptal edilir. 1.6.0-alpha03 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Yeni CompositionLocalProvider optimizasyonunu düzeltin (3118e88)
  • Taşınabilir içerik düğümlerinin ayrıştırılma şeklini düzeltir. (5e3d59b)

Sürüm 1.6.0-alpha02

26 Temmuz 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha02 iptal edilir. 1.6.0-alpha02 sürümü şu commit'leri içerir.

Yeni özellikler ve performans iyileştirmeleri

  • Optimize etme rememberSaveable (f01d79)
  • Değişiklikler kaydedilene kadar türetilmiş durumların yeniden okunmasını erteleme (f38099)
  • Yerel değerlerin sağlanmasıyla ilgili kompozisyonu iyileştirme (a337ea)
  • Grup oluşturulmasını önlemek için SideEffect, @ExplicitGroupsComposable olarak işaretlenir. (I74815)
  • Yeniden kullanımda kompozisyon yerel haritalarını karşılaştırmaktan kaçının (782071)

API Değişiklikleri

  • CompositionLocalProviders için, birden fazla değer sağlamayı hızlandırmak için kullanılan ancak tek bir değer sağlarken ek yük olan ek yükten kaçınan özel bir durum aşırı yüklemesi eklendi. (I6d640, b/288169379)

Hata Düzeltmeleri

  • Yuva tablosu bellek sızıntısı düzeltildi (73fcfe)
  • rememberSaveable, stateSaver null döndürdüğünde geri yükleme işleminin düzeltilmesi (90748c)

Sürüm 1.6.0-alpha01

21 Haziran 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha01 iptal edilir. 1.6.0-alpha01 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Kaldırılacak alt bileşenlerin yeniden oluşturulmasını atlayın. (Ieeb99, b/254645321)
  • Anlık görüntüler uygulanırken daha az yer ayırma. (I65c09)
  • Anlık görüntü değiştirilmediyse readableHash değerini DerivedState içinde hesaplamaktan kaçının (68c565)

Sürüm 1.5

Sürüm 1.5.4

18 Ekim 2023

androidx.compose.runtime:runtime-*:1.5.4 iptal edilir. 1.5.4 sürümü şu commit'leri içerir.

Sürüm 1.5.3

4 Ekim 2023

androidx.compose.runtime:runtime-*:1.5.3 iptal edilir. 1.5.3 sürümü şu commit'leri içerir.

Sürüm 1.5.2

27 Eylül 2023

androidx.compose.runtime:runtime-*:1.5.2 iptal edilir. 1.5.2 sürümü şu commit'leri içerir.

Sürüm 1.5.1

6 Eylül 2023

androidx.compose.runtime:runtime-*:1.5.1 iptal edilir. 1.5.1 sürümü şu commit'leri içerir.

Sürüm 1.5.0

9 Ağustos 2023

androidx.compose.runtime:runtime-*:1.5.0 iptal edilir. 1.5.0 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Yeniden oluşturma, renk animasyonları ve AndroidComposeView'daki ayırmalar kaldırıldı. (Ib2bfa)
  • Durum oluşturan ve remember çağrısı içine alınması gereken işlevleri işaretlemek için @StateFactoryMarker ek açıklaması eklendi. (I64550)
  • State ve MutableState'in temel sürümlerini ekleyin (fb3d89)
  • Snapshot.isApplyObserverNotificationPending tarihinde eklendi (I672a5)
  • State API'nin temel sürümleri eklendi. Bu sayede, otomatik kutulama nedeniyle ceza almadan State nesnelerinde Int, Long, Float ve Double değerlerinin izlenmesine olanak tanındı. Bunları kullanmak için yeni fabrika yöntemleri mutableIntState(Int), mutableFloatStateOf(Float) vb. kullanın. (I48e43)

Hata Düzeltmeleri

  • Kaldırılacak alt bileşenlerin yeniden oluşturulmasını atlayın. (Ieeb99, b/254645321)
  • ComposerImpl içinde anlık görüntü referansını saklama (0206f7)
  • Bileşimi iki kez uygulamayın (f5791b)
  • Başlatılmamış türetilmiş durum değerleri için geçersiz kılma işleminin yapıldığından emin olun (aa2a92).
  • Beste oluşturma sırasında onEndChanges çağrısı yapılıyor. (62cc8c)
  • İçeriğin alt kompozisyona taşınmasıyla ilgili sorunu düzeltme (4beb41)
  • Olası kilitlenmeleri düzeltme (c1a425 ve 8edce0)
  • Android penceresi için oluşturulan yeniden oluşturucu, artık ON_STOP bildirimi aldığında tüm bileşimi değil, yalnızca withFrameNanos öğesine yapılan çağrıları engeller. Bu durumda, durdurulan etkinliklerle ilişkili pencereler veri değişiklikleri için yeniden oluşturulmaya devam eder ancak animasyonlar veya withFrameNanos'nın diğer tüm çağrıları engellenir. (Id9e7f, b/240975572)
  • Efektleri silmeden önce LayoutNode için devre dışı bırakma geri çağırmalarını yürütün 3784073
  • Yeniden başlatılan lambda'lar için değiştirilen işaretleri düzeltme ea81df9
  • 73fd4d8 düğümleriyle Composable için canlı düzenleme regresyonunu düzeltme
  • ON_STOP, ae276f1 beste yerine kare saati yayınlarını duraklatmalıdır.
  • Değişmeyen türetilmiş durumlar için SnapshotStateObserver kapsamlarını geçersiz kılma 84d9b1c
  • Kompozisyonları atarken olası kilitlenmeyi düzeltme 28761fc
  • İçeriği alt kompozisyona taşıma sorununu düzeltme 92d4156
  • Yeniden başlatılan lambda'lar için değiştirilen işaretleri düzeltme (8a03e9)
  • Efektleri silmeden önce LayoutNode için devre dışı bırakma geri aramalarını yürütün (8b0fa4)
  • Düğüm gruplarını sonlandırırken endToMarker() düzeltildi. (d71d980)
  • Devre dışı bırakma kontrolü için mevcut SlotWriter grubunu kullanın (a0b518b).
  • SlotTable.moveSlotGapTo() içindeki fill öğesini kaldırıp kapatma düğmesinin yanına taşıma (81f9935)
  • Taşınabilir içerik taşınırken geçersiz kılma işlemlerinin eksik olması sorununu düzeltme (1d7c024)
  • Taşınan taşınabilir içeriklerdeki anında geçersiz kılma sorunlarını düzeltme (8676618)

Performans İyileştirmeleri

  • Anlık görüntü değiştirilmediyse readableHash değerini DerivedState içinde hesaplamaktan kaçının. (307102)
  • Azaltılmış tahsisler (I65c09, d7ea77, 727974 ve 445808)
  • Oluşturma işlemini hızlıca iptal etme CoroutineScopes (a55362 ve bd382f)
  • Durum nesnelerinin kayıtlarını erişilemeyen durum kayıtlarıyla üzerine yazma (c986960)
  • Grupları gerçekleştirirken doğru kapsamdaki oluşturucuyu kullanın (9a5e5b6)
  • Anlık görüntü geçersiz kılma işlemlerini depolamak için IdentityArraySet kullanın (7f60cca)
  • Anlık görüntü gözlemleri için ayrılan alanı azaltma (5bc535f)

Sürüm 1.5.0-rc01

26 Temmuz 2023

androidx.compose.runtime:runtime-*:1.5.0-rc01 iptal edilir. 1.5.0-rc01 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Değişiklikler kaydedilene kadar türetilmiş durumların yeniden okunmasını erteleme (f38099)

  • mutableStateOf() çağrılarını karşılık gelen özel türlere taşımayı önermek için isteğe bağlı bir inceleme yapılabilir. Lint kimliği AutoboxingStateCreation'dır. Daha önce bu inceleme, tüm projeler için varsayılan olarak etkinleştirilmişti. Bu uyarıyı Android Studio'nun düzenleyicisinde ve projenizin hata analizi çıktılarında görmek için modülünüzün build.gradle veya build.gradle.kts yapılandırmasında warning "AutoboxingStateCreation"'ı aşağıdaki gibi bildirerek önem derecesini bilgilendirici düzeyden uyarı düzeyine (veya daha yüksek bir düzeye) değiştirin (I34f7e):

        android {
            lint {
                warning "AutoboxingStateCreation"
            }
            ...
        }
    

Sürüm 1.5.0-beta03

28 Haziran 2023

androidx.compose.runtime:runtime-*:1.5.0-beta03 iptal edilir. 1.5.0-beta03 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Kaldırılacak alt bileşenlerin yeniden oluşturulmasını atlayın. (Ieeb99, b/254645321)

Sürüm 1.5.0-beta02

7 Haziran 2023

androidx.compose.runtime:runtime-*:1.5.0-beta02 iptal edilir. 1.5.0-beta02 sürümü şu commit'leri içerir.

Performans İyileştirmeleri

  • Anlık görüntü değiştirilmediyse readableHash değerini DerivedState içinde hesaplamaktan kaçının. (307102)

Sürüm 1.5.0-beta01

24 Mayıs 2023

androidx.compose.runtime:runtime-*:1.5.0-beta01 iptal edilir. 1.5.0-beta01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Yeniden oluşturma, renk animasyonları ve AndroidComposeView (Ib2bfa) işlemlerinde tahsisler kaldırıldı.
  • Durum oluşturan ve remember çağrısı içine alınması gereken işlevleri işaretlemek için @StateFactoryMarker ek açıklaması eklendi. (I64550)
  • State ve MutableState'in temel sürümlerini ekleyin (fb3d89)
  • Snapshot.isApplyObserverNotificationPending tarihinde eklendi (I672a5)

Hata Düzeltmeleri

  • Azaltılmış tahsisler (I65c09, d7ea77, 727974 ve 445808)
  • ComposerImpl içinde anlık görüntü referansını saklama (0206f7)
  • Oluşturma işlemini hızlıca iptal etme CoroutineScopes (a55362 ve bd382f)
  • Bileşimi iki kez uygulamayın (f5791b)
  • Başlatılmamış türetilmiş durum değerleri için geçersiz kılma işleminin yapıldığından emin olun (aa2a92).
  • Beste oluşturma sırasında onEndChanges çağrısı yapılıyor. (62cc8c)
  • İçeriğin alt kompozisyona taşınmasıyla ilgili sorunu düzeltme (4beb41)
  • Olası kilitlenmeleri düzeltme (c1a425
  • ON_STOP, beste yerine kare saati yayınlarını duraklatmalıdır (f4a2d1).
  • Yeniden başlatılan lambda'lar için değiştirilen işaretleri düzeltme (8a03e9)
  • Efektleri silmeden önce LayoutNode için devre dışı bırakma geri aramalarını yürütün (8b0fa4)

Harici Katkı (External Contribution)

  • Snapshot.isApplyObserverNotificationPending tarihinde eklendi (I672a5)

Sürüm 1.5.0-alpha04

10 Mayıs 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha04 iptal edilir. 1.5.0-alpha04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • State API'nin temel sürümleri eklendi. Bu sayede, otomatik kutulama nedeniyle ceza almadan State nesnelerinde Int, Long, Float ve Double değerlerinin izlenmesine olanak tanındı. Bunları kullanmak için yeni fabrika yöntemleri mutableIntState(Int), mutableFloatStateOf(Float) vb. kullanın. (I48e43)

Hata Düzeltmeleri

  • Beste oluşturma sırasında onEndChanges çağrısı yapılıyor. Composition.dispose sırasında kaldırılan odak düğümleri, odağı sıfırlamak için onEndChanges'e abone oluyor.(03d4a47)

  • Başlatılmamış türetilmiş durum değerlerinin geçersiz kılınmasını sağlayın. Her türetilmiş durum, SnapshotStateObserver içinde bağımlılıklarının listesiyle ilişkilendirilir. Bu liste, bağımlılık değiştiğinde türetilmiş durumla ilişkili kapsamları geçersiz kılmak için kullanılır. Bağımlılık değişikliği, türetilmiş durum okunduktan sonra (Snapshot.notifyObjectsInitialized() çağrısı nedeniyle) gerçekleşebilen anlık görüntü ilerletme işlemine kaydedilir.

    SnapshotStateObserver'daki önceki türetilmiş durum gözlem mantığı, eski bağımlılıkları temizleyip yeni değeri okuyordu. Bu durum, temizlenmiş bir durumda geçersiz kılma işleminin gerçekleştiği ve bağımlılık geçersiz kılma işleminin kaydedilmediği bir yarış durumuyla sonuçlandı.

    Bu değişiklik, türetilmiş durum okuma ve bağımlılık temizleme işlemlerini yeniden sıralayarak geçersiz kılma işleminin her zaman geçerli bir durumda gerçekleşmesini sağlar. (c472be6)

Sürüm 1.5.0-alpha03

19 Nisan 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha03 iptal edilir. 1.5.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Android penceresi için oluşturulan yeniden oluşturucu, artık ON_STOP bildirimi aldığında tüm bileşimi değil, yalnızca withFrameNanos öğesine yapılan çağrıları engeller. Bu durumda, durdurulan etkinliklerle ilişkili pencereler veri değişiklikleri için yeniden oluşturulmaya devam eder ancak animasyonlar veya withFrameNanos'nın diğer tüm çağrıları engellenir. (Id9e7f, b/240975572)

Hata Düzeltmeleri

  • Anlık görüntü listesi ve haritada olası kilitlenmeyi düzeltme 5c1a425
  • Efektleri silmeden önce LayoutNode için devre dışı bırakma geri çağırmalarını yürütün 3784073
  • Yeniden başlatılan lambda'lar için değiştirilen işaretleri düzeltme ea81df9
  • 73fd4d8 düğümleriyle Composable için canlı düzenleme regresyonunu düzeltme
  • ON_STOP, ae276f1 beste yerine kare saati yayınlarını duraklatmalıdır.
  • Değişmeyen türetilmiş durumlar için SnapshotStateObserver kapsamlarını geçersiz kılma 84d9b1c
  • Kompozisyonları atarken olası kilitlenmeyi düzeltme 28761fc
  • İçeriği alt kompozisyona taşıma sorununu düzeltme 92d4156

Sürüm 1.5.0-alpha02

5 Nisan 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha02 iptal edilir. 1.5.0-alpha02 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Kotlin'in getValue operatörü artık composable olabilir (f174f6e)

Hata düzeltmeleri, performans iyileştirmeleri

  • Durum nesnelerinin kayıtlarını erişilemeyen durum kayıtlarıyla üzerine yazma (c986960)
  • Grupları gerçekleştirirken doğru kapsamdaki oluşturucuyu kullanın (9a5e5b6)
  • Düğüm gruplarını sonlandırırken endToMarker() düzeltildi. (d71d980)
  • Devre dışı bırakma kontrolü için mevcut SlotWriter grubunu kullanın (a0b518b).
  • Anlık görüntü geçersiz kılma işlemlerini depolamak için IdentityArraySet kullanın (7f60cca)
  • SlotTable.moveSlotGapTo() içindeki fill öğesini kaldırıp kapatma düğmesinin yanına taşıma (81f9935)
  • Taşınabilir içerik taşınırken geçersiz kılma işlemlerinin eksik olması sorununu düzeltme (1d7c024)
  • Taşınan taşınabilir içeriklerdeki anında geçersiz kılma sorunlarını düzeltme (8676618)
  • Anlık görüntü gözlemleri için ayrılan alanı azaltma (5bc535f)

Sürüm 1.5.0-alpha01

22 Mart 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha01 iptal edilir. 1.5.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Modifier.Node#coroutineScope eş yordamlarının başlatılmasına izin vermek için Modifier.Nodes eklenir (I76ef9).
  • CompositionLocalConsumerModifierNode arayüzünü uygulayarak Modifier.Nodes uygulamasının CompositionLocals uygulamasını okumasına izin verin. (Ib44df)

Sürüm 1.4

Sürüm 1.4.3

3 Mayıs 2023

androidx.compose.runtime:runtime-*:1.4.3, herhangi bir değişiklik yapılmadan yayınlanır.

Sürüm 1.4.2

19 Nisan 2023

androidx.compose.runtime:runtime-*:1.4.2 iptal edilir. 1.4.2 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Anlık görüntü listesi ve haritada olası kilitlenme sorununu düzeltme 2eb6570

  • SnapshotStateList veya SnapshotStateMap öğesine içerik eklerken, değişiklik durum kaydına doğrudan yazma işlemiyle eşzamanlı olarak yapılıyorsa kilitlenme oluşabilir. Bu durum, kullanılmayan kayıtları serbest bırakmak için doğrudan yazma işlemlerini kullanan 93fcae828b ile tanıtılan değişikliklerle karşılaşma olasılığı önemli ölçüde artmıştır.

  • Kilitler artık harita veya liste kilidi tutulurken asla anlık görüntü kilidi alınmaya çalışılmayacak şekilde sıralanmıştır.

Sürüm 1.4.1

5 Nisan 2023

androidx.compose.runtime:runtime-*:1.4.1 iptal edilir. 1.4.1 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Düğüm gruplarını sonlandırırken endToMarker() sorununu düzeltin. d71d980

Sürüm 1.4.0

22 Mart 2023

androidx.compose.runtime:runtime-*:1.4.0 iptal edilir. 1.4.0 sürümü şu commit'leri içerir.

1.3.0 sürümünden beri yapılan önemli değişiklikler

  • İlk beste için LiveData öğesinden başlatılan değeri kullanma 3680e25
  • Compose düğümlerinin yaşam döngüsünü gözlemlemek için ComposeNodeLifecycleCallback ekleyin. 8b6a258
  • parameterTypes mülkünü ComposableMethod 7b6c7ad kimliğine ekleme

Hata düzeltmeleri ve performans iyileştirmeleri

  • SnapshotStateObserver 29f4a3e içindeki her iki kapsam dizinini de temizleyin.
  • Atlanamayan lambda'ların gövdesinde gereken grupları ekleyin 7d06752
  • Anlık görüntü durumu 93fcae8'in bellek referans özelliklerini iyileştirin.
  • Kompozisyon yerel aramalarında kutuyu kaldırma 0875717
  • Yeniden kullanılamayan düğüm grupları için doğru anahtarı kullanma 6388d8d
  • SnapshotStateObserver öğesini yinelemeli ve eşzamanlı uygulamalara karşı koruma 98cb6ba
  • IdentityArraySet "get" yöntemine bir check-index-bounds kontrolü eklendi 35a77d3
  • ViewTreeLifecycleOwner uzantılarını kullanmak için oluşturma modülünü güncelleme 21c2122
  • Recomposer, kareyi tamamladıktan sonra uygulama bildirimleri gönderin. 98f2641
  • Recomposer 8f8656f iptal edilirken dizin sınırları dışında kilitlenme sorununu düzeltme
  • Composition'ın üst sağlayıcıları değiştiyse her zaman yeniden oluşturmayı zorunlu kılma 9526fcc
  • İptal edilen işler için yeniden oluşturma toleransı a55f7ed
  • Çok sayıda beste için geçersiz kılma işlemlerini iyileştirme 9b7ed67
  • Yerel olmayan iadeler için kapatma grupları oluşturma sorununu düzeltme b6f590c

Sürüm 1.4.0-rc01

8 Mart 2023

androidx.compose.runtime:runtime-*:1.4.0-rc01 iptal edilir. 1.4.0-rc01 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

Sürüm 1.4.0-beta02

22 Şubat 2023

androidx.compose.runtime:runtime:1.4.0-beta02 ve androidx.compose.runtime:runtime-saveable:1.4.0-beta02 yayınlandı. 1.4.0-beta02 sürümü şu commit'leri içerir.

Sürüm 1.4.0-beta01

8 Şubat 2023

androidx.compose.runtime:runtime-*:1.4.0-beta01 iptal edilir. 1.4.0-beta01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Compose düğümlerinin yaşam döngüsünü gözlemlemeye olanak tanıyan ComposeNodeLifecycleCallback eklendi (I3731b).
  • Bu işlev yalnızca testte güvenli bir şekilde çağrılabildiğinden @TestOnly, Composer.disableSourceInformation()'e eklendi. (I896c8)

Hata Düzeltmeleri

  • Bileşim yerel aramalarında kutuyu kaldırma (62f66a)
  • Anlık görüntü durumunun bellek referans özelliklerini iyileştirme (dfb451)

Sürüm 1.4.0-alpha05

25 Ocak 2023

androidx.compose.runtime:runtime:1.4.0-alpha05 ve androidx.compose.runtime:runtime-saveable:1.4.0-alpha05 yayınlandı. 1.4.0-alpha05 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Satır içi/desteği sonlandırılan-gizli işlevlerin türü/null değer alabilme özelliğiyle ilgili daha fazla bilgi (I24f91)

Sürüm 1.4.0-alpha04

11 Ocak 2023

androidx.compose.runtime:runtime-*:1.4.0-alpha04 iptal edilir. 1.4.0-alpha04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • TestMonotonicFrameClock artık doğru deneysel notu kullanıyor. (I95c9e)

Hata Düzeltmeleri

  • SnapshotStateObserver öğesini yinelemeli ve eşzamanlı uygulamalara karşı koruma (d902fb)

Sürüm 1.4.0-alpha03

7 Aralık 2022

androidx.compose.runtime:runtime-*:1.4.0-alpha03 iptal edilir. 1.4.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • ComposableMethod sınıfına java.lang.reflect.Method#getParameterTypes()'ye (Iab0c3) benzer yeni bir herkese açık yöntem ekleme

Hata Düzeltmeleri

  • Anlık görüntü uygulama bildirimleri artık Recomposer değişiklikleri uygulamayı tamamladıktan sonra gönderiliyor. (Iad6c0, b/222093277)

Sürüm 1.4.0-alpha02

9 Kasım 2022

androidx.compose.runtime:runtime-*:1.4.0-alpha02 iptal edilir. 1.4.0-alpha02 sürümü şu commit'leri içerir.

Sürüm 1.4.0-alpha01

24 Ekim 2022

androidx.compose.runtime:runtime-*:1.4.0-alpha01 iptal edilir. 1.4.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • SnapshotStateList ve SnapshotStateMap artık sırasıyla toList() ve toMap()'nin açık uygulamalarına sahip. Bu yöntemler, içeriklerini depolamak için kullanılan dahili değişmez verileri döndürdüklerinden, kopyalama işlemi yapmadan mevcut içeriklerini döndürür. Bu değer, örneğin verilerin kopyalanmasını gerektirmeden snapshotFlow kullanılarak bir değer akışı oluşturmak için kullanılabilir. (Ica2bd)

Sürüm 1.3

Sürüm 1.3.3

11 Ocak 2023

androidx.compose.runtime:runtime-*:1.3.3 iptal edilir. 1.3.3 sürümü şu commit'leri içerir.

  • 1.3.2 sürümünden beri değişiklik yok

Sürüm 1.3.2

7 Aralık 2022

androidx.compose.runtime:runtime-*:1.3.2 iptal edilir. 1.3.2 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • androidx.compose.ui 1.3.2'yi destekleyecek şekilde güncellendi

Sürüm 1.3.1

9 Kasım 2022

androidx.compose.runtime:runtime-*:1.3.1 iptal edilir. 1.3.1 sürümü şu commit'leri içerir.

Sürüm 1.3.0

24 Ekim 2022

androidx.compose.runtime:runtime-*:1.3.0 iptal edilir. 1.3.0 sürümü şu commit'leri içerir.

1.2.0 sürümünden beri yapılan önemli değişiklikler

İstisna İşleme / Canlı Düzenleme Desteği

Bileşim İzleme

Composable Reflection API'leri

Çalışma Zamanı Düzeltmeleri

Anlık Görüntü Sistemi

Sürüm 1.3.0-rc01

5 Ekim 2022

androidx.compose.runtime:runtime-*:1.3.0-rc01 iptal edilir. 1.3.0-rc01 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Yuva tablosundan gelen ArrayIndexOutOfBoundsException düzeltildi (b/249076084).

Sürüm 1.3.0-beta03

21 Eylül 2022

androidx.compose.runtime:runtime-*:1.3.0-beta03 iptal edilir. 1.3.0-beta03 sürümü şu commit'leri içerir.

Davranışa İlişkin Zarar Veren Değişiklik (Behavior Breaking Change)

  • remember ve rememberCoroutineScope parametreleri crossinline olarak değiştirildi. Bu işlem, daha sonra dahili bir hatanın bildirilmesine neden olacak erken iadeye izin vermek yerine erken iadeler için hata bildirir.
  • Bu değişiklik, potansiyel olarak yeni derleyici hatalarının bildirilmesine yol açabilir. Bu durumda, bu işlevlere iletilen lambda'lardan yerel olmayan dönüşlerin kaldırılması gerekir. (Ibea62)

Sürüm 1.3.0-beta02

7 Eylül 2022

androidx.compose.runtime:runtime-*:1.3.0-beta02 iptal edilir. 1.3.0-beta02 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

Sürüm 1.3.0-beta01

24 Ağustos 2022

androidx.compose.runtime:runtime-*:1.3.0-beta01 iptal edilir. 1.3.0-beta01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Bu API'yi kullanan geliştirici araçlarının, kimliğini kullanarak kompozisyonun alt grubunu hızlıca bulmasına olanak tanımak için CompositionData'ye find yöntemi eklendi. (I5794f)

Sürüm 1.3.0-alpha03

10 Ağustos 2022

androidx.compose.runtime:runtime-*:1.3.0-alpha03 iptal edilir. 1.3.0-alpha03 sürümü şu commit'leri içerir.

Sürüm 1.3.0-alpha02

27 Temmuz 2022

androidx.compose.runtime:runtime-*:1.3.0-alpha02 iptal edilir. 1.3.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Geriye dönük uyumluluk için ComposerKt.traceEventStart(Int, String) yeniden eklendi (I6e6de)

Sürüm 1.3.0-alpha01

29 Haziran 2022

androidx.compose.runtime:runtime-*:1.3.0-alpha01 iptal edilir. 1.3.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Yardımcı işlevlerin çalışma zamanına taşınması (I4f729)

Sürüm 1.2

Sürüm 1.2.1

10 Ağustos 2022

androidx.compose.runtime:runtime-*:1.2.1 iptal edilir. 1.2.1 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Bellek sızıntısı düzeltildi: Şeffaf anlık görüntülerden oluşturulan iç içe anlık görüntüler siliniyor. b/239603305

Sürüm 1.2.0

27 Temmuz 2022

androidx.compose.runtime:runtime-*:1.2.0 iptal edilir. 1.2.0 sürümü şu commit'leri içerir.

1.1.0 sürümünden beri yapılan önemli değişiklikler

  • Compose çalışma zamanında 1.2.0 sürümünde birçok özellik kullanıma sunuldu ve kararlılığı artıran birçok hata düzeltildi. En önemli yeni özellik, paylaşılan öğe geçişleri gibi karmaşık kullanıcı deneyimlerini etkinleştirmek için kullanılabilecek movableContentOfAPI'nin kullanıma sunulması oldu. movableContentOf API, bir composable lambda'yı durumunu ve ilgili düğümleri çağrıldığı yeni konuma taşıyan bir lambda'ya dönüştürür. Önceki görüşme kompozisyondan ayrıldığında durum geçici olarak korunur. Lambda'ya yeni bir görüşme kompozisyona girdiğinde ise durum ve ilişkili düğümler yeni görüşmenin konumuna taşınır. Yeni bir görüşme eklenmezse durum kalıcı olarak kaldırılır ve hatırlatma gözlemcilerine bildirim gönderilir.

  • Aynı bileşimde bir movableContentOf lambda birden fazla kez çağrılırsa her çağrı için yeni durum ve düğümler oluşturulur. Çağrılar bileşimden çıktıkça ve yeni çağrılar girdikçe durum, çağrılma sırasına göre ilk çıkan çağrılardan giren çağrılara taşınır. Yeni aramalar tarafından talep edilmeyen tüm durum kalıcı olarak kaldırılır.

  • Bu ve birkaç yeni özelliğin yanı sıra çalışma zamanı ve anlık görüntü durumu sistemini dengelemek için de çok zaman harcandı. Çeşitli bellek sızıntıları kaldırıldı ve kod yolları optimize edildi.

  • Değişikliklerin özetlenmiş listesini aşağıda bulabilirsiniz:

1.2 bölgesindeki yeni özellikler

1.2'daki performans

1.2'deki Hata Düzeltmeleri

Sürüm 1.2.0-rc03

29 Haziran 2022

androidx.compose.runtime:runtime-*:1.2.0-rc03 iptal edilir. 1.2.0-rc03 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Türetilmiş durum gözlemleri daha önce koşulsuz olarak yeniden oluşturma kapsamından ve kompozisyondan birlikte kaldırılıyordu. Bu durum, türetilmiş durumu gözlemlemeye devam edebilecek diğer kapsamları bozuyordu. Bu değişiklik yalnızca diğer kapsamlar tarafından artık gözlemlenmiyorsa türetilmiş durum örneklerini kaldırır. (b/236618362)

Sürüm 1.2.0-rc02

22 Haziran 2022

androidx.compose.runtime:runtime-*:1.2.0-rc02 iptal edilir. 1.2.0-rc02 sürümü şu commit'leri içerir.

Sürüm 1.2.0-rc01

15 Haziran 2022

androidx.compose.runtime:runtime-*:1.2.0-rc01 iptal edilir. 1.2.0-rc01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Compose kitaplıklarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri kullanılarak oluşturuluyor (I5bcf1).

Sürüm 1.2.0-beta03

1 Haziran 2022

androidx.compose.runtime:runtime-*:1.2.0-beta03 iptal edilir. 1.2.0-beta03 sürümü şu commit'leri içerir.

Sürüm 1.2.0-beta02

18 Mayıs 2022

androidx.compose.runtime:runtime-*:1.2.0-beta02 iptal edilir. 1.2.0-beta02 sürümü şu commit'leri içerir.

Sürüm 1.2.0-beta01

11 Mayıs 2022

androidx.compose.runtime:runtime-*:1.2.0-beta01 iptal edilir. 1.2.0-beta01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Bu, 1.2 sürümünün ilk beta sürümüdür.

API Değişiklikleri

  • Deneysel Snapshot.unsafeEnter/unsafeLeave eklendi (I108f3)
  • Deneysel Snapshot.asContextElement() API'si eklendi (Iff072)
  • @ComposableTarget ek açıklaması ve @ComposableTargetMarker ile işaretlenmiş ek açıklamalar artık @file öneki kullanılarak dosya kapsamında kullanılabilir. Dosya kapsamındaki bir hedef ek açıklamasının kullanılması, derleyicinin dosyadaki tüm composable işlevlerin ilişkili uygulayıcıyı hedeflemesi gerektiğini varsaymasına neden olur. Örneğin, @file:UiComposable kullanıldığında tüm @Composable işlevlerinin Compose UI uygulayıcısını hedeflediği belirtilir. Başka bir uygulayıcıyı hedeflemesi gereken bir işlev, istenen uygulayıcı için hedef işaretleyici ek açıklamasını açıkça sağlamalıdır. (I40804)

Sürüm 1.2.0-alpha08

20 Nisan 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha08 iptal edilir. 1.2.0-alpha08 sürümü şu commit'leri içerir.

API Değişiklikleri

  • CompositionTracer arayüzüne TracingInProgress eklendi. (Ic6f12)
  • Composer'a recomposeScopeIdentity ekleme (I0c873)
  • İzleme API'leri (Composer.setTracer) OptIn(InternalComposeTracingApi) ile kısıtlandı. (I9187f)
  • Yeniden kullanılabilir içerikler için oluşturulan durumun kullanım ömrü üzerinde daha iyi kontrol sağlayan ResuableContentHost eklendi. Örneğin, bir alt bileşen geçici olarak kullanılmıyorsa içerik devre dışı bırakılabilir. Bu durumda, bileşendeki tüm hatırlanan durum unutulur ve örneğin, tüm tek kullanımlık efektler tetiklenir. (I2c0f2, b/220322704)

Sürüm 1.2.0-alpha07

6 Nisan 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha07 iptal edilir. 1.2.0-alpha07 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Yeni işlev Snapshot.withoutReadObservation { ... } eklendi. Kullanıcıların, bu blok sırasında okunan durum değerlerindeki değişikliklere abone olmadan iletilen lambda'yı çalıştırmasına olanak tanır. Anlık görüntü tabanlı iş parçacığı güvenli yazma/okuma işlemlerinden yararlanmak istediğiniz ancak gereksiz yeniden oluşturma veya yeniden ölçme işlemlerine neden olmadan değeri okumak istediğiniz kullanım alanlarında bu işlevden yararlanabilirsiniz. (I9f365, b/214054486)

Sürüm 1.2.0-alpha06

23 Mart 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha06 iptal edilir. 1.2.0-alpha06 sürümü şu commit'leri içerir.

Sürüm 1.2.0-alpha05

9 Mart 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha05 iptal edilir. 1.2.0-alpha05 sürümü şu commit'leri içerir.

Harici Katkı (External Contribution)

  • Kotlinx eş yordamları 1.6.0'ı kullanacak şekilde güncellendi (I3366d)

Sürüm 1.2.0-alpha04

23 Şubat 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha04 iptal edilir. 1.2.0-alpha04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • ComposableTarget, ComposableTargetMarker ve ComposableOpenTarget işlevleri eklendi. Bu işlevler, bir composable işlevin, kullanılması için tasarlanmadığı bir uygulayıcıyı hedefleyerek çağrıldığı zaman derleme zamanı raporlamasına olanak tanır.

    Çoğu durumda, ek açıklamalar compose derleyici eklentisi tarafından çıkarılabilir. Bu nedenle, bu ek açıklamaların doğrudan kullanılması nadir olmalıdır. Çıkarım yapılamayan durumlar arasında özel bir uygulayıcı oluşturma ve kullanma, soyut composable işlevler (ör. arayüz yöntemleri), composable lambda'lar olan alanlar veya genel değişkenler (yerel değişkenler ve parametreler çıkarılır) ya da ComposeNode veya ilgili composable işlevlerin kullanılması yer alır.

    Özel uygulayıcılar için ComposeNode veya ReusableComposeNode çağıran birleştirilebilir işlevlerin, işlev ve birleştirilebilir lambda parametre türleri için CompoableTarget ek açıklaması eklemesi gerekir. Ancak, ComposableTargetMarker ile açıklama eklenmiş bir açıklama oluşturmanız ve ardından doğrudan ComposableTarget yerine işaretlenmiş açıklamanın kullanılması önerilir. ComposableTargetMarker ile işaretlenmiş bir birleştirilebilir ek açıklama, uygulayıcı parametresi olarak özelliğin sınıfının tam nitelikli adını içeren bir ComposbleTarget ile eşdeğerdir. ComposableTargetMarker kullanımına ilişkin bir örnek için anroidx.compose.ui.UiComposable bölümüne bakın. (I38f11)

Sürüm 1.2.0-alpha03

9 Şubat 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha03 iptal edilir. 1.2.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Bir composable lambda'yı, durumunu ve ilgili düğümleri çağrıldığı yeni konuma taşıyan bir lambda'ya dönüştüren movableContentOf eklendi. Önceki görüşme kompozisyondan ayrıldığında durum geçici olarak korunur. Lambda'ya yeni bir görüşme kompozisyona girdiğinde ise durum ve ilişkili düğümler yeni görüşmenin konumuna taşınır. Yeni bir arama eklenmezse durum kalıcı olarak kaldırılır ve hatırlatma gözlemcilerine bildirim gönderilir.

    Aynı kompozisyonda bir movableContentOf lambda birden fazla kez çağrılırsa her çağrı için yeni durum ve düğümler oluşturulur. Çağrılar kompozisyondan ayrılıp yeni çağrılar girerken durum, çağrılma sırasına göre ilk ayrılan çağrılardan giren çağrılara taşınır. Yeni aramalar tarafından talep edilmeyen tüm durum kalıcı olarak kaldırılır. (Ib4850)

  • Araçların composable işlevlerin daha ayrıntılı izlenmesini sağlamak için kompozisyona izleme API'si eklendi. Derleyici artık kaynak bilgilerini içeren izleme API'si çağrıları oluşturuyor. (Ib0eb5)

    Bu çağrıları ve ilişkili kaynak bilgilerini yayınlanan derlemeden kaldırmak için aşağıdaki ProGuard kuralını ekleyin:

      -assumenosideeffects public class androidx.compose.runtime.ComposerKt {
          boolean isTraceInProgress();
          void traceEventStart(int,java.lang.String);
          void traceEventEnd();
      }
    
  • Yeniden oluşturma sırasında composable'ı tanımlama olanağı veren InternalComposeScope öğesini ekleyin. (I07a3f)

Sürüm 1.2.0-alpha02

26 Ocak 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha02 iptal edilir. 1.2.0-alpha02 sürümü şu commit'leri içerir.

Sürüm 1.2.0-alpha01

12 Ocak 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha01 iptal edilir. 1.2.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Düzen denetçisinde değişmez kimlikler oluşturmak için CompositionData öğesine identity alanı eklendi. (Ic116e)

Bağımlılık Güncellemeleri

  • Artık Kotlin 1.6.10 sürümüne bağlıdır.

Sürüm 1.1

Sürüm 1.1.1

23 Şubat 2022

androidx.compose.runtime:runtime-*:1.1.1 iptal edilir. 1.1.1 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • NullPointerException ile ilgili sorun androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList tarihinde düzeltildi (aosp/1947059, b/206677462)
  • Android'de panodan okuma sırasında panodaki içerikten kaynaklanan kilitlenme sorunu düzeltildi. (I06020, b/197769306)
  • LazyVerticalGrid'da sağdan sola dil desteği düzeltildi (aosp/1931080, b/207510535)

Sürüm 1.1.0

9 Şubat 2022

androidx.compose.runtime:runtime-*:1.1.0 iptal edilir. 1.1.0 sürümü şu commit'leri içerir.

1.0.0 sürümünden beri yapılan önemli değişiklikler

  • Android 12'deki Aşırı kaydırma efekti için kararlı destek
  • Dokunma hedefi boyutlandırmayla ilgili iyileştirmeler
  • Compose 1.0 ile ilgili olarak, Materyal bileşenlerinin dokunma hedefi boyutu için Materyal erişilebilirlik kurallarına uyacak şekilde düzen alanlarını genişleteceğini unutmayın. Örneğin, düğmenin boyutunu daha küçük ayarlasanız bile düğme dokunma hedefi minimum 48x48dp boyutuna genişler. Bu, Compose Material'ı Materyal Tasarım Bileşenleri'nin davranışıyla aynı hale getirerek Görünümler ve Compose'u karıştırdığınızda tutarlı davranış sağlar. Bu değişiklik, Compose Material bileşenlerini kullanarak kullanıcı arayüzünüzü oluşturduğunuzda dokunma hedefi erişilebilirliği için minimum şartların karşılanmasını da sağlar.
  • Gezinme sütunu için kararlı destek
  • Daha önce deneysel olan bazı API'leri kararlı sürüme geçirir.
  • Kotlin'in yeni sürümleri için destek

Sürüm 1.1.0-rc03

26 Ocak 2022

androidx.compose.runtime:runtime-*:1.1.0-rc03 iptal edilir. 1.1.0-rc03 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Compose Material'ı destekleyecek şekilde güncellendi 1.1.0-rc03

Sürüm 1.1.0-rc01

15 Aralık 2021

androidx.compose.runtime:runtime-*:1.1.0-rc01 iptal edilir. 1.1.0-rc01 sürümü şu commit'leri içerir.

Sürüm 1.1.0-beta04

1 Aralık 2021

androidx.compose.runtime:runtime-*:1.1.0-beta04 iptal edilir. 1.1.0-beta04 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Kotlin 1.6.0 ile uyumlu olacak şekilde güncellendi.

Sürüm 1.1.0-beta03

17 Kasım 2021

androidx.compose.runtime:runtime-*:1.1.0-beta03 iptal edilir. 1.1.0-beta03 sürümü şu commit'leri içerir.

Sürüm 1.1.0-beta02

3 Kasım 2021

androidx.compose.runtime:runtime-*:1.1.0-beta02 iptal edilir. 1.1.0-beta02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Anlık görüntü kodu birden fazla dosyaya ayrıldı ancak hepsi aynı JVM sınıfında yer alıyor. (Ic6c98)

Sürüm 1.1.0-beta01

27 Ekim 2021

androidx.compose.runtime:runtime-*:1.1.0-beta01 iptal edilir. 1.1.0-beta01 sürümü şu commit'leri içerir.

Sürüm 1.1.0-alpha06

13 Ekim 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha06 iptal edilir. 1.1.0-alpha06 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Modüller arası çağrılması gereken Composer yöntemlerinden InternalCompilerApi kaldırıldı (I1aa0b)
  • Recomposer.state, türünü StateFlow olarak değiştirmek için desteği sonlandırıldı ve Recomposer.currentState ile değiştirildi (Ic2ab3, b/197773820)

Sürüm 1.1.0-alpha05

29 Eylül 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha05 iptal edilir. 1.1.0-alpha05 sürümü şu commit'leri içerir.

Sürüm 1.1.0-alpha04

15 Eylül 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha04 iptal edilir. 1.1.0-alpha04 sürümü şu commit'leri içerir.

Sürüm 1.1.0-alpha03

1 Eylül 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha03 iptal edilir. 1.1.0-alpha03 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Compose Compiler artık Compose Runtime'ın (1.0) eski sürümlerini destekliyor. Bu değişiklikten önce, Compose Compiler yalnızca aynı sürümdeki veya daha yeni Compose Runtime ile uyumluydu. Bu değişiklikten sonra Compose Compiler, Compose Runtime'ın eski bir sürümüyle (1.0) uyumlu hale gelir. (aosp/1796968)
  • Compose 1.1.0-alpha03, Kotlin 1.5.30'e bağlı olacak şekilde güncellendi. (I74545)

Sürüm 1.1.0-alpha02

18 Ağustos 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha02 iptal edilir. 1.1.0-alpha02 sürümü şu commit'leri içerir.

Sürüm 1.1.0-alpha01

4 Ağustos 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha01 iptal edilir. 1.1.0-alpha01 sürümü şu commit'leri içerir.

Sürüm 1.0

Sürüm 1.0.5

3 Kasım 2021

androidx.compose.runtime:runtime-*:1.0.5 iptal edilir. 1.0.5 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Türetilmiş durum örneklerinin izlenmesi sırasında yaşanan kilitlenme sorunu düzeltildi. (aosp/1792247)

Sürüm 1.0.4

13 Ekim 2021

androidx.compose.runtime:runtime-*:1.0.4 iptal edilir. 1.0.4 sürümü şu commit'leri içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.31 sürümüne bağımlı olacak şekilde güncellendi

Sürüm 1.0.3

29 Eylül 2021

androidx.compose.runtime:runtime-*:1.0.3 iptal edilir. 1.0.3 sürümü şu commit'leri içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.30 sürümüne bağımlı olacak şekilde güncellendi

Sürüm 1.0.2

1 Eylül 2021

androidx.compose.runtime:runtime-*:1.0.2 iptal edilir. 1.0.2 sürümü şu commit'leri içerir.

Compose 1.0.2 sürümünü destekleyecek şekilde güncellendi. Compose 1.0.2, Kotlin 1.5.21 ile uyumluluğunu sürdürüyor.

Sürüm 1.0.1

4 Ağustos 2021

androidx.compose.runtime:runtime-*:1.0.1 iptal edilir. 1.0.1 sürümü şu commit'leri içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.21 sürümüne bağlı olacak şekilde güncellendi.

Sürüm 1.0.0

28 Temmuz 2021

androidx.compose.runtime:runtime-*:1.0.0 iptal edilir. 1.0.0 sürümü şu commit'leri içerir.

1.0.0 sürümünün temel özellikleri

Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Compose Release bloguna göz atın.

Bilinen Sorunlar

  • Android Studio Bumblebee Canary 4 veya AGP 7.1.0-alpha04/7.1.0-alpha05 kullanıyorsanız aşağıdaki kilitlenme hatasıyla karşılaşabilirsiniz:

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    Düzeltmek için build.gradle dosyanızda minSdkVersion'ı geçici olarak 24 veya daha yüksek bir sürüme yükseltin. Bu sorun, Android Studio Bumblebee ve AGP'nin 7.1 bir sonraki sürümünde düzeltilecektir. (b/194289155)

Sürüm 1.0.0-rc02

14 Temmuz 2021

androidx.compose.runtime:runtime-*:1.0.0-rc02 iptal edilir. 1.0.0-rc02 sürümü şu commit'leri içerir.

  • SnapshotStateObserver'daki yarışma koşulları düzeltilerek aralıklı NullPointerException'lar giderildi. (aosp/1763445, aosp/1758105, b/192677711)
  • Çalışma zamanı anlık görüntülerinin java.lang.IllegalStateException: Reading a state that was created after the snapshot was taken or in a snapshot that has not yet been applied kilitlenmelerine neden olmasıyla ilgili sorunlar düzeltildi. (b/193006595, b/192570897)

Sürüm 1.0.0-rc01

1 Temmuz 2021

androidx.compose.runtime:runtime-*:1.0.0-rc01 iptal edilir. 1.0.0-rc01 sürümü şu commit'leri içerir.

Sürüm 1.0.0-beta09

16 Haziran 2021

androidx.compose.runtime:runtime-*:1.0.0-beta09 iptal edilir. 1.0.0-beta09 sürümü şu commit'leri içerir.

Eklenen profil kuralları

Bu sürüm, aşağıdaki Compose modüllerine profil kuralları ekler (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

Profil kuralları nedir?

  • Bir kitaplığın profil kuralları, src/main veya eşdeğer dizinde bulunan baseline-prof.txt adlı bir metin dosyasında belirtilir. Dosyada her satırda bir kural belirtilir. Bu durumda kural, kitaplıktaki yöntemlerle veya sınıflarla eşleşme için kullanılan bir kalıptır. Bu kuralların söz dizimi, adb shell profman --dump-classes-and-methods ... kullanılırken kullanılan okunabilir ART profili biçiminin üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini alır.

  • Bir yöntem kuralı aşağıdaki kalıba sahip olur:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • Sınıf kuralı ise aşağıdaki kalıba sahip olur:

    <CLASS_DESCRIPTOR>
    
  • Burada <FLAGS>, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmeyeceğini belirtmek için kullanılan H, S ve P karakterlerinden bir veya daha fazlasıdır.

  • <CLASS_DESCRIPTOR>, hedeflenen yöntemin ait olduğu sınıfın tanımlayıcısıdır. Örneğin, androidx.compose.runtime.SlotTable sınıfının tanımlayıcısı Landroidx/compose/runtime/SlotTable; olur.

  • <METHOD_SIGNATURE>, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve dönüş türlerini içerir. Örneğin, LayoutNode üzerindeki fun isPlaced(): Boolean yönteminin imzası isPlaced()Z'dir.

  • Bu kalıplar, tek bir kuralın birden fazla yöntemi veya sınıfı kapsaması için joker karakterler (**, * ve ?) içerebilir.

Kurallar ne işe yarar?

  • H işaretine sahip bir yöntem, bu yöntemin "sık kullanılan" bir yöntem olduğunu ve önceden derlenmesi gerektiğini gösterir.

  • S işaretine sahip bir yöntem, başlangıçta çağrılan bir yöntem olduğunu gösterir. Bu yöntemin, başlangıçta derleme ve yorumlama maliyetini önlemek için önceden derlenmesi gerekir.

  • P işaretine sahip bir yöntem, başlatma işleminden sonra çağrılan bir yöntem olduğunu gösterir.

  • Bu dosyada bulunan bir sınıf, başlangıç sırasında kullanıldığını ve sınıf yükleme maliyetini önlemek için yığında önceden ayrılması gerektiğini gösterir.

Nasıl çalışır?

  • Kitaplıklar, AAR yapılarında paketlenecek bu kuralları tanımlayabilir. Bu yapıtları içeren bir uygulama oluşturulduğunda bu kurallar birleştirilir ve birleştirilmiş kurallar, uygulamaya özgü kompakt bir ikili ART profili oluşturmak için kullanılır. ART, uygulama cihazlara yüklendiğinde bu profilden yararlanarak uygulamanın belirli bir alt kümesini önceden derleyebilir. Bu sayede uygulamanın performansını, özellikle de ilk çalıştırma performansını artırabilir. Bunun hata ayıklanabilir uygulamalar üzerinde hiçbir etkisi olmayacağını unutmayın.

Sürüm 1.0.0-beta08

2 Haziran 2021

androidx.compose.runtime:runtime-*:1.0.0-beta08 iptal edilir. 1.0.0-beta08 sürümü şu commit'leri içerir.

API Değişiklikleri

  • State<T> artık State<out T> (I69049)
  • ControlledComposition Tek bir yeniden oluşturma geçişinde değişikliklerin yeniden oluşturulmasını sağlayan API değişikliği. (Iaafd1, b/184173932)

Sürüm 1.0.0-beta07

18 Mayıs 2021

androidx.compose.runtime:runtime-*:1.0.0-beta07 iptal edilir. 1.0.0-beta07 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Derleyici tarafından oluşturulan kaynak bilgilerinin kaynak küçültme sırasında kaldırılmasına olanak tanıyan yeni Compose derleyici API'leri eklendi. (Ia34e6)
  • Anahtar değiştirildiğinde içeriklerdeki düğümleri değiştirmek yerine yeniden kullanmayı deneyen ReusableContent özelliğini kullanıma sunar. Anahtar değiştirildiğinde, oluşturulan düğümler ve düğümleri güncellemek için kullanılan değerler hariç olmak üzere içerik için yuva tablosundaki önceki değerler yoksayılır.

    ReusableComposeNode işlevi kullanıma sunuluyor. Bu işlev, ComposeNode işlevinde olduğu gibi yayımlanan düğümü değiştirmek yerine yeniden kullanır. (I1dd86)

  • @ComposeCompilerApi artık @RequiresOptIn değil (Iab690)

Hata Düzeltmeleri

  • LazyColumn/Row, kaydırılarak görünürlükten çıkmış olsalar bile daha önce görünür olan 2 öğeyi etkin (kaldırılmamış) tutar. Bu sayede, yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt bileşenleri yeniden kullanmasına olanak tanınır ve kaydırma performansı iyileştirilir. (Ie5555)

Sürüm 1.0.0-beta06

5 Mayıs 2021

androidx.compose.runtime:runtime-*:1.0.0-beta06 iptal edilir. 1.0.0-beta06 sürümü şu commit'leri içerir.

API Değişiklikleri

  • @ComposeCompilerApi artık @RequiresOptIn değil (Iab690)

Sürüm 1.0.0-beta05

21 Nisan 2021

androidx.compose.runtime:runtime-*:1.0.0-beta05 iptal edilir. 1.0.0-beta05 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Kayıt anlık görüntü okuma ve yazma işlemleri için @InternalComposeApi kaldırıldı (Id134d)

Hata Düzeltmeleri

  • ui-test-manifest ve ui-tooling-data'daki AndroidManifest dosyaları artık Android 12 ile uyumlu (I6f9de, b/184718994)

Sürüm 1.0.0-beta04

7 Nisan 2021

androidx.compose.runtime:runtime-*:1.0.0-beta04 iptal edilir. 1.0.0-beta04 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Bu değişiklikten önce, yerel birleştirilebilir işlevler parametrelerine göre atlanabiliyordu. Bu değişiklikten sonra hiçbir yerel composable işlevi atlanmayacak. Bu değişiklik, yerel işlevlerin üst öğeden parametreleri alması ve bunları atlamanın yaygın bir hata kaynağı olması nedeniyle yapılmıştır.

    Özetlemek gerekirse şu örneği inceleyin:

    @Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) {
      @Composable fun ShowCount() { Text("Count: $count") }
      ShowCount()
      Button(onClick={ onCountChange(count + 1) }) {
        Text("Increment")
      }
    }
    

    Bu değişiklikten önce, ShowCount composable işlevi, count parametresi güncellendikten sonra bile her zaman atlanıyordu. Bu durum artık geçerli değil. (I5648a)

  • rememberSaveable(), giriş parametreleriyle (I1b110, b/182403380) kullanıldığında eski değeri geri yükleme sorunu düzeltildi.

Sürüm 1.0.0-beta03

24 Mart 2021

androidx.compose.runtime:runtime-*:1.0.0-beta03 iptal edilir. 1.0.0-beta03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • DefaultMonotonicFrameClock kullanımdan kaldırıldı. withFrameNanos veya Recomposer.runRecomposeAndApplyChanges ile MonotonicFrameClock olmadan yapılan aramalar artık IllegalStateException hatası verecek. (I4eb0d)

Sürüm 1.0.0-beta02

10 Mart 2021

androidx.compose.runtime:runtime-*:1.0.0-beta02 iptal edilir. 1.0.0-beta02 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Deneysel API'lerin herkese açık kullanımına kısıtlamalar getirme (I6aa29, b/174531520)
  • navigation-compose hedefinde kullanıldığında bozuk olan rememberSaveable { mutableStateOf(0) } düzeltildi. (I1312b, b/180042685, b/180701630)

Sürüm 1.0.0-beta01

24 Şubat 2021

androidx.compose.runtime:runtime-*:1.0.0-beta01 iptal edilir. 1.0.0-beta01 sürümü şu commit'leri içerir.

Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.

API Değişiklikleri

  • Recomposer.runRecomposeConcurrentlyAndApplyChanges Ana çerçeve döngüsünün dışında geçersiz kılınan kompozisyonları yeniden oluşturmak için deneysel API'yi ekleyin. (I342d0)
  • @ReadOnlyComposable ile işaretlenen tüm composable'lar artık yalnızca diğer @ReadOnlyComposable'lara çağrı yapmalarını sağlamak için derleme zamanında doğrulanıyor (I58961).
  • compositionLocalOf ve staticCompositionLocalOf için defaultFactory artık isteğe bağlı değil, zorunlu.

    Bu değişiklik, varsayılan fabrika sağlanmayan, boş değer atanamayan türlerdeki olası bir tür hatasını ortadan kaldırır. Daha önce bu, boş değer atanamayan bir tür için boş referans sağlıyordu.

    Boş değer atanabilir türler için varsayılan fabrika olarak { null } değerini sağlamayı düşünebilirsiniz.

    Anlamlı bir varsayılan değer sağlanmadığı sürece, null değer içermeyen türlerle yerel ayarların kullanılmasını önermiyoruz. Mantıklı bir varsayılan değer yoksa defaultFactory lambda bir istisna oluşturmalıdır. Ancak bir istisna oluşturmak, yerel ayarın tüketicilerinin, tür sistemi tarafından zorunlu kılınmayan bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)

  • Kullanımdan kaldırılan semboller, Compose çalışma zamanından kaldırıldı (I3252c).

  • Artık kullanılmayan emptyContent() kaldırıldı. Bunun yerine {} politikasını kullanın. (Idb33f, b/179432510)

  • Providers, CompositionLocalProvider olarak yeniden adlandırıldı.

    • Composition oluşturucusu artık anahtar parametresini kabul etmiyor ve kullanımdan kaldırıldı.
    • currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey özelliğe dönüştürüldü.
    • CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı.
    • ComposableLambda, somut bir sınıf yerine arayüz haline getirildi ve artık tür parametreleri içermiyor.
    • ComposableLambdaN, somut bir sınıf yerine arayüz haline getirildi ve artık tür parametreleri yok.
    • snapshotFlow işlevi androidx.compose.runtime ad alanına taşındı
    • SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değildir.
    • @TestOnly üst düzey clearRoots işlevi kaldırıldı. Artık gerekli değil.
    • keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Artık gerekli değildir.
    • Composer.collectKeySourceInformation kaldırıldı. Artık gerekli değil.
    • isJoinedKey, joinedKeyLeft ve joinedKeyRight yöntemleri kaldırıldı. Artık gerekli değildir.
    • Çeşitli üst düzey API'ler farklı dosyalara taşındı ve yeniden düzenlendi. Kotlin'in dosya sınıfı semantiği nedeniyle bu durum, ikili uyumluluğu bozacak ancak kaynak uyumluluğunu bozmayacaktır. Bu nedenle, çoğu kullanıcı için sorun teşkil etmez.
    • (I99b7d, b/177245490)
  • SnapshotStateObserver artık deneysel değil (Id2e6a)

  • Daha önce desteği sonlandırılan bazı API'ler silindi (Ice5da, b/178633932).

  • Material API'de aşağıdaki değişiklikler yapıldı:

    • Varsayılan dolguyu özelleştirmeye olanak tanımak için Top/BottomAppBar'a contentPadding parametresi eklendi.
    • Gerekli parametrelerin isteğe bağlı parametrelerden önce gelmesiyle ilgili API yönergelerine uymak için BackdropScaffold'daki parametreler yeniden sıralandı.
    • BottomNavigationItem'daki icon parametresi, selected ve onClick sonrasına taşındı.
    • BottomNavigationItem'daki alwaysShowLabels parametresi alwaysShowLabel olarak yeniden adlandırıldı.
    • Birkaç bileşendeki bodyContent parametreleri content olarak yeniden adlandırıldı.
    • ButtonDefaults.buttonColors() içindeki parametreler yeniden sıralandı. Parametrelerin türü değişmediğinden kodunuzda hataya neden olmayacağını lütfen unutmayın. Adlandırılmış parametreler kullandığınızdan veya sıralamayı manuel olarak güncellediğinizden emin olun. Aksi takdirde kodunuz eskisi gibi çalışmaz.
    • darkColors() listesine secondaryVariant parametresi eklendi. Bu renk genellikle koyu temada secondary ile aynıdır ancak tutarlılık ve daha fazla özelleştirme için eklenmiştir.
    • Yaygın olarak kullanılmadıkları / faydalı olmadıkları için ElevationDefaults ve animateElevation() işlevleri herkese açık API yüzeyinden kaldırıldı.
    • Slider içindeki onValueChangeEnd, onValueChangeFinished olarak yeniden adlandırıldı ve boş değer atanabilir hâle getirildi.
    • Tutarlılık için Snackbar içindeki text parametresi content olarak yeniden adlandırıldı.
    • Varsayılan dolguyu özelleştirmeye olanak tanımak için contentPadding parametresi DropdownMenuItem'ye eklendi ve content, RowScope'ün uzantısı olarak ayarlandı.
    • ModalDrawerLayout, ModalDrawer olarak yeniden adlandırıldı.
    • BottomDrawerLayout, BottomDrawer olarak yeniden adlandırıldı.
    • (I1cc66)

Sürüm 1.0.0-alpha12

10 Şubat 2021

androidx.compose.runtime:runtime-*:1.0.0-alpha12 iptal edilir. 1.0.0-alpha12 sürümü şu commit'leri içerir.

API Değişiklikleri

  • ViewGroups desteği UiApplier'dan kaldırıldı. Kullanımdan kaldırılan emitView composable'ları kaldırıldı. (Ifb214)
  • CompositionReference, CompositionContext olarak yeniden adlandırıldı (I53fcb)
  • ComponentActivity.setContent, androidx.activity:activity-compose modülünde androidx.activity.compose.setContent'e taşındı. (Icf416)
  • Snapshot API, API yönergesiyle daha tutarlı olacak şekilde güncellendi ve dahili uygulama sınıfları genel API'den gizlendi. (Id9e32)
  • Ambients, Ambient -> CompositionLocal yeniden adlandırmasıyla eşleşecek şekilde yeniden adlandırıldı. Ambients, AmbientFoo olarak adlandırılırdı. Artık CompositionLocals, LocalFoo olarak adlandırılıyor. (I2d55d)
  • Ambient, CompositionLocal olarak, ambientOf / staticAmbientOf ise sırasıyla compositionLocalOf / staticCompositionLocalOf olarak yeniden adlandırıldı. Bu değişiklik, CompositionLocal'in amacını daha net hale getirir: bir kompozisyona yerel değerler sağlama / alma mekanizması. CompositionLocal örneklerinin önüne Local eklenmelidir. Örneğin, val LocalFoo = compositionLocalOf { Foo() }. (Ia55b6)
  • takeMutableSnapshot ve takeSnapshot, Snapshot'ın yardımcı yöntemleri olarak taşındı. (I91f19)
  • @ComposableContract, daha ayrıntılı üç ek açıklama lehine kullanımdan kaldırıldı.

    @ComposableContract(restartable = false), @NonRestartableComposable oldu. @ComposableContract(readonly = true), @ReadOnlyComposable oldu. @ComposableContract(preventCapture = true), @DisallowComposableCalls oldu. @ComposableContract(tracked = true) kaldırıldı. (I60a9d)

  • emptyContent() ve (@Composable () -> Unit).orEmpty() yardımcı programları, artık olumlu bir performans etkisi veya değeri olmadığından kullanımdan kaldırıldı (I0484d).

  • snapshotFlow ve withMutableSnapshot artık deneysel değil (I6a45f)

  • Yeniden oluşturucular artık kapatılabilir. Kapalı yeniden oluşturucular, alt bileşen oluşturma işlemleri tamamlanana kadar yeniden oluşturmaya devam eder. Recomposer.shutDown, kapatma ile karşıtlık oluşturması için iptal olarak yeniden adlandırıldı. (Ib6d76)

  • compose:runtime-dispatch yapay nesnesinin desteği sonlandırıldı. MonotonicFrameClock artık compose:runtime içinde, AndroidUiDispatcher ise compose:ui içinde bulunabilir. (Ib5c36)

  • Compose derleyici eklentisinin hedeflediği API, somut bir sınıf yerine arayüz kullanacak şekilde yeniden düzenlendi. Arayüzde artık tür parametresi de kullanılmıyor.

    Bu, kaynak kodu uyumluluğunu etkilememesi gereken ancak ikili programı bozan bir değişikliktir. (I3b922, b/169406779)

  • SnapshotMutableState kullanıma sunuldu (Icfd03)

  • DisposableEffectDisposable, DisposaleEffectResult olarak yeniden adlandırıldı (Ica7c6)

  • Recomposer.current() kaldırıldı. [Abstract]ComposeView artık pencere için ViewTreeLifecycleOwner tarafından yönlendirilen, pencere kapsamlı ve geç oluşturulan Recomposer'ları varsayılan olarak kullanır. Ana makinenin yaşam döngüsü durdurulduğunda yeniden oluşturma ve withFrameNanos tabanlı animasyon işaretleri duraklatılır. (I38e11)

  • Recomposer.runningRecomposers artık işlemdeki devam eden kompozisyon durumunu gözlemlemek için salt okunur RecomposerInfo'nun genel bir StateFlow'unu sunuyor. Şu anda desteği sonlandırılmış olan Recomposer.current() yerine bu API'yi tercih edin. (If8ebe)

  • DisposableEffectDisposable, DisposaleEffectResult olarak yeniden adlandırıldı (I3ea68).

Sürüm 1.0.0-alpha11

28 Ocak 2021

androidx.compose.runtime:runtime-*:1.0.0-alpha11 iptal edilir. 1.0.0-alpha11 sürümü şu commit'leri içerir.

API Değişiklikleri

  • onCommit, onDispose ve onActive, SideEffect ve DisposableEffect API'leri lehine kullanımdan kaldırıldı (If760e).
  • emit() API'si ve tüm aşırı yüklemeler kullanımdan kaldırıldı ve ComposeNode olarak yeniden adlandırıldı. API'ler aynıdır. Yalnızca Compose'un adlandırma kurallarına uymak için farklı bir ad kullanılmıştır (I4137b).
  • invalidate ve compositionReference() işlevlerinin desteği, sırasıyla currentRecomposeScope ve rememberCompositionReference işlevleri lehine sonlandırıldı. (I583a8)
  • RememberObserver, CompositionLifecycleObserver'ın yerini alır ve CompositionLifecycleObserver artık kullanımdan kaldırılmıştır.

    RememberObserver, değiştirilmiş anlamsal yapıya ve yeniden adlandırılmış yöntemlere sahip CompositionLifecycleObserver yerine kullanılır. Yeni API'ye geçiş, yalnızca bir kez hatırlanan nesneler için mekanik olarak yapılabilir. Bu, önerilen uygulamadır ve olmaya devam edecektir. Ancak bir kompozisyonda bir referans birden fazla kez hatırlanırsa onRemembered, onEnter yalnızca bir kez çağrılırken her referans için çağrılır. onEnter Nesne, WithConstraints ve Scaffold gibi alt bileşimlerde kullanılıyorsa birden çok kez çağrılıyordu. Bu durum, tek onEnter çağrısı garantisini güvenilmez hale getiriyordu ve RememberObserver için kaldırıldı.

    RememberObserver, remember'ye iletilen geri çağırmadan RememberObserver örneği döndürülürse ancak beste durumunda hatırlanmazsa çağrılan onAbandoned'ı ekler ve bu nedenle hiçbir zaman onRemembered çağrılmaz. Bu durum, bir istisna beste tamamlanmadan önce sonlandırırsa veya beste, durum artık geçerli olmadığı ya da başka bir nedenle artık gerekli olmadığı için atılırsa oluşabilir. Yukarıdaki tek referans önerisini izleyen RememberObserver örneği harici bir kaynağı izliyorsa hem onForgotten hem de onAbandoned, kaynağın artık gerekli olmadığını gösterir. Nesne, onRemembered içinde başlatılan çalışmaları veya ayrılan kaynakları izliyorsa onRemembered çağrıldığında çağrılmayacağından onAbandoned yoksayılabilir. (I02c36)

  • collectAsState() işlevlerini satır içi olarak işaretlemeyin (Ia73e4)

Hata Düzeltmeleri

  • WithConstraints, BoxWithConstraints olarak yeniden düzenlendi ve foundation.layout'a taşındı. (I9420b, b/173387208)
  • Testlerde TestCoroutineDispatcher'dan yararlanma (I532b6)

Sürüm 1.0.0-alpha10

13 Ocak 2021

androidx.compose.runtime:runtime-*:1.0.0-alpha10 iptal edilir. 1.0.0-alpha10 sürümü şu commit'leri içerir.

Zarar Veren Değişiklik (Breaking Change)

  • Dahili derleyici API'sinin yeniden yapılandırılması, tüm @Composable işlevleri tamamlandıktan sonra, bileşim sonucunda oluşturulan düğümlerdeki değişikliklerin bileşimin "değişiklikleri uygula" aşamasında toplu olarak işlenmesine olanak tanır.

    Bu, davranışsal bir değişikliktir ve değişiklikler uygulanana kadar düğümler dahili ve deneysel API'lerden kullanılamayacağından uygulama kodunu etkileyebilir. Bu sorun genellikle, düğümler oluşturulup başlatılana kadar kodun yürütülmesini ertelemek için bu tür bağımlılıkları olan kodu SideEffect composable'ına alarak çözülebilir. (I018da)

API Değişiklikleri

  • Yeniden oluşturucunun değişiklikleri uygulayıp uygulamadığını izleme yöntemi eklendi. (I1b3e2)
  • [Abstract]ComposeView API'lerini, Compose tabanlı görünümlerin geri dönüştürülmesine, kompozisyonlarının daha sonra yeniden oluşturulmak üzere kaldırılmasına olanak tanıyacak şekilde genişletin. Pencere kapsamlı yeniden oluşturucuları yükleme ve keşfetme ile alt bileşimler oluşturmak için CompositionReference'ları keşfetme API'leri eklendi.

    [Abstract]ComposeViews'in bileşim imha stratejisini yapılandırmak için ViewCompositionStrategy ekleyin. Varsayılan davranış, pencere ayrıldığında imha etmektir. (I860ab)

Hata Düzeltmeleri

  • Recomposer artık mevcut durumunun bir akışını göstererek etkinliğinin ve ilişkili efektlerin etkinliğinin izlenmesine olanak tanıyor. (Ifb2b9)
  • Yerel keyEvent'e artık keyEvent.nativeKeyEvent üzerinden erişilebilir (I87c57, b/173086397).

Sürüm 1.0.0-alpha09

16 Aralık 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha09 iptal edilir. 1.0.0-alpha09 sürümü şu commit'leri içerir.

API Değişiklikleri

  • SlotTable, SlotReader ve SlotWriter, genel API'den kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretleniyordu. Artık bu seçenekler, e-posta oluşturma modülünde yer alıyor.

    Bileşen bilgilerini ayıklamak için kullanılan ui-tooling API'nin yerine CompositionData ve CompositionGroup eklendi. Bunlar herkese açıktır ancak kullanıcı arayüzü araçları API'sinin yorumladığı ham bilgileri sağladıkları için (I31a9c) kullanıcı arayüzü araçları API'si dışında kullanılmak üzere tasarlanmamıştır.

  • Uygulayan sınıfı artık (Id85b0) olarak kabul edilmiyor.

  • Applier arayüzü, ağaç oluşturmayı yukarıdan aşağıya yerine aşağıdan yukarıya doğru basitleştirecek şekilde değiştirildi.

    insert() yöntemi, insertTopDown() olarak yeniden adlandırıldı.

    insertBottomUp() adlı yeni bir yöntem eklendi.

    Bir uygulayıcı, hangi yöntemin daha iyi performans gösterdiğine bağlı olarak insertTopDown() veya insertBottomUp() kullanarak düzenlediği ağaca düğümler ekler.

    LayoutNode ve View gibi bazı ağaçlar, yukarıdan aşağıya yerine aşağıdan yukarıya doğru oluşturulduğunda çok daha verimli olur. Bu değişiklikten önce, alttan üste doğru yapıyı uygulamak için bir ekleme yığını gerekiyordu. Bu yığının, performans için alttan üste doğru yapıya ihtiyaç duyan her uygulayıcıya kopyalanması gerekiyordu. Bu değişiklikle birlikte, ağacı aşağıdan yukarıya doğru oluşturmak için Applier, ağacı yukarıdan aşağıya doğru oluşturmak için insertTopDown() kullanılır.insertBottomUp() (Icbdc2)

  • Compose, birleştirilebilir çağrılar yapabilen mülk getter'larını destekler. Bu özellik desteklenmeye devam edecek ancak bir mülk alıcısını @Composable olarak bildirme söz dizimi değişiyor.

    Bunu yapmak için kullanılan ve artık kullanımdan kaldırılan söz dizimi, mülkün kendisini açıklama olarak eklemekti:

        @Composable val someProperty: Int get() = ...
    

    Bunu yapmak için artık doğru olan söz dizimi, özelliğin alıcı yöntemini açıklama ekleyerek yapmaktır:

       val someProperty: Int @Composable get() = ...
    

    Her iki söz dizimi de bir süre çalışmaya devam edecek ancak kullanımdan kaldırılan söz dizimi sonunda derleme hatasına dönüşecek. (Id9197)

Hata Düzeltmeleri

Sürüm 1.0.0-alpha08

2 Aralık 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha08 iptal edilir. 1.0.0-alpha08 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Composable lambda parametre adlandırma ve konumlandırması için lint kontrolü eklendi. Bu kontrol, Compose yönergeleriyle tutarlılığı kontrol eder. Ayrıca, lint kontrolü ve yönergelere göre, sondaki lambda'ları için ad olarak children kullanan bazı API'ler content olarak taşındı. (Iec48e)
  • Recomposer artık EmbeddingContext'i kabul etmiyor. Gerekli planlama bağımlılıkları, effectCoroutineContext'ten alınıyor. FrameManager'ın desteği sonlandırıldı. Platform entegrasyonları kendi genel anlık görüntü işlemelerini başlatmalıdır. (I02369)
  • RestorableStateHolder.withRestorableState işlevi, RestorableStateProvider olarak yeniden adlandırıldı (I66640).

Hata Düzeltmeleri

  • Sona Ambient eklenerek adlandırılan, kullanımdan kaldırılan Ambients'leri, diğer Ambients'ler ve Compose API yönergelerine uygun olarak Ambient ile başlayan yeni özelliklerle değiştirdi. (I33440)
  • Eski ui-test modülünü ve saplarını kaldırın (I3a7cb)

Sürüm 1.0.0-alpha07

11 Kasım 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha07 iptal edilir. 1.0.0-alpha07 sürümü şu commit'leri içerir.

Yeni Özellikler

API Değişiklikleri

  • @UnionType ek açıklaması kullanımdan kaldırıldı (I57cde)
  • provideDefault, ambiyans sağlamak için provide'a alternatif olarak eklendi ve yalnızca önceden sağlanmış bir ambiyans değeri olmadığında ayarlanacak ambiyans değerlerini belirtmek için kullanılabilir. (Id6635, b/171024925)
  • LaunchedTask, SideEffect ve DisposableEffect API'leriyle tutarlılık sağlamak için LaunchedEffect olarak yeniden adlandırıldı. En iyi uygulamaları teşvik etmek için konu parametreleri olmayan LaunchedEffect'e izin verilmez. (Ifd3d4)
  • Applier artık Composer, ağaçta değişiklik uygulamaya başladığında/değişiklik uygulamayı bitirdiğinde çağrılan onBeginChanges/onEndChanges geri çağırma işlevlerine sahiptir. Gerekirse kaynak yönetimini gruplandırmak için kullanılabilir. (Icf476)
  • Recomposer artık oluşturma sırasında CoroutineContext gerektiriyor (Ic4610)
  • Herkese açık API'yi etkilememesi gereken dahili SlotTable uygulamasında yapılan değişiklikler. (If9828)
  • Başlangıç değerini almayan, desteği sonlandırılmış rxjava2 bağdaştırıcıları kaldırıldı (Idb72f).

Hata Düzeltmeleri

  • foundation.Text artık kullanılmıyor ve yerine material.Text kullanılıyor. Bir temadan değer kullanmayan temel ve tarafsız bir metin API'si için androidx.compose.foundation.BasicText'e bakın. (If64cb)
  • BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField'ı kullanın. (I896eb)
  • Düzenle ilgili çeşitli semboller androidx.compose.ui'den androidx.compose.layout.ui'ye taşındı. (I0fa98, b/170475424)

Harici Katkı (External Contribution)

  • Oluşturma için runtime-rxjava3 modülü eklendi. runtime-rxjava2 ile benzer (I02cbf)

Sürüm 1.0.0-alpha06

28 Ekim 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha06 iptal edilir. 1.0.0-alpha06 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Recomposer artık bir CompositionReference ve geçerli bir kompozisyon üst öğesidir. Açıkça yeniden oluşturma artık daha az yerde zorunlu. (I4036f)
  • SideEffect'e DisposableEffect karşılığı olan API eklendi. Bu API, onCommit-with-params işlevini yerine getirir ancak onDispose gerektirir.
    • Yeniden oluşturma işleminden elde edilen verileri DisposableEffect veya LaunchedTask gibi devam eden ya da uzun süren işlemlere yayınlamak için rememberUpdatedState API'si eklendi.
    • (Id50b9)
  • MutableVector artık RandomAccess'i uyguluyor (I85d73, b/170461551)
  • Kompozisyonun yan etkilerini kompozisyon tarafından yönetilen nesnelere uygulamak için SideEffect composable'ı eklendi. SideEffect, onCommit composable'ın yerini alması için tasarlanmıştır. (Ia77c2)
  • Yeni deneysel API RestorableStateHolder. [savedInstanceState] ve [rememberSavedInstanceState] ile tanımlanan durumu, alt ağacı silmeden önce kaydetmenize olanak tanır. Böylece, bir sonraki sefer geri yüklenen durumla yeniden oluşturabilirsiniz. (I66884, b/166586419)

Hata Düzeltmeleri

  • ComposeTestRule'da geçişleri etkinleştirin. Yanıp sönen imleci etkinleştirme seçeneğini ComposeTestRule'dan kaldırın. (If0de3)

Sürüm 1.0.0-alpha05

14 Ekim 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha05 iptal edilir. 1.0.0-alpha05 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Deneysel Modifier.pointerInput giriş değiştiriciyi askıya alıyor (Ia77d2)
  • LazyColumn/Row'un kaydırma performansı, her kaydırmada alt bileşen oluşturma işleminde daha az iş yapılarak iyileştirilir. Composition sınıfı için yeni hasInvalidations() yöntemi eklendi. Recomposer'daki hasPendingChanges() yöntemi hasInvalidations() olarak yeniden adlandırıldı (Ib2f32, b/168293643, b/167972292, b/165028371).
  • Tek bir State<T> değerini zaman içinde güncelleyen bestelemelerden coroutine'leri başlatmak için produceState API'yi ekleyin (Id4a57).
  • launchInComposition, Compose API yönergeleriyle eşleşmesi için LaunchedTask olarak yeniden adlandırıldı (I99a8e).
  • Özel düzenlerdeki place() çağrılarının sırası artık alt öğelerin çizim sırasını tanımlıyor (Ibc9f6)

Sürüm 1.0.0-alpha04

1 Ekim 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha04 iptal edilir. 1.0.0-alpha04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Geçerliliğini yitirdikten sonra düzen ve çizim gözlem kapsamlarının toplanmasına izin vermek için OwnerScope eklendi. (Ic4cf8)
  • Diğer durum nesnelerini okuyabilen (ve bunlardan türetilebilen) bir hesaplamaya dayalı durum nesneleri oluşturmak için derivedStateOf API'si eklendi (If758b).
  • SnapshotStateObserver için TestOnly API eklendi (I6e2a9)

Hata Düzeltmeleri

  • foundation.Box desteği sonlandırıldı. Lütfen bunun yerine foundation.layout.Box kullanın. (Ie5950, b/167680279)

Sürüm 1.0.0-alpha03

16 Eylül 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha03 iptal edilir. 1.0.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • CompositionCoroutineScope artık MonotonicFrameClock uygulamıyor. withFrameNanos işlevini çağıranlar, üst düzey işlevi açıkça içe aktarmalıdır. (Icb642, b/166778123)

Hata Düzeltmeleri

  • onNode veya waitForIdle gibi genel test işlevlerinin desteği sonlandırıldı. Lütfen ComposeTestRule'da (I7f45a) tanımlanan yeni karşılıklarına geçin.
  • launchInComposition artık gönderilmeyen eş yordamları başlatmıyor (Ief6af, b/166486000)

Sürüm 1.0.0-alpha02

2 Eylül 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha02 iptal edilir. 1.0.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Anlık görüntü verilerindeki değişiklikleri kullanmak ve oluşturmak için snapshotFlow ve withMutableSnapshot API'lerini ekleyin. (I3e722)
  • Birleştirilebilir işlevlerin çağrı kuralı değişti. Bu, ikili bir zarar veren değişikliktir. Tüm kitaplıkların, Compose derleyici eklentisinin bu sürümüyle çalışması için yeniden derlenmesi gerekir.

    Bu değişiklik, yalnızca açıkça etkinleştirilen derleyici API'leri değiştiği için kaynak düzeyinde bir hataya neden olmaz. (I7afd2, b/158123185)

  • EmbeddingContext'ten planlama yöntemleri kaldırıldı (I7b9be)

  • onPreCommit kullanımdan kaldırıldı. onCommit artık onPreCommit'in davranışına sahip.

    onCommit ve onActive artık kompozisyon değişikliklerinin işlendiği koreograf çerçevesinde (bir sonraki koreograf çerçevesinin başında değil) çalışıyor. (I70403)

Sürüm 1.0.0-alpha01

26 Ağustos 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha01 iptal edilir. 1.0.0-alpha01 sürümü şu commit'leri içerir.

Sürüm 0.1.0-dev

Sürüm 0.1.0-dev17

19 Ağustos 2020

androidx.compose.runtime:runtime-*:0.1.0-dev17 iptal edilir. 0.1.0-dev17 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Özel yayınlar artık ayarlayıcılarından bir veya daha fazlasının atlanabileceğini ve yayından bağımsız olarak yeniden oluşturulabileceğini belirtebilir. (Ibbd13)
  • Desteği sonlandırılan FrameManager çağrıları kaldırıldı.

    Dahili Compose API'leri, mutableStateof() gibi durum nesnelerini izlemek için gereken ek yükü azaltacak şekilde değiştirildi (I80ba6).

  • state { ... } composable'ı, netlik için artık remember { mutableStateOf(...) }'e yapılan açık çağrılar lehine kullanımdan kaldırıldı. Bu, durum yönetimi için genel API yüzeyini ve kavram sayısını azaltır ve sınıf özelliği temsilcisi için by mutableStateOf() modeliyle eşleşir. (Ia5727)

  • Flow.collectAsState artık varsayılan olarak Dispatchers.Main'i kullanmak yerine varsayılan dağıtıcıyı kompozisyonun kendisinden belirler. (I9c1d9)

  • Durumu kaydeden bir şey for döngüsünde kullanıldığında kilitlenme sorunu düzeltildi. Artık savedInstanceState() içinde aynı anahtarın bulunmasına izin veriliyor. Bu nedenle, UiSavedStateRegistry'nin API'si bu yeni koşula göre ayarlandı (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561).

Hata Düzeltmeleri

  • emitView desteği sonlandırıldı. Compose'da Görünümler yayınlamak için mümkünse AndroidView kullanın. Görünümlerin ve ViewGroup'ların doğrudan oluşturulmasının, oluşturma ağacında yaprak olmadığı sürece gelecekte desteklenmeyeceğini unutmayın. Bu durumda, AndroidView kullanılarak bu işlem gerçekleştirilebilir. (I29b1e, b/163871221)

Sürüm 0.1.0-dev16

5 Ağustos 2020

androidx.compose.runtime:runtime-*:0.1.0-dev16 iptal edilir. 0.1.0-dev16 sürümü şu commit'leri içerir.

API Değişiklikleri

  • mutableStateOf(), ambientOf() ve savedInstanceStateOf() için varsayılan mutasyon politikası referentialEqualityPolicy() yerine structuralEqualityPolicy() olarak değiştirildi.

    Bir mutableStateOf() örneğine atanan yeni bir değerin artık değişiklik olarak kabul edilip edilmeyeceğine karar vermek için varsayılan olarak === yerine == kullanılır.

    https://kotlinlang.org/docs/reference/equality.html adresini ziyaret edin.

    ambientOf() ve savedInstanceStateOf(), uygulamalarında mutableStateOf() kullandığından mutableStateOf() ile tutarlı olacak şekilde değiştirildi.

    Yapısal eşitliği kullanmak, geliştiricilerin beklentilerini daha iyi karşılar.

    Örneğin,

    val state = mutableStateOf(1f)
    

    ardından

    state.value = 1f
    

    artık state değişikliği olarak kabul edilmeyecek ve beste oluşturma sırasında state kullanımlarının yeniden oluşturulması gerekmeyecek.

    Bu, önemli bir değişikliktir ancak çoğu durumda (ör. equals() öğesini geçersiz kılmayan sınıflar kullanılırken) uygulamanın fark edilebilir bir etkisi olmaz.

    equals()'yı geçersiz kılan sınıflar (ör. data sınıfları), equals() yöntemleri artık varsayılan olarak bir mutableStateOf()'ye atandığında çağrıldığından performans düşüşü yaşayabilir.

    Önceki davranış, mutableStateOf(), ambientOf() ve savedInstanceStateOf() çağrılarına politika parametresi policy = referentialEqualityPolicy() eklenerek geri yüklenebilir. (Ic21a7)

  • Row ve Column artık satır içi işlevler olduğundan bu işlevlerin kullanımıyla ilgili ek yük önemli ölçüde azaltıldı. (I75c10)

Hata Düzeltmeleri

  • setViewContent desteği sonlandırıldı. Bunun yerine setContent kullanılmalıdır. (I7e497, b/160335130)
  • Yeni coroutine tabanlı saatler ile eski geri çağırma tabanlı saatleri kullanan API'ler arasındaki boşluğu doldurmak için MonotonicFrameClock'u AnimationClockObservable olarak kullanmanıza olanak tanıyan MonotonicFrameAnimationClock eklendi.

    ManualAnimationClock'un MonotonicFrameClock eşdeğeri artık ManualFrameClock'tur. (I111c7, b/161247083)

  • Modifier.stateDraggable tamamen yeniden düzenlendi ve Modifier.swipeable olarak yeniden adlandırıldı. Yeni bir SwipeableState sınıfı kullanıma sunuldu. DrawerState ve BottomDrawerState, bu sınıftan devralacak şekilde yeniden düzenlendi. [Modal/Bottom]DrawerLayout artık onStateChange parametresini almıyor. (I72332, b/148023068)

  • Modifier.plus desteği sonlandırıldı. Bunun yerine Modifier.then kullanın. "Sonra" sıralama sinyali daha güçlüdür ve Modifier.padding().background() + anotherModifier yazılmasını da engeller. Bu da zinciri bozar ve okunmasını zorlaştırır (Iedd58, b/161529964).

  • SubcomposeLayout eklendi. Bu, alt ağaç kompozisyonu için ölçüm sırasında yalnızca daha sonra kullanılabilen bazı değerleri kullanmak istersek ölçüm sırasında alt öğelerin oluşturulmasına olanak tanıyan düşük seviyeli bir temeldir. Örneğin, WithConstraints, SubcomposeLayout kullanılarak uygulanmaz. (I25cc8)

  • En basit istenen API'nin kolayca bulunup kullanılabilmesi için Material FilledTextField, TextField olarak yeniden adlandırıldı ve temel TextField, BaseTextField olarak yeniden adlandırıldı (Ia6242, b/155482676)

  • Modifier.drawBackground, Modifier.background olarak yeniden adlandırıldı (I13677)

Sürüm 0.1.0-dev15

22 Temmuz 2020

androidx.compose.runtime:runtime-*:0.1.0-dev15 iptal edilir. 0.1.0-dev15 sürümü şu commit'leri içerir.

Bağımlılıkları Güncelleme

  • Compose'un 0.1.0-dev15 sürümünü kullanmak için bağımlılıklarınızı Bağımlılıkları bildirme bölümünde yukarıda gösterilen yeni kod snippet'lerine göre güncellemeniz gerekir.

API Değişiklikleri

  • @Model ek açıklaması artık kullanımdan kaldırıldı. Alternatif olarak state ve mutableStateOf'u kullanın. Bu desteği sonlandırma kararı, dikkatli bir şekilde yapılan birçok tartışmanın ardından alınmıştır.

    Gerekçe

    Gerekçe aşağıdakileri kapsar ancak bunlarla sınırlı değildir:

    • API yüzey alanını ve öğretmemiz gereken kavramları azaltır.
    • Diğer karşılaştırılabilir araç kitleriyle (Swift UI, React, Flutter) daha uyumlu
    • Geri alınabilir karar. @Model adlı ürünü daha sonra istediğimiz zaman tekrar kullanıma sunabiliriz.
    • @Model yapılandırmasıyla ilgili, ele almamız gereken konular olarak nadir kullanım durumlarını ve yanıtlanması zor soruları kaldırır.
    • @Model veri sınıfları, equals, hashcode vb.
    • Bazı mülklerimin "gözlemlenmesini" nasıl sağlarım?
    • Gözlemde kullanılacak yapısal ve referans eşitliğini nasıl belirtirim?
    • Sistemdeki "sihri" azaltır. Kullanıcıların sistemin olduğundan daha akıllı olduğunu (ör. bir listeyi nasıl karşılaştıracağını bildiğini) düşünme olasılığını azaltır.
    • Gözlem ayrıntı düzeyini daha sezgisel hale getirir.
    • Değişkenden sınıftaki özelliğe yeniden düzenleme özelliğini iyileştirir.
    • Eyalete özel, el yapımı optimizasyonlar yapma olasılığını artırır.
    • Ekosistemin geri kalanıyla daha uyumlu hale gelir ve değişmezlik veya "değişebilir durumu benimseme" konusundaki belirsizliği azaltır.

    Taşımayla ilgili notlar

    @Model simgesinin mevcut kullanımlarının neredeyse tamamı iki şekilde kolayca dönüştürülebilir. Aşağıdaki örnekte, yalnızca örnek olması için iki özelliği olan bir @Model sınıfı ve bu sınıfın bir composable'da kullanımı gösterilmektedir.

    @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. alternatif: State<OriginalClass> simgesini kullanarak kopya oluşturun.

    Bu yaklaşım, Kotlin'in veri sınıflarıyla daha kolay hale gelir. Temel olarak, daha önce var olan tüm mülkleri bir veri sınıfının val mülklerine dönüştürün, ardından remember yerine state kullanın ve veri sınıfı copy(...) kolaylık yöntemini kullanarak durumu orijinalin klonlanmış kopyalarına atayın.

    Bu yaklaşımın yalnızca söz konusu sınıfta yapılan tek değişiklikler State örneğinin oluşturulduğu kapsamda yapıldığında işe yaradığını unutmayın. Sınıf, kullanım kapsamı dışında kendi içinde değişiyorsa ve bunu gözlemlemeye güveniyorsanız kullanmak isteyeceğiniz yaklaşım bir sonraki yaklaşımdır.

    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. alternatif: mutableStateOf ve özellik temsilcilerini kullanma

    Bu yaklaşım, Kotlin'in özellik temsilcileri ve mutableStateOf API ile kolaylaştırılır. Bu API, kompozisyon dışında MutableState örnekleri oluşturmanıza olanak tanır. Temel olarak, orijinal sınıfın tüm var özelliklerini, özellik temsilcisi olarak mutableStateOf olan var özellikleriyle değiştirin. Bu, sınıfın kullanımının hiç değişmeyeceği, yalnızca dahili uygulamasının değişeceği avantajını sunar. Ancak her özellik artık ayrı ayrı gözlemlendiği/abone olunduğu için davranış, orijinal örnekle tamamen aynı değildir. Bu nedenle, bu yeniden düzenlemeden sonra gördüğünüz yeniden oluşturmalar daha dar olabilir (bu iyi bir şeydir).

    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 derleyicisinin kod oluşturma stratejisini değiştirir. Değişiklikten önce, derleme derleyicisi, composable işlevlere yapılan çağrıları dönüştürüyordu. Bu değişiklikle birlikte artık bir composable işlevin gövdesini dönüştürüyor ve çağrı sitesini (çoğunlukla) değiştirmeden bırakıyoruz.

    Bu, oluşturma çalışma zamanıyla iletişim kuran mantığın çoğunun, işlev gövdesinin başında gerçekleştiği anlamına gelir.

    Bu, Compose'un tüm kullanımları için kaynakla uyumlu bir değişiklik olmalıdır. Compose'u kullanan çoğu kullanıcının bu değişiklik nedeniyle herhangi bir kodu güncellemesi gerekmez.

    Bu çalışmayı desteklemek için tüm composable işlevlerin JVM imzası değiştirildi. Tek bir parametreyi kabul eden bir Composable işlevi, 3 parametreyi kabul eden bir işlev haline dönüştürülür. Ek parametreler Composer, bir "anahtar" tamsayısı ve meta verileri çağrılar aracılığıyla yaymak için kullanılan bir bit maskesi tamsayısıdır.

    Compose artık varsayılan bağımsız değişkenleri de composable işlevine dönüştürüyor. Bu işlem, işlevin kendisinde ek bir sentetik varsayılan aşırı yükleme oluşturmadan yapılır. Bu nedenle, bu değişiklik daha az işlevin tanımlanmasına neden olur.

    Bu durumdan kaynaklanan bilinen kasıtlı davranış değişiklikleri:

    1. Bazı aramalar, daha önce atlanmayacakları yerlerde atlanacak.
    2. Varsayılan bağımsız değişken ifadelerindeki birleştirilebilir ifadeler artık doğru şekilde abone olunuyor ve işleniyor.

    Bu çalışmada bazı optimizasyonlar yapıldı: 1. Parametre karşılaştırmalarının sonucu, çağrı grafiği aracılığıyla diğer birleştirilebilir işlevlere yayılır. Bu, çalışma zamanında daha az karşılaştırma yapılmasına, yuva tablosu boyutunun küçülmesine ve daha önce atlanmayan composable işlevlerin daha fazla atlanmasına neden olur. 2. Derleme süresinde "statik" olduğu belirlenen parametreler artık çalışma zamanında karşılaştırılmaz veya depolanmaz. Bu, karşılaştırma sayısını ve yer tablosu boyutunu azaltır. 3. Oluşturulan grup sayısını en aza indirmek için işlevlerin gövdesinin kontrol akışı yapısı kullanılır. Bu, yuva tablosu boyutunu küçültür ve çalışma zamanı için daha az iş yükü anlamına gelir. İşlevlere gönderilen ve işlev gövdesinde kullanılmayan kullanılmayan parametreler, işlevin atlanabilirliğini belirlemede dikkate alınmaz.

    Çoğu önemli değişiklik, derleyicinin doğrudan hedeflediği API'lerle ilgiliydi ve Compose'un normal kullanımı etkilenmeyecek: 1. Composer::startExpr kaldırıldı 2. Composer::endExpr kaldırıldı 3. Composer::call kullanımdan kaldırıldı 4. key işlevinin değişken sayıda bağımsız değişken içermeyen aşırı yüklemeleri kaldırıldı. Bundan sonra vararg sürümünü kullanın. 5. Pivotal ek açıklaması kullanımdan kaldırıldı. key yerine kullanın. 6. ScopeUpdateScope::updateScope, Function1 yerine Function3 bekleyecek şekilde değiştirildi. 7. restartableFunction ve restartableFunctionN, ek derleme süresi parametreleri içerecek şekilde güncellendi (I60756, b/143464846)

  • MutableVector'a sortWith ve removeRange eklendi (Icccf7)

  • CompositionLifecycleObserver için varsayılan yöntem uygulamaları eklendi (I24289).

  • Applier artık kompozisyonları silmek için clear() yöntemini gerektiriyor (Ibe697)

  • MutableVector'a asMutableList() yöntemi eklendi. Bu sayede, listenin tamamını kopyalamaya gerek kalmadan genel API'ye iletilebilecek. (I298df)

  • Etkinliklere yanıt olarak iş başlatmak için kompozisyonda yönetilen bir CoroutineScope elde etmek üzere rememberCoroutineScope() eklendi. (I0e264)

  • MutableVector, standart Collection arayüzünün hiçbirini uygulamayan yeni bir koleksiyondur. Bu koleksiyon, diğer gereksinimlere göre daha hızlıdır ve yalnızca dahili uygulamalarda kullanılmak üzere tasarlanmıştır. (I8ebd6)

  • Kotlin Compose'un gerektirdiği sürümde sorun yaşanmaması için StableMutableList ve StableMutableMap geçici olarak kaldırıldı. Bu arayüzler, Compose'un sorunu içermeyen bir Kotlin sürümüne güncellenmesinin ardından yeniden kullanıma sunulacaktır.

    SnapshotStateList ve SnapshotStateMap artık herkese açık ancak StableMutableList ve StableMutableMap geri yüklendiğinde kullanımdan kaldırılacak. (Ia7769)

  • Animasyon zamanlaması için üst düzey withFrameNanos işlevi ekleyin (Ie34c5).

  • @Untracked notu kullanımdan kaldırıldı. @ComposableContract(tracked=false) ile değiştirin (Id211e)

  • RestartableFunction ve ilişkili API'ler ComposableLambda olarak yeniden adlandırıldı. Bu API'ler yalnızca derleyici tarafından hedeflendiğinden normalde kaynak düzeyinde uyumluluğu etkilemez. Yeniden adlandırma işlemi, bu sınıfın yığın izlerinde (I7eb25) göründüğünde ne olduğunu daha iyi iletmek için yapıldı.

  • @Composable ek açıklaması artık sınıflarda geçerli değil (Ia5f02)

  • Ambient<T> artık @Immutable yerine @Stable olarak ayarlanıyor (I0b4bb)

  • Bu değişiklikten önce, bir @Composable işlevinin içinde oluşturuculara yapılan çağrılar, (I5205a, b/158123804) varsa önemsiz olmayan bir şekilde Compose derleyici eklentisi tarafından engelleniyordu.

  • Recompose composable'ı artık yararlı bir soyutlama değildir. Yeniden oluşturma işlemlerinin çoğu, MutableState atamaları sonucunda gerçekleşmelidir. Bunun ötesinde bir durum için, mevcut kapsamın yeniden oluşturulmasını tetiklemek üzere invalidate işlevini kullanmanız önerilir. (Ifc992)

  • Gözlem artık yararlı bir soyutlama değildir. Bu işlevi kopyalamanız gerekiyorsa yalnızca bir composable lambda parametresini yürüten bir composable işlev oluşturarak uygulamayı kopyalayabilirsiniz. Örneğin, @Composable fun Observe(body: @Composable () -> Unit) = body() (I40d37)

  • @Direct, @ComposableContract(restartable=false) lehine kullanımdan kaldırıldı (If4708)

  • Yakın zamanda kullanıma sunulan StateFlow için bir bağdaştırıcı eklendi. Bu bağdaştırıcı, ilk değeri önceden doldurmamıza olanak tanır. Böylece döndürülen State değeri null yapılamaz (I61dd8, b/156233789).

  • Flow için bir bağdaştırıcı eklendi. Kullanım örneği: val value by flow.collectAsState() (If2198, b/153375923)

  • [Değişebilir] Kotlin 1.4 özellik temsilcisi optimizasyonlarını desteklemek için [Mutable]State özellik temsilcisi operatörleri uzantılara taşındı. Arayanların by state { ... } veya by mutableStateOf(...) kullanmaya devam etmek için içe aktarma işlemleri eklemesi gerekir. (I5312c)

  • androidx.compose.ViewComposer, androidx.ui.node.UiComposer'a taşındı. androidx.compose.Emittable kaldırıldı. ComponentNode ile gereksizdi. androidx.compose.ViewAdapters kaldırıldı. Bu özellikler artık desteklenen bir kullanım alanı değildir. Compose.composeInto desteği sonlandırıldı. Bunun yerine setContent veya setViewContent kullanın. Compose.disposeComposition kullanımdan kaldırıldı. Bunun yerine setContent tarafından döndürülen Composition üzerinde dispose yöntemini kullanın. androidx.compose.Compose.subcomposeInto, androidx.ui.core.subcomposeInto olarak taşındı ComponentNode#emitInsertAt, ComponentNode#insertAt olarak yeniden adlandırıldı ComponentNode#emitRemoveAt, ComponentNode#removeAt olarak yeniden adlandırıldı ComponentNode#emitMode, ComponentNode#move olarak yeniden adlandırıldı (Idef00)

  • ComposeFlags.COMPOSER_PARAM işaretini true olarak güncelledik. Bu değişiklik, Compose eklentisinin kod oluşturma stratejisini etkileyecek. Bu durum, üst düzeyde, @Composable işlevlerinin ek bir sentetik parametreyle oluşturulmasına neden olur. Bu parametre, çalışma zamanının yürütmeyi düzgün bir şekilde yönetebilmesi için sonraki @Composable çağrılarına iletilir. Bu, önemli bir ikili uyumluluğu bozan değişikliktir ancak Compose'un izin verilen tüm kullanımlarında kaynak düzeyinde uyumluluğu korur. (I7971c)

  • Ambients API'de yapılan, geriye dönük uyumluluğu bozan değişiklikler. Ayrıntılar için günlük ve Ambient<T> belgelerine bakın (I4c7ee, b/143769776)

  • LiveData için adaptör içeren yeni bir yapay ürün olan ui-livedata eklendi. Kullanım örneği: val value by liveData.observeAsState() (Ie9e8c, b/150465596)

  • Açıkça belirtilmiş başlangıç değeri olmayan Rx bağdaştırıcıları kullanımdan kaldırıldı. Boş değer kullanmak her zaman en iyi varsayılan değer değildir. Örneğin, bir listeniz olduğunda emptyList() veya başka bir makul varsayılan değerle başlamak daha iyidir (I00025, b/161348384).

  • ui-rxjava2 eklendi. Bu yeni yapay nesne, RxJava2 için adaptörler içerir. Kullanım örneği: val value by observable.subscribeAsState() (Ifab4b, b/153369097)

  • savedInstanceState() artık null değer atanabilir türlerle kullanılabilir (I6847f, b/153532190)

  • Özel Saver nesneleri yazmayı kolaylaştırmak için yeni listSaver() ve mapSaver() (I8cf68, b/152331508)

  • Yeni işlevler: savedInstanceState() ve rememberSavedInstanceState(). Bunlar state() ve remember() işlevlerine benzer ancak yerleşik olarak kaydedilmiş örnek durumu desteğine sahiptir (If1987, b/152025209).

Hata Düzeltmeleri

  • runOnIdleCompose, runOnIdle olarak yeniden adlandırıldı (I83607)
  • LayoutNode deneysel API'si yapıldı (I4f2e9)
  • androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue desteği sonlandırıldı. Bu türü kullanan TextField, FilledTextField ve CoreTextField composable'larının desteği de sonlandırıldı. Lütfen bunun yerine androidx.ui.input.TextFieldValue kullanın (I4066d, b/155211005)
  • Desteği sonlandırılan DrawBackground API'si, Modifier'daki drawBackground uzantısı API'leri lehine kaldırıldı. Kod yollarını azaltmak ve Modifier'ın kompozisyonun bir parçası olarak oluşturulması şartını kaldırmak için renk, fırça ve boya drawBackground uygulamaları yeniden düzenlendi. (I0343a)
  • Tuval yerine CanvasScope'u kullanıma sunan, daha üst düzeydeki Compose API'leri güncellendi. Bu sayede tüketicilerin kendi Paint nesnelerini korumasına gerek kalmaz. Hâlâ bir Canvas'a erişmesi gereken tüketiciler, temel Canvas ile çizim komutları vermek için geri çağırma sağlayan drawCanvas uzantı yöntemini kullanabilir. (I80afd)
  • WithConstraints sondaki lambda API'si değiştirildi. Artık iki parametre yerine, kısıtlamalara ve layoutDirection'a ek olarak Dp'de minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlayan bir alıcı kapsamı var (I91b9a, b/149979702).
  • Simetrik dolgu değiştiricisi eklendi. (I39840)
  • wrapContentWidth ve wrapContentHeight, herhangi bir hizalama yerine dikey veya yatay hizalama bekleyecek şekilde güncellendi. Yer çekimi değiştiricisi, dikey veya yatay hizalamayı kabul edecek şekilde güncellendi. Satır, sütun ve yığın, özel sürekli hizalamaları destekleyecek şekilde güncellendi. (Ib0728)
  • ui-text modülünün adı ui-text-core olarak değiştirildi (I57dec).
  • DrawModifier API'yi iyileştirme:
    • draw() ContentDrawScope için alıcı kapsamı oluşturuldu.
    • draw() işlevindeki tüm parametreler kaldırıldı.
    • DrawScope, eski CanvasScope ile aynı arayüze sahiptir.
    • ContentDrawScope'ta drawContent() yöntemi var (Ibaced, b/152919067)
  • ColoredRect desteği sonlandırıldı. Bunun yerine Box(Modifier.preferredSize(width, height).drawBackground(color)) kullanın. (I499fa, b/152753731)
  • Değiştirilen değiştirici artı operatör, fabrika uzantısı işlevleriyle (I225e4) değiştirildi.
  • RowScope ve ColumnScope üyelerine artık satır ve sütun dışında da erişilebilir. (I3a641)
  • LayoutFlexible, LayoutWeight olarak yeniden adlandırıldı. Sıkı parametrenin adı doldurma olarak değiştirildi. (If4738)
  • WithConstraints, LayoutDirection parametresini aldı (I6d6f7)
  • Arka planı DrawBackground olarak yeniden adlandırın ve varsayılan olarak ezberlenmesini sağlayın (Ia0bd3).
  • ButtonStyle, ayrı işlevlerle değiştirildi ve metin (dize) aşırı yüklemesi kaldırıldı. Kullanım bilgileri için güncellenen örneklere bakın. (If63ab, b/146478620, b/146482131)
  • runOnIdleCompose ve runOnUiThread artık ComposeTestRule'daki yöntemler yerine genel işlevlerdir. (Icbe8f)

Harici Katkı (External Contribution)

  • Looper ve Handler gibi gereksiz API'leri Compose Runtime taşıma katmanından kaldırma (I6847d)
  • Başlangıç değeri olmayan Flow<T>.collectAsState() özelliğinin desteğini sonlandırın. Bunun yerine StateFlow<T> kullanın veya açık bir başlangıç değeri iletin. (I63f98, b/157674865)