Çalışma Zamanı Oluşturma

Compose'un programlama modelinin ve durum yönetiminin temel yapı taşları ve Compose Compiler Eklentisi'nin hedeflemesi için temel çalışma zamanı.
Son Güncelleme Kararlı Sürüm Serbest Bırakma Adayı Beta Sürümü Alfa Sürümü
29 Kasım 2023 1.5.4 - 1.6.0-beta02 -

Yapı

Oluştur, androidx içindeki 7 Maven Grup Kimliğinin birleşiminden oluşur. Her Grup, her birinin kendi sürüm notlarına sahip olan, hedeflenmiş bir işlev alt kümesi içerir.

Bu tabloda gruplar ve her sürüm notu grubunun bağlantıları açıklanmaktadır.

GruplandırAçıklama
compose.animationJetpack Compose uygulamalarında kullanıcı deneyimini zenginleştirmek için animasyonlar oluşturur.
compose.derleyici@Composable işlevlerini dönüştürün ve bir 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, www.material.io adresinde açıklananlarla eşleşen bileşenleri sağlamak üzere tasarlanmış Compose'un daha üst düzey giriş noktasıdır.
compose.material3Materyal Tasarımın yeni evrimi olan Materyal Tasarım 3 Bileşen ile Jetpack Compose kullanıcı arayüzleri oluşturun. Güncellenen tema ve bileşenlerin yanı sıra dinamik renk gibi Material You kişiselleştirme özellikleri içeren Material 3, yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlandı.
compose.runtimeCompose'un programlama modelinin ve durum yönetiminin temel yapı taşları ve Compose Compiler Eklentisi'nin hedeflemesi için temel çalışma zamanı.
compose.uiCihazla etkileşim kurmak için gereken temel yazma kullanıcı arayüzü bileşenleri (ör. düzen, çizim ve giriş).

Bağımlılıkları bildirme

Compose'da bağımlılık eklemek için projenize Google Maven deposunu 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 ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:

Modern

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.6"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.6"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme bölümüne bakın.

Geri bildirim

Geri bildirimleriniz Jetpack'i iyileştirmemize yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı geliştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni hesap 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 belgelerine bakın.

Ç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 yayınlandı. 1.0.0-beta01 sürümü bu kayıtları içerir.

Sürüm 1.0.0-alpha05

15 Kasım 2023

androidx.compose.runtime:runtime-tracing:1.0.0-alpha05 yayınlandı. 1.0.0-alpha05 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Bağımlılıklar, desteklenen en düşük kararlı sürümlere (ör.yazma çalışma zamanı ve izleme-perfetto) sabitlendi. Böylece, oluşturma çalışma zamanı izlemenin uygulamaya daha yeni bir yazma çalışma zamanı sürümü getirmesi sorunu giderildi.

Sürüm 1.0.0-alpha04

23 Ağustos 2023

androidx.compose.runtime:runtime-tracing:1.0.0-alpha04 yayınlandı. 1.0.0-alpha04 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Karşılaştırma ve İzleme Perfetto'nun en son sürümleriyle uyumludur. Bu özellik, AndroidX Karşılaştırma ve Android Studio gibi (Hedgehog Beta 2'den itibaren) gibi uygulama başlatılırken (sıfır başlatma) Beste İzleme desteği sağlar.

API Değişiklikleri

  • androidx.tracing.perfetto.Trace adlı dosya androidx.tracing.perfetto.PerfettoSdkTrace olarak yeniden adlandırıldı. (I44af8)
  • Tracking Perfetto SDK API'lerini android.os.Trace ile tutarlı hale getirmek. (I73ba0, b/282199917)
  • Uygulama başlatılırken izleme için ön koşullar. (Iad890)
  • Deneysel ve herkese açık 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 yayınlandı. Sürüm 1.0.0-alpha02 bu kayıtları içerir.

Yeni Özellikler

  • İşlevsel değişiklik yok. Aşağı akış bağımlılıklarında birden çok 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 yayınlandı. Sürüm 1.0.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

  • androidx.compose.runtime:runtime-tracing, desteklediği araçlar sayesinde (yakında kullanıma sunulacak) bir 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.6

Sürüm 1.6.0-beta02

29 Kasım 2023

androidx.compose.runtime:runtime-*:1.6.0-beta02 yayınlandı. Sürüm 1.6.0-beta02 bu kayıtları içerir.

Sürüm 1.6.0-beta01

15 Kasım 2023

androidx.compose.runtime:runtime-*:1.6.0-beta01 yayınlandı. Sürüm 1.6.0-beta01 bu kayıtları içerir.

API Değişiklikleri

  • Belirli kararlılık değerlerini ek açıklamada yay. (274a4c)

Hata Düzeltmeleri

  • Bağlam içinde beste yerel kapsam durumu için referans politikası kullanın. (83361c)
  • $dirty yakalamayı satır içi lambda'larla kısıtlayın. (acfca0)
  • Bazen yanlış beste yerel değerleri alınırken taşınabilir içeriği düzeltin. (035cd6)
  • RecomposeScopeImpl içinde ayırmadan daha hızlı karma eşlemeler kullanın. (d79494)
  • DerivedState uygulamasında ObjectIntMap kullanın. (21862e)
  • DerivedState içindeki SnapshotThreadLocal tam değeri için IntRef kullanın. (04eaf4)

Sürüm 1.6.0-alpha08

18 Ekim 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha08 yayınlandı. Sürüm 1.6.0-alpha08 bu kayıtları içerir.

Hata Düzeltmeleri

  • RememberObserver yaşam döngülerini yalnızca hatırlanan hesaplamada saklandığında tetikleyin. (f6b4dc)
  • Geçersiz kılma listesi sıralamasında ayırmaları iyileştirin. (954d63)
  • SnapshotStateObserver içinde tahsis edilmeyen yeni haritaları kullanın. (4303ce)
  • Beste devre dışı bırakıldığında geçersiz kılmaları temizle. (e001be)

Sürüm 1.6.0-alpha07

4 Ekim 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha07 yayınlandı. Sürüm 1.6.0-alpha07 bu kaydetmeleri içerir.

API Değişiklikleri

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

Sürüm 1.6.0-alpha06

20 Eylül 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha06 yayınlandı. Sürüm 1.6.0-alpha06 bu kayıtları içerir.

Sürüm 1.6.0-alpha05

6 Eylül 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha05 yayınlandı. Sürüm 1.6.0-alpha05 bu kayıtları içerir.

Sürüm 1.6.0-alpha04

23 Ağustos 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha04 yayınlandı. Sürüm 1.6.0-alpha04 bu kayıtları içerir.

Yeni Özellikler

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

API Değişiklikleri

  • ReusableComposition devre dışı bırakılması için bir yöntem eklendi. Böylece gözlemler kaldırıldı ancak düğümleri yerlerinde duruyor. Devre dışı bırakılan beste, setContent çağrısı yapılarak tekrar etkinleştirilebilir. (Ib7f31)
  • Yaşam döngüsünü yönetmek ve alt bestelerin yeniden kullanımı için ReusableComposition arayüzü ekleyin. (I812d1, b/252846775)

Sürüm 1.6.0-alpha03

9 Ağustos 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha03 yayınlandı. Sürüm 1.6.0-alpha03 bu kayıtları içerir.

Hata Düzeltmeleri

  • Yeni CompositionLocalProvider optimizasyonunu düzeltin (3118e88)
  • Taşınabilir içerik düğümlerinin nasıl ayrıldığını düzeltin. (5e3d59b)

Sürüm 1.6.0-alpha02

26 Temmuz 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha02 yayınlandı. Sürüm 1.6.0-alpha02 bu kaydetmeleri içerir.

Yeni Özellikler ve Performans Geliştirmeleri

  • rememberSaveable (f01d79) optimizasyonu
  • Türetilen durumların yeniden okunmasını değişiklikler kaydedilene kadar ertele (f38099)
  • Beste yerel değerleri sağlama özelliğini iyileştirin (a337ea)
  • Grup oluşturulmaması için SideEffect @ExplicitGroupsComposable olarak işaretlendi. (I74815)
  • Kompozisyon yerel haritalarını yeniden kullanım sırasında karşılaştırmaktan kaçının (782071)

API Değişiklikleri

  • CompositionLocalProviders için, birden fazla değerin daha hızlı sağlanması amacıyla kullanılan ek yükü önleyen ancak tek bir değer sağlarken ek yük oluşturan özel durum aşırı yüklemesi eklendi. (I6d640, b/288169379)

Hata Düzeltmeleri

  • Yuvadaki tablo bellek sızıntısını düzeltme (73fcfe)
  • stateSaver, null değerini döndürdüğünde (90748c) rememberSaveable öğesini geri yükleme şeklimizi düzeltin

Sürüm 1.6.0-alpha01

21 Haziran 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha01 yayınlandı. Sürüm 1.6.0-alpha01 bu kayıtları içerir.

Hata Düzeltmeleri

  • Kaldırılacak alt bestelerin yeniden oluşturulmasını atlayın. (Ieeb99, b/254645321)
  • Anlık görüntüler uygulanırken azaltılmış ayırmalar. (I65c09)
  • Anlık görüntü değiştirilmediyse DerivedState içinde readableHash hesaplaması yapmaktan 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 yayınlandı. 1.5.4 sürümü bu kayıtları içerir.

Sürüm 1.5.3

4 Ekim 2023

androidx.compose.runtime:runtime-*:1.5.3 yayınlandı. 1.5.3 sürümü bu kayıtları içerir.

Sürüm 1.5.2

27 Eylül 2023

androidx.compose.runtime:runtime-*:1.5.2 yayınlandı. 1.5.2 sürümü bu kayıtları içerir.

Sürüm 1.5.1

6 Eylül 2023

androidx.compose.runtime:runtime-*:1.5.1 yayınlandı. 1.5.1 sürümü bu kayıtları içerir.

Sürüm 1.5.0

9 Ağustos 2023

androidx.compose.runtime:runtime-*:1.5.0 yayınlandı. 1.5.0 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Yeniden düzenleme, renk animasyonları ve AndroidComposeView ile ilgili ayırmalar kaldırıldı. (Ib2bfa)
  • Durum oluşturan ve bir remember çağrısında sarmalanması gereken işlevleri işaretlemek için @StateFactoryMarker ek açıklaması eklendi. (I64550)
  • Eyalet ve MutableState (fb3d89) temel sürümlerini ekleyin
  • Eklenen Snapshot.isApplyObserverNotificationPending (I672a5)
  • State API'sinin temel sürümleri eklendi. Böylece Int, Long, Float ve Çift değerlerinin State nesnelerinde otomatik kutulama için ceza uygulanmasına gerek kalmadan izlenmesine izin verildi. Bunları kullanmak için yeni fabrika yöntemleri olan mutableIntState(Int), mutableFloatStateOf(Float) vb. kullanın. (I48e43)

Hata Düzeltmeleri

  • Kaldırılacak alt bestelerin yeniden oluşturulmasını atlayın. (Ieeb99, b/254645321)
  • ComposerImpl içinde anlık görüntü referansını saklama (0206f7)
  • Kompozisyonu iki kez uygulamayın (f5791b)
  • Başlatılmamış türetilmiş durum değerlerinin geçersiz kılınmasını sağlama (aa2a92)
  • Beste silme işlemi sırasında onEndChanges numaralı telefonu arayın. (62cc8c)
  • Alt besteye taşınan içeriği düzeltme (4beb41)
  • Olası kilitlenmeleri düzeltin (c1a425 ve 8edce0)
  • Bir Android penceresi için oluşturulan yeniden düzenleyici, ON_STOP bildirimi aldığında tüm bileşim yerine yalnızca withFrameNanos çağrılarını engelleyecek. Bu, durdurulan etkinliklerle ilişkili pencerelerin, veri değişiklikleri için yeniden oluşturulmaya devam edeceği, ancak animasyonların veya withFrameNanos öğesini çağıran diğer kişilerin engelleneceği anlamına gelir. (Id9e7f, b/240975572)
  • Efektleri kaldırmadan önce LayoutNode için devre dışı bırakma geri çağırmalarını çalıştırın 3784073
  • Yeniden başlatılan lambda'ların değiştirilen işaretlerini düzeltin ea81df9
  • 73fd4d8 düğümleriyle Composable için canlı düzenleme regresyonu düzeltildi
  • ON_STOP, beste ae276f1 yerine kare saat yayınlarını duraklatmalıdır.
  • Değiştirilmemiş türetilmiş 84d9b1c durumları için SnapshotStateObserver kapsamı geçersiz kılın
  • Besteleri atarken olası kilitlenmeyi düzeltme 28761fc
  • Bir alt besteye taşınan içeriği düzeltme 92d4156
  • Yeniden başlatılan lambda'ların değiştirilen işaretlerini düzeltin (8a03e9)
  • Efektleri ortadan kaldırmadan önce LayoutNode için devre dışı bırakma geri çağırmalarını çalıştırın (8b0fa4)
  • Düğüm gruplarını sonlandırırken endToMarker() sorununu düzeltin. (d71d980)
  • Devre dışı bırakma kontrolü için mevcut SlotWriter grubunu kullan (a0b518b)
  • SlotTable.moveSlotGapTo() içindeki fill öğesini kaldırın ve kapatmak için taşıyın (81f9935)
  • Taşınabilir içerik taşınırken eksik olan geçersiz kılma işlemlerini düzeltme (1d7c024)
  • Taşınan taşınabilir içerik için anında geçersiz kılma işlemlerini düzeltme (8676618)

Performans iyileştirmeleri

  • Anlık görüntü değiştirilmediyse DerivedState içinde readableHash hesaplaması yapmaktan kaçının. (307102)
  • Azaltılmış ayırmalar (I65c09, d7ea77, 727974 ve 445808)
  • CoroutineScopes (a55362 ve bd382f) oluşturma işlemini hızlı iptal etme
  • Erişilemez durum kayıtları içeren durum nesnesi kayıtlarının üzerine yaz (c986960)
  • Grupları gerçekleştirilirken doğru kapsamın oluşturucusunu kullanma (9a5e5b6)
  • Anlık görüntü geçersiz kılma işlemlerini depolamak için IdentityArraySet öğesini kullanın (7f60cca)
  • Anlık görüntü gözlemleri için ayırmaları azaltma (5bc535f)

Sürüm 1.5.0-rc01

26 Temmuz 2023

androidx.compose.runtime:runtime-*:1.5.0-rc01 yayınlandı. Sürüm 1.5.0-rc01 bu kayıtları içerir.

Hata Düzeltmeleri

  • Türetilen durumların yeniden okunmasını değişiklikler kaydedilene kadar ertele (f38099)

  • mutableStateOf() çağrılarının temel öğelere karşılık gelen özel türlerine taşınmasını öneren isteğe bağlı bir inceleme mevcuttur. Hatanın hata analizi kimliği: AutoboxingStateCreation. 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 lint çıkışlarında görmek için modülünüzün build.gradle veya build.gradle.kts yapılandırmasında (I34f7e) warning "AutoboxingStateCreation" tanımlayarak bilgi amaçlı olan önem derecesini uyarı (veya üstü) olarak değiştirin:

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

Sürüm 1.5.0-beta03

28 Haziran 2023

androidx.compose.runtime:runtime-*:1.5.0-beta03 yayınlandı. Sürüm 1.5.0-beta03 bu kayıtları içerir.

Hata Düzeltmeleri

  • Kaldırılacak alt bestelerin 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 yayınlandı. Sürüm 1.5.0-beta02 bu kayıtları içerir.

Performans iyileştirmeleri

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

Sürüm 1.5.0-beta01

24 Mayıs 2023

androidx.compose.runtime:runtime-*:1.5.0-beta01 yayınlandı. Sürüm 1.5.0-beta01 bu kayıtları içerir.

API Değişiklikleri

  • Yeniden oluşturma, renk animasyonları ve AndroidComposeView (Ib2bfa) içindeki ayırmalar kaldırıldı
  • Durum oluşturan ve bir remember çağrısında sarmalanması gereken işlevleri işaretlemek için @StateFactoryMarker ek açıklaması eklendi. (I64550)
  • Eyalet ve MutableState (fb3d89) temel sürümlerini ekleyin
  • Eklenen Snapshot.isApplyObserverNotificationPending (I672a5)

Hata Düzeltmeleri

  • Azaltılmış ayırmalar (I65c09, d7ea77, 727974 ve 445808)
  • ComposerImpl içinde anlık görüntü referansını saklama (0206f7)
  • CoroutineScopes (a55362 ve bd382f) oluşturma işlemini hızlı iptal etme
  • Kompozisyonu iki kez uygulamayın (f5791b)
  • Başlatılmamış türetilmiş durum değerlerinin geçersiz kılınmasını sağlama (aa2a92)
  • Beste silme işlemi sırasında onEndChanges numaralı telefonu arayın. (62cc8c)
  • Alt besteye taşınan içeriği düzeltme (4beb41)
  • Olası kilitlenmeleri düzeltin (c1a425
  • ON_STOP, beste yerine kare saat yayınlarını duraklatmalıdır (f4a2d1)
  • Yeniden başlatılan lambda'ların değiştirilen işaretlerini düzeltin (8a03e9)
  • Efektleri ortadan kaldırmadan önce LayoutNode için devre dışı bırakma geri çağırmalarını çalıştırın (8b0fa4)

Harici Katkı

  • Eklenen Snapshot.isApplyObserverNotificationPending (I672a5)

Sürüm 1.5.0-alpha04

10 Mayıs 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha04 yayınlandı. Sürüm 1.5.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • State API'sinin temel sürümleri eklendi. Böylece Int, Long, Float ve Çift değerlerinin State nesnelerinde otomatik kutulama için ceza uygulanmasına gerek kalmadan izlenmesine izin verildi. Bunları kullanmak için yeni fabrika yöntemleri olan mutableIntState(Int), mutableFloatStateOf(Float) vb. kullanın. (I48e43)

Hata Düzeltmeleri

  • Beste silme işlemi sırasında onEndChanges numaralı telefonu arayın. Composition.dispose sırasında kaldırılan odak düğümleri, odağı sıfırlamak için onEndChanges hizmetine abone olur.(03d4a47)

  • Başlatılmamış türetilmiş durum değerlerinin geçersiz kılınmasını sağlayın. Türetilen her durum, SnapshotStateObserver içindeki bağımlılıklarının bir listesiyle ilişkilendirilir. Bu işlev, bağımlılık her 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, anlık görüntü ilerlemesine kaydedilir. Bu durum, türetilmiş durum okunduktan sonra (Snapshot.notifyObjectsInitialized() işlevine yapılan çağrı nedeniyle) gerçekleşebilir.

    SnapshotStateObserver için önceki türetilmiş durum gözlem mantığı, eski bağımlılıkları temizleyip yeni değeri okumaktı. Bu durum, bağımlılık geçersiz kılma işleminin kaydedilmediği temizlenmiş bir durumda geçersiz kılınmasına neden olan bir yarış koşuluna neden olmuştur.

    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 olmasını sağlar. (c472be6)

Sürüm 1.5.0-alpha03

19 Nisan 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha03 yayınlandı. Sürüm 1.5.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • Bir Android penceresi için oluşturulan yeniden düzenleyici, ON_STOP bildirimi aldığında tüm bileşim yerine yalnızca withFrameNanos çağrılarını engelleyecek. Bu, durdurulan etkinliklerle ilişkili pencerelerin, veri değişiklikleri için yeniden oluşturulmaya devam edeceği, ancak animasyonların veya withFrameNanos öğesini çağıran diğer kişilerin engelleneceği anlamına gelir. (Id9e7f, b/240975572)

Hata Düzeltmeleri

  • Anlık görüntü listesinde ve haritada olası kilitlenmeyi düzeltme 5c1a425
  • Efektleri kaldırmadan önce LayoutNode için devre dışı bırakma geri çağırmalarını çalıştırın 3784073
  • Yeniden başlatılan lambda'ların değiştirilen işaretlerini düzeltin ea81df9
  • 73fd4d8 düğümleriyle Composable için canlı düzenleme regresyonu düzeltildi
  • ON_STOP, beste ae276f1 yerine kare saat yayınlarını duraklatmalıdır.
  • Değiştirilmemiş türetilmiş 84d9b1c durumları için SnapshotStateObserver kapsamı geçersiz kılın
  • Besteleri atarken olası kilitlenmeyi düzeltme 28761fc
  • Bir alt besteye taşınan içeriği düzeltme 92d4156

Sürüm 1.5.0-alpha02

5 Nisan 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha02 yayınlandı. Sürüm 1.5.0-alpha02 bu kayıtları içerir.

Yeni Özellikler

  • Kotlin’in getValue operatörü artık oluşturulabilir (f174f6e)

Hata Düzeltmeleri, Performans İyileştirmeleri

  • Erişilemez durum kayıtları içeren durum nesnesi kayıtlarının üzerine yaz (c986960)
  • Grupları gerçekleştirilirken doğru kapsamın oluşturucusunu kullanma (9a5e5b6)
  • Düğüm gruplarını sonlandırırken endToMarker() sorununu düzeltin. (d71d980)
  • Devre dışı bırakma kontrolü için mevcut SlotWriter grubunu kullan (a0b518b)
  • Anlık görüntü geçersiz kılma işlemlerini depolamak için IdentityArraySet öğesini kullanın (7f60cca)
  • SlotTable.moveSlotGapTo() içindeki fill öğesini kaldırın ve kapatmak için taşıyın (81f9935)
  • Taşınabilir içerik taşınırken eksik olan geçersiz kılma işlemlerini düzeltme (1d7c024)
  • Taşınan taşınabilir içerik için anında geçersiz kılma işlemlerini düzeltme (8676618)
  • Anlık görüntü gözlemleri için ayırmaları azaltma (5bc535f)

Sürüm 1.5.0-alpha01

22 Mart 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha01 yayınlandı. Sürüm 1.5.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

  • Modifier.Nodes hizmetinin eş yordamları başlatmasına izin vermek için Modifier.Node#coroutineScope özelliğini ekler (I76ef9)
  • CompositionLocalConsumerModifierNode arayüzünü uygulayarak Modifier.Nodes uygulamasının CompositionLocals 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, hiçbir değişiklik yapılmadan serbest bırakıldı.

Sürüm 1.4.2

19 Nisan 2023

androidx.compose.runtime:runtime-*:1.4.2 yayınlandı. 1.4.2 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Anlık görüntü listesinde ve haritada olası kilitlenmeyi düzeltme 2eb6570

  • Değişiklik işlemi, durum kaydına doğrudan yazma işlemiyle eşzamanlı olarak yapılırsa SnapshotStateList veya SnapshotStateMap öğesine içerik eklemek kilitlenmeyle karşılaşabilir. Bu durum, kullanılmayan kayıtları serbest bırakmak için doğrudan yazma özelliğini kullanan 93fcae828b tarafından ortaya çıkan değişikliklerle karşılaşma olasılığını önemli ölçüde artırmıştır.

  • Artık kilitler, bir harita veya liste kilidi basılı tutulduğunda hiçbir zaman anlık görüntü kilidi alınmaya çalışılmayacak şekilde sıralanıyor.

Sürüm 1.4.1

5 Nisan 2023

androidx.compose.runtime:runtime-*:1.4.1 yayınlandı. Sürüm 1.4.1 bu kayıtları 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 yayınlandı. 1.4.0 sürümü bu kayıtları içerir.

1.3.0 sürümünden sonraki önemli değişiklikler

  • İlk beste 3680e25 için LiveData alanında başlatılmış değeri kullanın
  • Oluşturma düğümlerinin yaşam döngüsünü gözlemlemek için ComposeNodeLifecycleCallback ekleyin. 8b6a258
  • ComposableMethod 7b6c7ad öğesine parameterTypes mülkü ekleyin

Hata Düzeltmeleri ve Performans İyileştirmeleri

  • SnapshotStateObserver 29f4a3e içindeki her iki kapsam dizinini de temizleyin
  • Atlanamayan lambda'ların gövdesine gerekli grupları ekleyin 7d06752
  • 93fcae8 anlık görüntüsünün bellek referans özelliklerini iyileştirin
  • Beste yerel aramalarında boks kaldırma 0875717
  • Yeniden kullanılamayan düğüm grupları için doğru anahtarı kullanın 6388d8d
  • SnapshotStateObserver alanını yinelemeli ve eşzamanlı geçerli olana karşı koruyun 98cb6ba
  • IdentityArraySet "get" yöntemine 35a77d3 bir kontrol dizini sınırı eklendi
  • Oluşturma modülünü ViewTreeLifecycleOwner 21c2122 uzantılarını kullanacak şekilde güncelleyin
  • Yeniden Oluşturucu kareyi bitirdikten sonra uygulama bildirimleri gönder. 98f2641
  • Yeniden Oluşturucu 8f8656f iptal edilirken sınırların dışındaki kilitlenmeyi düzeltin
  • Bestenin üst sağlayıcıları 9526fcc değiştiyse yeniden oluşturmayı her zaman zorunlu kıl
  • İptal edilen İşler için yeniden düzenleyen toleransı a55f7ed
  • Çok sayıda oluşturucu için geçersiz kılma işlemlerinin işlenmesini iyileştirin 9b7ed67
  • Yerel olmayan getiriler için kapanış grubu oluşturma sorununu düzeltme b6f590c

Sürüm 1.4.0-rc01

8 Mart 2023

androidx.compose.runtime:runtime-*:1.4.0-rc01 yayınlandı. Sürüm 1.4.0-rc01 bu kayıtları 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ı. Sürüm 1.4.0-beta02 bu kayıtları içerir.

Sürüm 1.4.0-beta01

8 Şubat 2023

androidx.compose.runtime:runtime-*:1.4.0-beta01 yayınlandı. Sürüm 1.4.0-beta01 bu kayıtları 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ılabileceği için @TestOnly, Composer.disableSourceInformation() işlevine eklendi. (I896c8)

Hata Düzeltmeleri

  • Beste yerel aramalarında boksu 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ı. Sürüm 1.4.0-alpha05 bu kayıtları içerir.

API Değişiklikleri

  • Satır içi/kullanımdan kaldırılan gizli işlevlerin daha fazla tür/boş kullanılabilirliği (I24f91)

Sürüm 1.4.0-alpha04

11 Ocak 2023

androidx.compose.runtime:runtime-*:1.4.0-alpha04 yayınlandı. Sürüm 1.4.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • TestMonotonicFrameClock artık doğru deneysel ek açıklamayı kullanıyor. (I95c9e)

Hata Düzeltmeleri

  • SnapshotStateObserver öğesini yinelenen ve eşzamanlı uygulamalara karşı koruyun (d902fb)

Sürüm 1.4.0-alpha03

7 Aralık 2022

androidx.compose.runtime:runtime-*:1.4.0-alpha03 yayınlandı. Sürüm 1.4.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 1.4.0-alpha02

9 Kasım 2022

androidx.compose.runtime:runtime-*:1.4.0-alpha02 yayınlandı. Sürüm 1.4.0-alpha02 bu kayıtları içerir.

Sürüm 1.4.0-alpha01

24 Ekim 2022

androidx.compose.runtime:runtime-*:1.4.0-alpha01 yayınlandı. Sürüm 1.4.0-alpha01 bu kayıtları içerir.

API Değişiklikleri

  • SnapshotStateList ve SnapshotStateMap artık toList() ve toMap() öğelerini saygılı bir şekilde açık bir şekilde uyguluyor. Bu yöntemler, içeriklerini depolamak için kullanılan dahili sabit verileri döndürdüğünden, bir kopya oluşturmadan mevcut içeriklerini döndürür. Bu değer örneğin, verilerin kopyalanmasını gerektirmeden snapshotFlow kullanarak 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 yayınlandı. 1.3.3 sürümü bu kayıtları içerir.

  • 1.3.2'den bu yana değişiklik yok

Sürüm 1.3.2

7 Aralık 2022

androidx.compose.runtime:runtime-*:1.3.2 yayınlandı. 1.3.2 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • androidx.compose.ui 1.3.2 sürümünü desteklemek için güncellendi

Sürüm 1.3.1

9 Kasım 2022

androidx.compose.runtime:runtime-*:1.3.1 yayınlandı. 1.3.1 sürümü bu kayıtları içerir.

Sürüm 1.3.0

24 Ekim 2022

androidx.compose.runtime:runtime-*:1.3.0 yayınlandı. 1.3.0 sürümü bu kayıtları içerir.

1.2.0 sürümünden sonraki önemli değişiklikler

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

Beste İzleme

Composable Reffaction 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 yayınlandı. Sürüm 1.3.0-rc01 bu kayıtları içerir.

Hata Düzeltmeleri

  • Slot 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 yayınlandı. 1.3.0-beta03 sürümü bu kayıtları içerir.

Davranışı Kırıcı Değişim

  • remember ve rememberCoroutineScope parametreleri, crossinline olarak değiştirildi. Bu, erken dönüşe izin vermek yerine erken iadeler için bir hata bildirir. Bu da daha sonra dahili bir hatanın raporlanmasına neden olur.
  • Bu değişiklik, yerel olmayan getirilerin bu işlevlere geçirilen lambdalardan kaldırılmasını gerektiren yeni derleyici hatalarının bildirilmesine yol açabilir. (Ibea62)

Sürüm 1.3.0-beta02

7 Eylül 2022

androidx.compose.runtime:runtime-*:1.3.0-beta02 yayınlandı. 1.3.0-beta02 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

Sürüm 1.3.0-beta01

24 Ağustos 2022

androidx.compose.runtime:runtime-*:1.3.0-beta01 yayınlandı. 1.3.0-beta01 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Bu API'yi kullanan geliştirici araçlarının, bir beste alt grubunu kendi kimliğini kullanarak hızlı bir şekilde bulabilmesini sağlamak için CompositionData özelliğine bir find yöntemi eklendi. (I5794f)

Sürüm 1.3.0-alpha03

10 Ağustos 2022

androidx.compose.runtime:runtime-*:1.3.0-alpha03 yayınlandı. Sürüm 1.3.0-alpha03 bu kaydetmeleri içerir.

Sürüm 1.3.0-alpha02

27 Temmuz 2022

androidx.compose.runtime:runtime-*:1.3.0-alpha02 yayınlandı. 1.3.0-alpha02 sürümü bu kayıtları 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 yayınlandı. Sürüm 1.3.0-alpha01 bu kayıtları içerir.

API Değişiklikleri

  • Yardımcı program işlevini çalışma zamanına taşıma (I4f729)

Sürüm 1.2

Sürüm 1.2.1

10 Ağustos 2022

androidx.compose.runtime:runtime-*:1.2.1 yayınlandı. Sürüm 1.2.1 bu kayıtları içerir.

Hata Düzeltmeleri

  • Düzeltilen bellek sızıntısı: Şeffaf anlık görüntülerden oluşturulan iç içe yerleştirilmiş anlık görüntüleri ortadan kaldırın b/239603305

Sürüm 1.2.0

27 Temmuz 2022

androidx.compose.runtime:runtime-*:1.2.0 yayınlandı. 1.2.0 sürümü bu kayıtları içerir.

1.1.0 tarihinden bu yana yapılan önemli değişiklikler

  • Compose Çalışma Zamanı, 1.2.0 sürümünde sunulan birçok özelliğin yanı sıra sabitleme amaçlı birçok hata düzeltmesine de sahipti. En önemli yeni özellik, paylaşılan öğe geçişleri gibi karmaşık kullanıcı deneyimini etkinleştirmek için kullanılabilecek movableContentOfAPI'nin kullanıma sunulmasıydı. movableContentOf API, özelleştirilebilir bir lambdayı, durumunu ve ilgili düğümleri adı verilen yeni konumlara taşıyan bir lambdaya dönüştürür. Önceki çağrı besteden çıktığında durum geçici olarak korunur ve lambdaya yeni bir çağrı besteye girerse durum ve ilişkili Düğümler yeni çağrının konumuna taşınır. Yeni arama eklenmezse durum kalıcı olarak kaldırılır ve gözlemcilerin bilgilendirildiğini unutmayın.

  • Bir movableContentOf lambdası aynı bestede birden çok kez çağrılırsa her çağrı için yeni durum ve düğümler oluşturulur. Ayrıca, çağrılar besteden ayrılıp yeni çağrılar girdikçe durum, ilk ayrılan çağrılardan gelen çağrılara çağrılma sırasına göre taşınır. Yeni çağrılar tarafından hak talebinde bulunulmayan tüm eyaletler kalıcı olarak kaldırılır.

  • Buna ve diğer birkaç yeni özelliğe ek olarak, çalışma zamanı ve Anlık görüntü durum sistemini kararlı hale getirmek için uzun zaman harcandı. Çeşitli bellek sızıntıları kaldırıldı ve kod yolları optimize edildi.

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

1.2 Uygulamasındaki Yeni Özellikler

1.2 bölgesindeki performans

1.2 Ürününde Hata Düzeltmeleri

Sürüm 1.2.0-rc03

29 Haziran 2022

androidx.compose.runtime:runtime-*:1.2.0-rc03 yayınlandı. Sürüm 1.2.0-rc03 bu kayıtları içerir.

Hata Düzeltmeleri

  • Türetilen durum gözlemleri, daha önce koşulsuz olarak yeniden oluşturulan kapsam ve bileşimden birlikte koşulsuz olarak kaldırılmıştı. Bu da türetilmiş durumu gözlemliyor olabilecek diğer kapsamları bozuyordu. Bu değişiklik, yalnızca artık başka kapsamlar tarafından 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 yayınlandı. Sürüm 1.2.0-rc02 bu kayıtları içerir.

Sürüm 1.2.0-rc01

15 Haziran 2022

androidx.compose.runtime:runtime-*:1.2.0-rc01 yayınlandı. Sürüm 1.2.0-rc01 bu kayıtları içerir.

API Değişiklikleri

  • Oluşturma kitaplıklarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri (I5bcf1) kullanılarak oluşturulmuştur

Sürüm 1.2.0-beta03

1 Haziran 2022

androidx.compose.runtime:runtime-*:1.2.0-beta03 yayınlandı. Sürüm 1.2.0-beta03 bu kayıtları içerir.

Sürüm 1.2.0-beta02

18 Mayıs 2022

androidx.compose.runtime:runtime-*:1.2.0-beta02 yayınlandı. Sürüm 1.2.0-beta02 bu kayıtları içerir.

Sürüm 1.2.0-beta01

11 Mayıs 2022

androidx.compose.runtime:runtime-*:1.2.0-beta01 yayınlandı. Sürüm 1.2.0-beta01 bu kayıtları içerir.

Yeni Özellikler

  • Bu, 1.2'nin ilk beta sürümüdür!

API Değişiklikleri

  • Deneysel Snapshot.unsafeEnter/unsafeLeave eklendi (I108f3)
  • Deneysel Snapshot.asContextElement() API'si (Iff072) eklendi
  • @ComposableTargetMarker tarafından işaretlenen @ComposableTarget ek açıklaması ve ek açıklamaları artık @file önekiyle dosya kapsamında kullanılabilir. Dosya kapsamında hedef ek açıklama kullanmak, derleyicinin dosyadaki tüm oluşturulabilir işlevlerin, ilişkili uygulamayı hedeflemeyi amaçladığını varsaymasına neden olur. Örneğin, @file:UiComposable kullanıldığında tüm @Composable işlevlerinin Oluştur kullanıcı arayüzü uygulayıcısını hedeflediği bildirilir. Başka bir uygulayıcıyı hedeflemesi gereken bir fonksiyon, istenen uygulama için hedef işaretçi 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 yayınlandı. Sürüm 1.2.0-alpha08 bu kayıtları içerir.

API Değişiklikleri

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

Sürüm 1.2.0-alpha07

6 Nisan 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha07 yayınlandı. Sürüm 1.2.0-alpha07 bu kayıtları içerir.

API Değişiklikleri

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

Sürüm 1.2.0-alpha06

23 Mart 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha06 yayınlandı. Sürüm 1.2.0-alpha06 bu kaydetmeleri içerir.

Sürüm 1.2.0-alpha05

9 Mart 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha05 yayınlandı. Sürüm 1.2.0-alpha05 bu kayıtları içerir.

Harici Katkı

  • Kotlinx eş yordamları 1.6.0 (I3366d) kullanılacak şekilde güncellendi

Sürüm 1.2.0-alpha04

23 Şubat 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha04 yayınlandı. Sürüm 1.2.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • Oluşturulabilir bir işlevin, kullanmak üzere tasarlanmamış bir uygulamayı hedefleme olarak adlandırıldığı durumların derleme zamanı raporlamasını sağlayan ComposableTarget, ComposableTargetMarker ve ComposableOpenTarget eklendi.

    Çoğu durumda, ek açıklamalar yazma derleyici eklentisi tarafından anlaşılabilir. Dolayısıyla, bu ek açıklamaların doğrudan kullanılması nadirdir . Tahmin edilemeyen durumlar arasında özel bir uygulama aracı, soyut birleştirilebilir işlevler (arayüz yöntemleri gibi), oluşturulabilir lambda olan alanlar veya genel değişkenler (yerel değişkenler ve parametreler tahmin edilir) oluşturup kullanma veya ComposeNode ya da ilgili bir oluşturma işlevi kullanılır.

    Özel uygulayıcılar için ComposeNode veya ReusableComposeNode çağıran oluşturulabilir işlevlerin, işlev ve oluşturulabilir lambda parametre türleri için CompoableTarget ek açıklaması eklemesi gerekir. Bununla birlikte, ComposableTargetMarker ek açıklaması içeren bir ek açıklama oluşturmanız ve daha sonra, işaretli ek açıklamanın doğrudan ComposableTarget yerine kullanılması önerilir. ComposableTargetMarker ile işaretlenmiş bir ek açıklama, uygulama parametresi olarak özellik sınıfının tam nitelikli adına sahip ComposbleTarget ile eşdeğerdir. ComposableTargetMarker kullanımına ilişkin örnek için anroidx.compose.ui.UiComposable sayfasını inceleyin. (I38f11)

Sürüm 1.2.0-alpha03

9 Şubat 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha03 yayınlandı. Sürüm 1.2.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • Oluşturulabilir bir lambda'yı, durumunu hareket ettiren bir lambdaya ve karşılık gelen düğümleri, adı verilen yeni bir konuma dönüştüren movableContentOf eklendi. Önceki çağrı besteden çıktığında, durum geçici olarak korunur ve lambdaya yeni bir çağrı besteye girerse durum ve ilişkili düğümler yeni çağrının konumuna taşınır. Yeni çağrı eklenmezse durum kalıcı olarak kaldırılır ve gözlemcilerin bilgilendirildiğini unutmayın.

    Bir movableContentOf lambdası aynı bileşimde birden çok kez çağrılırsa her çağrı için yeni durum ve düğümler oluşturulur. Ayrıca, çağrılar besteden çıkıp yeni çağrılar girdikçe durum, ilk ayrılan çağrılardan gelen çağrılara çağrıldıkları sırayla taşınır. Yeni çağrılar tarafından talep edilmeyen tüm eyaletler kalıcı olarak kaldırılır. (Ib4850)

  • Araçların, birleştirilebilir işlevlerin daha ayrıntılı izlemesini sağlamak için besteye bir izleme API'si eklendi. Derleyici artık kaynak bilgilerini içeren tracing API'ye çağrılar oluşturur. (Ib0eb5)

    Bu çağrıları ve ilişkili kaynak bilgilerini sürüm derlemesinden 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();
      }
    
  • Araçlara, yeniden kompozisyonlar sırasında bir kompozisyonu tanımlama olanağı veren InternalComposeScope ekleyin. (I07a3f)

Sürüm 1.2.0-alpha02

26 Ocak 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha02 yayınlandı. Sürüm 1.2.0-alpha02 bu kaydetmeleri içerir.

Sürüm 1.2.0-alpha01

12 Ocak 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha01 yayınlandı. Sürüm 1.2.0-alpha01 bu kayıtları içerir.

API Değişiklikleri

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

Bağımlılık Güncellemeleri

  • Artık Kotlin 1.6.10 uygulamasına bağlı.

Sürüm 1.1

Sürüm 1.1.1

23 Şubat 2022

androidx.compose.runtime:runtime-*:1.1.1 yayınlandı. Sürüm 1.1.1 bu kayıtları içerir.

Hata Düzeltmeleri

  • androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList adresindeki NullPointerException sorununu düzeltin (aosp/1947059, b/206677462)
  • Android'de panodan okuma sırasında pano içeriğinin neden olduğu kilitlenmeyi düzeltin. (I06020, b/197769306)
  • LazyVerticalGrid cinsinden sabit RTL (aosp/1931080, b/207510535)

Sürüm 1.1.0

9 Şubat 2022

androidx.compose.runtime:runtime-*:1.1.0 yayınlandı. Sürüm 1.1.0 bu kayıtları içerir.

1.0.0 sürümünden sonraki önemli değişiklikler

  • Android 12 Fazla kaydırma efekti için kararlı destek
  • Dokunma hedefi boyutlandırmayla ilgili iyileştirmeler
  • Compose 1.0'da, Materyal bileşenlerinin düzen alanlarını, dokunma hedefi boyutu için Materyal erişilebilirlik kurallarına uyacak şekilde genişleteceğini unutmayın. Örneğin, Düğmenin boyutunu daha küçük olarak ayarlasanız bile Düğme dokunma hedefi minimum 48x48dp boyutuna genişler. Bu, Materyal Oluşturma Materyalini, Materyal Tasarım Bileşenleri ile aynı davranışla uyumlu hale getirerek Görünümler ve Oluşturma'yı birlikte kullandığınızda tutarlı bir davranış sağlar. Bu değişiklik, kullanıcı arayüzünüzü Material Material bileşenlerini kullanarak oluşturduğunuzda, dokunma hedefi erişilebilirliği için minimum gereksinimlerin karşılanmasını da sağlar.
  • Navigasyon Rail için kararlı destek
  • Önceden deneysel API'lerden bazılarını 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 yayınlandı. Sürüm 1.1.0-rc03 bu kayıtları içerir.

Hata Düzeltmeleri

  • Materyal Oluşturma özelliğini (1.1.0-rc03) desteklemek için güncellendi

Sürüm 1.1.0-rc01

15 Aralık 2021

androidx.compose.runtime:runtime-*:1.1.0-rc01 yayınlandı. Sürüm 1.1.0-rc01 bu kayıtları içerir.

Sürüm 1.1.0-beta04

1 Aralık 2021

androidx.compose.runtime:runtime-*:1.1.0-beta04 yayınlandı. 1.1.0-beta04 sürümü bu kayıtları 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 yayınlandı. 1.1.0-beta03 sürümü bu kayıtları içerir.

Sürüm 1.1.0-beta02

3 Kasım 2021

androidx.compose.runtime:runtime-*:1.1.0-beta02 yayınlandı. 1.1.0-beta02 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Anlık görüntü kodu birden fazla dosyaya bölünmüş, ancak bunların tümü hâlâ aynı JVM sınıfında bulunmaktadır. (Ic6c98)

Sürüm 1.1.0-beta01

27 Ekim 2021

androidx.compose.runtime:runtime-*:1.1.0-beta01 yayınlandı. Sürüm 1.1.0-beta01 bu kayıtları içerir.

Sürüm 1.1.0-alpha06

13 Ekim 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha06 yayınlandı. Sürüm 1.1.0-alpha06 bu kayıtları içerir.

API Değişiklikleri

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

Sürüm 1.1.0-alpha05

29 Eylül 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha05 yayınlandı. Sürüm 1.1.0-alpha05 bu kayıtları içerir.

Sürüm 1.1.0-alpha04

15 Eylül 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha04 yayınlandı. Sürüm 1.1.0-alpha04 bu kayıtları içerir.

Sürüm 1.1.0-alpha03

1 Eylül 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha03 yayınlandı. Sürüm 1.1.0-alpha03 bu kaydetmeleri içerir.

Yeni Özellikler

  • Compose Derleyici artık Compose Çalışma Zamanının (1.0) eski sürümlerini destekliyor. Bu değişiklikten önce Compose Derleyici yalnızca aynı sürümdeki veya sonraki sürümlerin Compose Runtime ile uyumluydu. Bu değişiklikten sonra Compose Derleyici, Compose Çalışma Zamanının (1.0) daha eski bir sürümüyle uyumlu hale geldi. (aosp/1796968)
  • Oluşturma 1.1.0-alpha03 öğesi, Kotlin 1.5.30 sürümünü temel alacak şekilde güncellendi. (I74545)

Sürüm 1.1.0-alpha02

18 Ağustos 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha02 yayınlandı. Sürüm 1.1.0-alpha02 bu kaydetmeleri içerir.

Sürüm 1.1.0-alpha01

4 Ağustos 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha01 yayınlandı. Sürüm 1.1.0-alpha01 bu kayıtları içerir.

Sürüm 1.0

Sürüm 1.0.5

3 Kasım 2021

androidx.compose.runtime:runtime-*:1.0.5 yayınlandı. 1.0.5 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • türetStateOf örneklerinin kilitlenmesini izlemeyle ilgili sorun düzeltildi. (aosp/1792247)

Sürüm 1.0.4

13 Ekim 2021

androidx.compose.runtime:runtime-*:1.0.4 yayınlandı. 1.0.4 sürümü bu kayıtları içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.31 modeline bağlı olacak şekilde güncellendi

Sürüm 1.0.3

29 Eylül 2021

androidx.compose.runtime:runtime-*:1.0.3 yayınlandı. 1.0.3 sürümü bu kayıtları içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.30 modeline bağlı olacak şekilde güncellendi

Sürüm 1.0.2

1 Eylül 2021

androidx.compose.runtime:runtime-*:1.0.2 yayınlandı. 1.0.2 sürümü bu kayıtları içerir.

Compose 1.0.2 sürümünü destekleyecek şekilde güncellendi. 1.0.2 oluşturma işlemi, Kotlin 1.5.21 ile hâlâ uyumlu.

Sürüm 1.0.1

4 Ağustos 2021

androidx.compose.runtime:runtime-*:1.0.1 yayınlandı. 1.0.1 sürümü bu kayıtları 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 yayınlandı. 1.0.0 sürümü bu kayıtları içerir.

1.0.0'ın temel özellikleri

Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Sürüm Oluşturma 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 şu kilitlenmeyle karşılaşabilirsiniz:

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

    Sorunu düzeltmek için build.gradle dosyanızda minSdkVersion değerini geçici olarak 24'e yükseltin. Bu sorun, Android Studio Bumblebee ve 7.1 AGP'nin yeni 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 yayınlandı. 1.0.0-rc02 sürümü bu kayıtları içerir.

  • SnapshotStateObserver'daki sahte NullPointerExceptions'a neden olan yarış koşulları düzeltildi. (aosp/1763445, aosp/1758105, b/192677711)
  • java.lang.IllegalStateException: Reading a state that was created after the snapshot was taken or in a snapshot that has not yet been applied kilitlenmesine neden olan çalışma zamanı anlık görüntüleriyle 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 yayınlandı. Sürüm 1.0.0-rc01 bu kayıtları içerir.

Sürüm 1.0.0-beta09

16 Haziran 2021

androidx.compose.runtime:runtime-*:1.0.0-beta09 yayınlandı. 1.0.0-beta09 sürümü bu kayıtları içerir.

Profil Kuralları Eklendi

Bu sürüm, aşağıdaki oluşturma 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.çalışma zamanı
  • 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 metin dosyasında belirtilir. Dosya, her satır için bir kural belirtir. Buradaki kural, kitaplıktaki yöntemler veya sınıflarla eşleştirme için bir kalıptır. Bu kuralların söz dizimi, adb shell profman --dump-classes-and-methods ... kullanılırken kullanılan, kullanıcılar tarafından okunabilen ART profili biçiminin üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini kullanır.

  • Bir yöntem kuralının kalıbı aşağıdaki gibi olur:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • Sınıf kuralının kalıbı aşağıdaki gibidir:

    <CLASS_DESCRIPTOR>
    
  • Burada <FLAGS>, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmemesi gerektiğini belirtmek için H, S ve P karakterlerinden bir veya daha fazlasını gösterilmektedir.

  • <CLASS_DESCRIPTOR>, hedeflenen yöntemin ait olduğu sınıfı tanımlar. Ö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öndürme türlerini içerir. Örneğin, LayoutNode üzerindeki fun isPlaced(): Boolean yöntemi isPlaced()Z imzasına sahiptir.

  • Tek bir kuralın birden fazla yöntemi veya sınıfı kapsaması için bu kalıplarda joker karakterler (**, * ve ?) bulunabilir.

Kurallar ne işe yarar?

  • H işaretine sahip bir yöntem, bu yöntemin "sıcak" bir yöntem olduğunu ve önceden derlenmesi gerektiğini belirtir.

  • S işaretine sahip bir yöntem, başlangıçta çağrılan bir yöntem olduğunu ve derleme ile yöntemin başlangıç zamanında yorumlanmasını önlemek için önceden derlenmesi gerektiğini belirtir.

  • P işaretine sahip bir yöntem, bunun başlangıçtan 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 maliyetinden kaçınmak için yığında önceden ayrılması gerektiğini belirtir.

Nasıl çalışır?

  • Kitaplıklar, AAR yapılarına paketlenecek bu kuralları tanımlayabilir. Bu yapıları içeren bir uygulama oluşturulduğunda bu kurallar birleştirilir ve birleştirilen kurallar, uygulamaya özel kompakt bir ikili ART profili oluşturmak için kullanılır. Böylece ART, uygulamanın performansını iyileştirmek amacıyla belirli bir alt kümeyi önceden derlemek için uygulama cihazlara yüklendiğinde bu profilden yararlanabilir. Bu işlem, özellikle ilk çalıştırmada uygulamanın performansını iyileştirir. Bu işlemin, hata ayıklaması yapılabilecek uygulamalar üzerinde etkisi olmayacağını unutmayın.

Sürüm 1.0.0-beta08

2 Haziran 2021

androidx.compose.runtime:runtime-*:1.0.0-beta08 yayınlandı. 1.0.0-beta08 sürümü bu kayıtları içerir.

API Değişiklikleri

  • State<T> artık State<out T> (I69049)
  • Değişikliklerin tek bir kartta yeniden düzenlenmesini sağlayan ControlledComposition 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 yayınlandı. 1.0.0-beta07 sürümü bu kayıtları 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 yazma derleyici API'leri eklendi. (Ia34e6)
  • Anahtar değiştirildiğinde düğümleri değiştirmek yerine içeriğinde yeniden kullanmayı deneyecek ReusableContent özelliğini sunar. Anahtar değiştirildiğinde, içerik için slot tablosundaki önceki değerler, oluşturulan düğümler ve düğümleri güncellemek için kullanılan değerler dışında yoksayılır.

    ComposeNode için yapılan gibi, değiştirmek yerine yayınlanan düğümü yeniden kullanacak ReusableComposeNode özelliğini sunar. (I1dd86)

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

Hata Düzeltmeleri

  • LazyColumn/Satırı artık daha önce aşağı kaydırılmış olsalar bile önceden görünür olan en fazla 2 öğeyi etkin (atanmamış) tutacak. Bu, kaydırma performansını artıran yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt kompozisyonları yeniden kullanmasına olanak tanır. (Ie5555)

Sürüm 1.0.0-beta06

5 Mayıs 2021

androidx.compose.runtime:runtime-*:1.0.0-beta06 yayınlandı. 1.0.0-beta06 sürümü bu kayıtları 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 yayınlandı. 1.0.0-beta05 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Anlık görüntü okuma ve yazma işlemlerini kaydetmek için @InternalComposeApi kaldırıldı (Id134d)

Hata Düzeltmeleri

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

Sürüm 1.0.0-beta04

7 Nisan 2021

androidx.compose.runtime:runtime-*:1.0.0-beta04 yayınlandı. 1.0.0-beta04 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Bu değişiklikten önce, yerel oluşturulabilir işlevler, parametrelerine göre atlanabilirdi. Bu değişiklikten sonra hiçbir yerel oluşturulabilecek işlev atlanmayacak. Bu değişiklik, yerel işlevlerin üst öğeden parametreleri yakalaması yaygın ve beklenen bir işlem olduğundan ve bunların atlanması sık görülen bir hata kaynağı olduğundan yapılmaktadır.

    Özetlemek gerekirse:

    @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 oluşturulabilir işlevi count parametresi güncellendikten sonra bile her zaman atlanırdı. Bu durum artık geçerli değil. (I5648a)

  • Giriş parametreleri (I1b110, b/182403380) ile kullanıldığında rememberSaveable() ürününün eski değeri geri yüklemesi sorunu düzeltildi.

Sürüm 1.0.0-beta03

24 Mart 2021

androidx.compose.runtime:runtime-*:1.0.0-beta03 yayınlandı. 1.0.0-beta03 sürümü bu kayıtları içerir.

API Değişiklikleri

  • DefaultMonotonicFrameClock desteği sonlandırıldı. MonotonicFrameClock olmadan withFrameNanos veya Recomposer.runRecomposeAndApplyChanges çağrılırsa artık IllegalStateException politikası geçerli. (I4eb0d)

Sürüm 1.0.0-beta02

10 Mart 2021

androidx.compose.runtime:runtime-*:1.0.0-beta02 yayınlandı. 1.0.0-beta02 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Deneysel API'lerin herkese açık kullanımında kısıtlamalar uygula (I6aa29, b/174531520)
  • Gezinme-oluşturma hedefinde kullanıldığında bozuk rememberSaveable { mutableStateOf(0) } sorunu için düzeltme uygulandı. (I1312b, b/180042685, b/180701630)

Sürüm 1.0.0-beta01

24 Şubat 2021

androidx.compose.runtime:runtime-*:1.0.0-beta01 yayınlandı. 1.0.0-beta01 sürümü bu kayıtları içerir.

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

API Değişiklikleri

  • Geçersiz kılınan bileşimleri ana çerçeve döngüsünden yeniden derlemek için Recomposer.runRecomposeConcurrentlyAndApplyChanges deneysel API ekleyin. (I342d0)
  • @ReadOnlyComposable ile işaretlenen tüm composable dosyalar artık yalnızca diğer @ReadOnlyComposables (I58961) öğelerine çağrı yaptığından emin olmak amacıyla derleme zamanı doğrulanıyor.
  • compositionLocalOf ve staticCompositionLocalOf için defaultFactory artık isteğe bağlı yerine zorunludur.

    Bu değişiklik, varsayılan fabrikanın sağlanmadığı, boş bırakılamayan türler için olası bir tür hatasını ortadan kaldırır. Daha önce bu, null yapılamayan bir tür için boş referans sağlıyordu.

    Boş değer içeren türler için varsayılan fabrika ayarı olarak { null } değerini sağlayabilirsiniz.

    Makul bir varsayılan sağlanmadığı sürece, null yapılamayan türlere sahip yerellerin kullanılması önerilmez. Mantıklı bir varsayılan yoksa defaultFactory lambda bir istisna atmalıdır. Bununla birlikte, istisna yapılması, yerel tüketicilerin tür sistemi tarafından zorunlu kılınmayan, sunulan dolaylı bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)

  • Kullanımdan kaldırılan simgeler, yazma çalışma zamanından kaldırıldı (I3252c)

  • Desteği sonlandırılan emptyContent() kaldırıldı. Bunun yerine {} politikasını kullanın. (Idb33f, b/179432510)

  • Sağlayıcılar, CompositionLocalProvider olarak yeniden adlandırıldı

    • Beste oluşturucu artık anahtar parametresi kabul etmiyor ve kullanımdan kaldırıldı.
    • currentCompositeKeyHash, derlenebilir bir üst düzey işlev yerine birleştirilebilir üst düzey mülke dönüştürüldü.
    • CompositionData ve CompositionGroup androidx.compose.runtime.tooling ad alanına taşındı
    • ComposableLambda, beton sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
    • ComposableLambdaN, beton sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
    • Snapshot işlevi, androidx.compose.runtime ad alanına taşındı
    • SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değil.
    • @TestOnly üst düzey clearRoots işlevi kaldırıldı. Artık gerekli değildir.
    • keySourceInfoOf ve sıfırlaSourceInfo işlevleri kaldırıldı. Bunlar artık gerekli değildir.
    • Composer.collectKeySourceInformation kaldırıldı. Artık gerekli değildir.
    • isjoinedKey, katılmışKeyLeft vejoinKeyRight yöntemleri kaldırıldı. Bunlar artık gerekli değildir.
    • Çeşitli üst düzey API'ler taşındı ve farklı dosyalar halinde yeniden düzenlendi. Kotlin'in dosya sınıfı semantiği nedeniyle bu, ikili program uyumluluğunu bozar ancak kaynak uyumluluğunu bozar. Bu nedenle çoğu kullanıcı için bir sorun olmamalıdır.
    • (I99b7d, b/177245490)
  • SnapshotStateObserver artık Deneysel değil (Id2e6a)

  • Daha önce desteği sonlandırılmış API'lerden bazıları silindi (Ice5da, b/178633932)

  • Aşağıdaki Material API değişiklikleri yapıldı:

    • Varsayılan dolgunun özelleştirilmesine olanak tanımak için Top/BottomAppBar'a contentPadding parametresi eklendi.
    • BackdropScaffold'daki parametreler, isteğe bağlı parametrelerden önce gelen gerekli parametreler için API yönergelerine uygun olacak şekilde yeniden sıralandı.
    • BottomNavigasyonItem öğesindeki icon parametresi, selected ve onClick satırlarından sonra olacak şekilde taşındı.
    • BottomNavigasyonItem öğesindeki alwaysShowLabels parametresi alwaysShowLabel olarak yeniden adlandırıldı.
    • Birkaç bileşendeki bodyContent parametreleri yalnızca content olarak yeniden adlandırıldı.
    • Parametreler ButtonDefaults.buttonColors() içinde yeniden sıralandı. Parametrelerin türü değişmediği için bunun kodunuzda bir hataya neden olmayacağını lütfen unutmayın. Lütfen adlandırılmış parametreler kullandığınızdan veya sıralamayı manuel olarak güncellediğinizden emin olun. Aksi takdirde, kodunuz öncekiyle aynı şekilde çalışmaz.
    • secondaryVariant parametresi darkColors() parametresine eklendi. Bu renk, koyu temada genellikle secondary ile aynıdır, ancak tutarlılık ve daha fazla özelleştirme için eklenmiştir.
    • Yaygın olarak kullanılmadıkları / yararlı olmadıkları için ElevationDefaults veactivateElevation() herkese açık API yüzeyinden kaldırıldı.
    • Slider içindeki onValueChangeEnd öğesi, onValueChangeFinished olarak yeniden adlandırıldı ve boş değer atanabilir.
    • Tutarlılık için Snackbar içindeki text parametresi content olarak yeniden adlandırıldı.
    • Varsayılan dolgunun özelleştirilmesine olanak tanımak için DropdownMenuItem parametresine contentPadding parametresi eklendi ve content, RowScope üzerinde uzantı haline getirildi.
    • ModalDrawerLayout adlı dosya ModalDrawer olarak yeniden adlandırıldı.
    • BottomDrawerLayout adlı dosya 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 yayınlandı. 1.0.0-alpha12 sürümü bu kayıtları içerir.

API Değişiklikleri

  • ViewGroups için destek, UiApplier'dan kaldırıldı. Desteği sonlandırılan emitView composable öğeleri kaldırıldı. (Ifb214)
  • CompositionReference, CompositionContext olarak yeniden adlandırıldı (I53fcb)
  • ComponentActivity.setContent, androidx.activity:activity-compose modülündeki androidx.activity.compose.setContent konumuna taşındı. (Icf416)
  • Snapshot API, dahili uygulama sınıflarını herkese açık API'den gizlemenin yanı sıra API yönergelerine daha uygun olacak şekilde güncellendi. (Id9e32)
  • Ambiyans -> CompositionLocal yeniden adlandırmasıyla eşleşecek şekilde Ambiyanslar yeniden adlandırıldı. Ambiyanslar eskiden AmbientFoo olarak adlandırılırken artık CompositionLocals adı LocalFoo olarak adlandırılıyor. (I2d55d)
  • Ambient adı sırasıyla CompositionLocal CompositionLocal ve ambientOf / staticAmbientOf adıyla, positionLocalOf / staticCompositionLocalOf olarak değiştirildi. Bu değişiklik, CompositionLocal amacının daha net hale getirilmesine yardımcı olur: besteye yerel değerler sağlama / alma mekanizması. CompositionLocal örneklerinde Local öneki kullanılmalıdır. Örneğin, val LocalFoo = positionLocalOf { Foo() }. (Ia55b6)
  • TakeMutableSnapshot ve TakeSnapshot, Snapshot’ın tamamlayıcı yöntemleri olmaya başlamıştır. (91f19)
  • @ComposableContract desteği sonlandırıldı ve yerine üç ek ek açıklama eklendi.

    @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).orBlank() yardımcı programları, artık performans üzerinde herhangi bir olumlu etkisi veya değeri olmadığı için kullanımdan kaldırılmıştır (I0484d)

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

  • Yeniden düzenleyenler artık kapatılabilir. Kapalı yeniden düzenleyenler, beste alt eş yordamları tamamlanana kadar yeniden oluşturma işlemine devam eder. Recomposer.shutDown, kapatmayla zıtlık oluşturmak için iptal edilecek şekilde yeniden adlandırıldı. (Ib6d76)

  • compose:runtime-dispatch yapısı kullanımdan kaldırıldı. MonotonicFrameClock artık sadeceCompose:runtime'da, AndroidUiDispatcher ise write:ui'de 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 bir tür parametre de kullanılmamaktadır.

    Bu, kaynak kodu uyumluluğunu etkilememesi gereken dahili bir değişikliktir ancak ikili programlarda sorun yaratan bir değişikliktir. (I3b922, b/169406779)

  • SnapshotMutableState kullanıma sunuldu (Icfd03)

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

  • Recomposer.current() kaldırıldı. [Abstract]ComposeView artık varsayılan olarak pencere için ViewTreeLifecycleOwner tarafından yönlendirilen geç oluşturulmuş, pencere kapsamlı Recomposer'lar olarak ayarlanmıştır. Ana makine Yaşam Döngüsü durdurulurken yeniden oluşturma veFrameNanos tabanlı animasyon kareleri duraklatılır. (I38e11)

  • Recomposer.runningRecomposers artık süreçte devam eden bileşim durumunu gözlemlemek için küresel bir salt okunur RecomposerInfo StateFlow'u sunuyor. Bu API'yi, kullanımdan kaldırılan Recomposer.current() için tercih edin. (If8ebe)

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

Sürüm 1.0.0-alpha11

28 Ocak 2021

androidx.compose.runtime:runtime-*:1.0.0-alpha11 yayınlandı. Sürüm 1.0.0-alpha11 bu kayıtları içerir.

API Değişiklikleri

  • onCommit, onDispose ve onActive; kullanımdan kaldırılarak, SideEffect ve DisposableEffect API'lerinin (If760e) yerini aldı.
  • emit() API ve tüm aşırı yüklemeler kullanımdan kaldırıldı ve ComposeNode olarak yeniden adlandırıldı. API'ler birbirinin aynısı, yalnızca Compose'un adlandırma kurallarına uymak için farklı bir ad kullanıyorlar (I4137b)
  • inexpiration ve beste (I583a8)
  • Hatırlatıcı, CompositionLifecycleObserver'ın yerini almıştır ve CompositionLifecycleObserver kullanımdan kaldırılmıştır.

    RememberObserver, CompositionLifecycleObserver ifadesinin yerine değiştirilmiş anlamlar ve yeniden adlandırılmış yöntemler kullanır. Önerilen uygulama olan ve olmaya devam eden ve yalnızca bir kez hatırlanan nesneler için yeni API'ye geçiş mekanik olarak yapılabilir. Bununla birlikte, bir bestede bir referans birden çok kez hatırlanırsa onEnter yalnızca bir kez çağrılan her referans için onRemembered çağrılır. Nesne, alt kompozisyonlarda kullanılmışsa onEnter birden çok kez çağrıldı (örneğin, WithConstraints ve Scaffold) tek onEnter çağrısı garantisini güvenilmez hale getirdi ve RememberObserver için kaldırıldı.

    RememberObserver, RememberObserver örneğinin remember'a iletilen geri çağırmadan döndürülmesi durumunda çağrılan onAbandoned özelliğini ekler. Ancak bu işlem bileşim durumunda hatırlanmaz ve bu nedenle hiçbir zaman onRemembered çağrılmaz. Bu durum, beste tamamlanmadan önce bir istisnanın sonlandırılması veya bestenin artık güncel olmaması ya da başka bir şekilde gerekli olmaması nedeniyle bestenin silinmesi durumunda gerçekleşebilir. Yukarıdaki tek referans önerisini uygulayan RememberObserver örneği, hem onForgotten hem de onAbandoned harici bir kaynağı izliyorsa her biri artık kaynağa ihtiyaç olmadığını gösterir. Nesne, onRemembered içinde ayrılan işleri veya kaynakları izliyorsa onRemembered çağrıldığında çağrılmayacağından onAbandoned yoksayılabilir. (I02c36)

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

Hata Düzeltmeleri

  • WithConstraints, BoxWithConstraints olarak yeniden tasarlanıp foundation.layout'a taşındı. (I9420b, b/173387208)
  • Testlerde TestCoroutineDispatcher'dan yararlanın (I532b6)

Sürüm 1.0.0-alpha10

13 Ocak 2021

androidx.compose.runtime:runtime-*:1.0.0-alpha10 yayınlandı. Sürüm 1.0.0-alpha10 bu kaydetmeleri içerir.

Çarpıcı Değişim

  • Dahili derleyici API'sinin yeniden yapılandırılması, tüm @Composable işlevleri tamamlandıktan sonra, bileşimin bir sonucu olarak oluşturulan düğümlerde değişikliklerin, bileşimin "değişiklikleri uygula" aşamasında toplu olarak yapılmasını sağlar.

    Bu, değişiklikler uygulanana kadar dahili ve deneysel API'lerde artık düğüm bulunmadığı için uygulama kodunu etkileyebilecek, davranışsal zarar veren bir değişikliktir. Bu sorun, genellikle düğümler oluşturulup başlatılana kadar kodun yürütülmesini ertelemek için bir SideEffect içinde bu tür bağımlılıklarla kod yuvarlanarak çözülebilir. (I018da)

API Değişiklikleri

  • Yeniden oluşturucunun değişiklikleri uygulayıp uygulamadığını izlemek için bir yol eklendi. (I1b3e2)
  • [Abstract]ComposeView API'lerini genişleterek [Abstract]Compose tabanlı görünümlerin geri dönüşümünü sağlayarak bu görünümlerin daha sonra tekrar oluşturmak üzere imha edilmesini sağlayın. Alt besteler oluşturmak için pencere kapsamlı Recomposer ve CompositionReferences öğelerini yüklemek ve keşfetmek amacıyla API'ler ekleyin.

    [Abstract]ComposeViews'un beste yok etme stratejisini yapılandırmak için ViewCompositionStrategy ekleyin. Varsayılan davranış pencere ayırmaya göre ortadan kaldırılmaktır. (I860ab)

Hata Düzeltmeleri

  • Yeniden birleştirici artık mevcut durumunun bir Akışını sunarak 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 yayınlandı. Sürüm 1.0.0-alpha09 bu kaydetmeleri içerir.

API Değişiklikleri

  • Genel API'den SlotTable, SlotReader ve SlotWriter kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretliydi. Artık oluşturma modülünün dahilinde bulunuyorlar.

    CompositionData ve CompositionGroup, kompozisyon bilgilerini ayıklamak için kullanmak üzere arayüz araçları API'sinin yerine eklenmiştir. Bunlar herkese açık olsa da kullanıcı arayüzü API'sinin yorumladığı ham bilgileri sağladığı için (I31a9c) kullanıcı arayüzü API'si dışında kullanılmak üzere tasarlanmamıştır

  • Uygulamacı sınıfı artık (Id85b0) olarak kabul edilmemektedir

  • Applier arayüzü, ağaç oluşturma işlemini yukarıdan aşağı değil, aşağıdan yukarıya doğru kolaylaştıracak şekilde değiştirildi.

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

    Yeni bir yöntem (insertBottomUp()) eklendi.

    Bir uygulama, hangisinin daha iyi performans gösterdiğine bağlı olarak düğümleri, insertTopDown() veya insertBottomUp() kullanarak düzenlediği ağaca ekler.

    LayoutNode ve View gibi bazı ağaçlar, yukarıdan aşağıya doğru inşa etmekten çok daha verimlidir. Bu değişiklikten önce, performans için aşağıdan yukarıya yapı gerektiren her uygulama kullanıcısına kopyalanması gereken, aşağıdan yukarıya doğru bir dizi ekleme yapılması gerekiyordu. Bu değişiklikle birlikte Applier, ağacı aşağıdan yukarıya doğru oluşturmak için insertBottomUp() öğesini, yukarıdan aşağıya doğru derlemek için de insertTopDown() politikasını geçersiz kılar. (Icbdc2)

  • Compose, oluşturulabilir çağrılar yapabilen mülk alıcılarını destekler. Bu konuyla ilgili destek kaldırılmıyor, ancak bir özellik alıcıyı @Composable olarak tanımlamak için kullanılan söz dizimi değişiyor.

    Bu işlemi gerçekleştirmek için kullanımdan kaldırılan söz dizimi, özelliğin kendisine ek açıklama ekliyordu:

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

    Bunu yapmak için şu anda en doğru olan söz dizimi, özelliğin alıcısına ek açıklama eklemektir:

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

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

Hata Düzeltmeleri

Sürüm 1.0.0-alpha08

2 Aralık 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha08 yayınlandı. 1.0.0-alpha08 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Oluşturma yönergeleriyle tutarlılığı kontrol etmek amacıyla birleştirilebilir lambda parametresi adlandırma ve konumu için hata analizi denetimi eklendi. Ayrıca, hata analizi ve yönlendirmelere göre sondaki lambdalarının adı olarak children kullanan bazı API'leri content'e taşıdı. (Iec48e)
  • Yeniden düzenleyen artık EmbeddingContext kabul etmez; gerekli planlama bağımlılıkları, efektCoroutineContext'ten alınır. FrameManager 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 (I66640) olarak yeniden adlandırıldı

Hata Düzeltmeleri

  • Kullanımdan kaldırılan Ambiyanslar, son eki Ambient olarak adlandırdı ve diğer Ambiyans ve Compose API kurallarına uyarak bunların ön ekini Ambient içeren yeni özelliklerle değiştirdi. (I33440)
  • Eski kullanıcı arayüzü testi modülünü ve taslaklarını (I3a7cb) kaldırın

Sürüm 1.0.0-alpha07

11 Kasım 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha07 yayınlandı. 1.0.0-alpha07 sürümü bu kayıtları içerir.

Yeni Özellikler

API Değişiklikleri

  • @UnionType ek açıklaması kullanımdan kaldırıldı (I57cde)
  • Ambiyans sağlama işlevi sağlamak için alternatif olarak allowDefault eklendi ve yalnızca önceden bir ortam değeri sağlanmadığında ayarlanacak ortam değerlerini belirtmek için kullanılabilir. (Id6635, b/171024925)
  • LaunchedTask, SideEffect ve DisposableEffect API'leriyle tutarlılık sağlamak amacıyla LaunchedEffect olarak yeniden adlandırıldı. En iyi uygulamaları teşvik etmek için "Subject" parametresi içermeyen LaunchedEfektine izin verilmez. (Ifd3d4)
  • Uygulamada artık, bir Composer ağacın değişiklikleri uygulamaya başladığında/tamamlandığında çağrılan onbeginChanges/onEndChanges geri çağırmalarına sahiptir. Bunlar, gerekirse kaynak yönetimini toplu olarak işlemek için kullanılabilir. (Icf476)
  • Yeniden derleme için artık yapım sırasında bir CoroutineContext gerekiyor (Ic4610)
  • Dahili SlotTable uygulamasında genel API'yi etkilememesi gereken değişiklikler. (If9828)
  • Başlangıç değerini almayan, kullanımdan kaldırılmış rxjava2 bağdaştırıcıları kaldırıldı (Idb72f)

Hata Düzeltmeleri

  • foundation.Text kullanımdan kaldırıldı ve Matter.Text ile değiştirildi. Bir temadaki değerleri kullanmayan temel ve yorumsuz bir metin API'si için androidx.compose.foundation.BasicText adresine bakın. (If64cb)
  • BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField politikasını kullanın. (I896eb)
  • Düzenleyle ilgili birçok simge androidx.compose.ui'den androidx.compose.layout.ui konumuna taşındı. (I0fa98, b/170475424)

Harici Katkı

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

Sürüm 1.0.0-alpha06

28 Ekim 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha06 yayınlandı. 1.0.0-alpha06 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Yeniden oluşturucu artık bir CompositionReference ve geçerli bir beste üst öğesidir. Açık Yeniden Oluşturucu artık daha az yerde gerekli. (I4036f)
  • SideEffect'e DisposableEffect eşdeğer API'si eklendi. Böylece onCommit-with-params rolü zorunlu bir onDispose ile doldurulur.
    • Yeniden oluşturma aşamasından DisposableEffects veya LaunchedTasks gibi devam eden ya da uzun ömürlü işlemlere kadar veri yayınlamak için remindersUpdatedState API eklendi.
    • (Id50b9)
  • MutableVector artık RandomAccess'i uyguluyor (I85d73, b/170461551)
  • Bestenin yan efektlerini bestenin yönettiği nesnelere uygulamak için SideEffect kompozisyonu eklendi. SideEffect, onCommit composit özelliğinin yerini alacaktır. (Ia77c2)
  • Yeni deneysel API RestorableStateHolder. Alt ağacın [savedInstanceState] ve [remembersaveInstanceState] komutuyla tanımlanan durumun kaydedilmesine olanak tanır. Böylece alt ağaç, sonraki sefer geri yüklenen durumla yeniden oluşturulabilmesi için atılır. (I66884, b/166586419)

Hata Düzeltmeleri

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

Sürüm 1.0.0-alpha05

14 Ekim 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha05 yayınlandı. 1.0.0-alpha05 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Deneysel Modifier.pointerInput askıya alma giriş değiştiricisi (Ia77d2)
  • Her kaydırmada alt kompozisyonda daha az çalışma yapılarak LazyColumn/Row'un kaydırma performansı iyileştirildi. Beste sınıfı için yeni hasGeçersizations() yöntemi eklendi. Recomposer'daki hasPendingChanges() yöntemi has Invalidations() (Ib2f32, b/168293643, b/167972292, b/165028371) olarak yeniden adlandırıldı
  • Zaman içinde tek bir State<T> değerini güncelleyen bileşimden eş yordamları başlatmak için generateState API'yi ekleyin (Id4a57)
  • LaunchInComposition, Compose API yönergelerine uygun olacak şekilde LaunchedTask olarak yeniden adlandırıldı (I99a8e)
  • Özel Layouts'taki Place() çağrılarının sırası artık alt öğeler için ç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 yayınlandı. 1.0.0-alpha04 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Artık geçerli olmadığında düzenin toplanmasına ve gözlem kapsamlarının oluşturulmasına izin vermek için OwnerScope eklendi. (Ic4cf8)
  • Diğer Durum nesnelerini (If758b) okuyabilen (ve türetebilen) bir hesaplamaya dayalı Durum nesneleri oluşturmak için türvedStateOf API'si eklendi
  • SnapshotStateObserver için TestOnly API'si eklendi (I6e2a9)

Hata Düzeltmeleri

  • foundation.Box kullanımdan kaldı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 yayınlandı. Sürüm 1.0.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • CompositionCoroutineScope artık MonotonicFrameClock uygulamasını kullanmıyor. withFrameNanos çağrılarının üst düzey işlevi açık bir şekilde içe aktarması gerekir. (Icb642, b/166778123)

Hata Düzeltmeleri

  • onNode veya waitForIdle gibi küresel test işlevleri kullanımdan kaldırıldı. LütfenComposeTestRule'da (I7f45a) tanımlanan yeni eşdeğerlerine geçiş yapın.
  • launchInComposition, gönderilmemiş eş yordamlarını artık kullanıma sunmamaktadır (Ief6af, b/166486000)

Sürüm 1.0.0-alpha02

2 Eylül 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha02 yayınlandı. Sürüm 1.0.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

  • Anlık görüntü veri değişikliklerini kullanmak ve oluşturmak için snapshotFlow ve withMutableSnapshot API'leri ekleyin. (I3e722)
  • Birleştirilebilir işlevler için çağrı kuralı değişti. Bu, ikili programlarda sorun yaratan bir değişikliktir. Tüm kitaplıklar, oluşturma derleyici eklentisinin bu sürümüyle çalışacak şekilde yeniden derlenmelidir.

    Değişen tek API'ler, açık etkinleştirmeye sahip derleyici API'leri olduğundan bu değişiklik kaynak düzeyinde zarar veren bir değişiklik oluşturmaz. (I7afd2, b/158123185)

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

  • onPreCommit kullanımdan kaldırıldı. onCommit artık onPreCommit davranışına sahiptir.

    onCommit ve onActive artık bir sonraki koreograf karesinin başlangıcı yerine bestenin kaydedildiği koreograf karesinde çalışıyor. (I70403)

Sürüm 1.0.0-alpha01

26 Ağustos 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha01 yayınlandı. Sürüm 1.0.0-alpha01 bu kayıtları 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 yayınlandı. Sürüm 0.1.0-dev17 bu kayıtları içerir.

API Değişiklikleri

  • Özel emisyonlar, artık ayarlayıcılarından bir veya daha fazlasının atlanıp yayılmadan bağımsız olarak yeniden oluşturulabileceğini bildirebiliyor. (Ibbd13)
  • Kullanımdan kaldırılan FrameManager çağrıları kaldırıldı.

    Dahili yazma API'leri, mutableStateof() (I80ba6) gibi durum nesnelerini izlemek için genel gider miktarını azaltmak amacıyla değiştirildi

  • state { ... } derlemesi artık kullanımdan kaldırıldı. Bunun yerine, açıklık sağlamak amacıyla remember { mutableStateOf(...) } öğesine yapılan açık çağrılar devre dışı bırakıldı. Bu, genel API yüzeyini ve durum yönetimiyle ilgili kavramların sayısını azaltır ve sınıf özelliği yetkilendirmesi için by mutableStateOf() kalıbıyla eşleşir. (Ia5727)

  • Flow.collectAsState artık varsayılan görev dağıtıcıyı Dispatchers.Main'e ayarlamak yerine bestenin kendisinden belirliyor. (I9c1d9)

  • For döngüsü içinde durumu kaydeden bir öğe kullanıldığında kilitlenme. SaveInstanceState() dosyasında artık aynı anahtara izin veriliyor. UiSaveStateRegistry API'si artık bu yeni gereksinime göre ayarlanmıştır (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561)

Hata Düzeltmeleri

  • emitView desteği sonlandırıldı. Compose içinde Görünüm yayınlamak için mümkünse bunun yerine AndroidView kullanın. Görünümler ve Görünüm Grupları oluşturma işlemlerinin, bunlar AndroidView kullanılarak bileşim ağacında bırakılmadığı sürece gelecekte desteklenmeyeceğini unutmayın. (I29b1e, b/163871221)

Sürüm 0.1.0-dev16

5 Ağustos 2020

androidx.compose.runtime:runtime-*:0.1.0-dev16 yayınlandı. Sürüm 0.1.0-dev16 bu kayıtları içerir.

API Değişiklikleri

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

    Bir mutableStateOf() örneğine atanan yeni bir değerin değişiklik olarak kabul edilip edilmeyeceğini belirleyen varsayılan değer, artık === 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ğin kullanılması, geliştiricilerin beklentilerine daha iyi uyum sağlıyor.

    Örneğin,

    val state = mutableStateOf(1f)
    

    ardından şu şekilde devam edin:

    state.value = 1f
    

    artık state için bir değişiklik olarak kabul edilmez ve beste sırasında state kullanımının artık yeniden oluşturulması gerekmez.

    Bu, olumsuz bir değişikliktir ancak çoğu durumda (equals() değerini geçersiz kılmayan sınıflar kullanılırken) bir uygulama üzerinde fark edilebilir bir etkisi olmaz.

    equals() yöntemini geçersiz kılan sınıfların (ör. data sınıfları) performansta düşüş görebilirsiniz. Bunun nedeni, equals() yöntemlerinin artık bir mutableStateOf()'ye atandıklarında varsayılan olarak çağrılmasıdır.

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

  • Row ve Column artık satır içi işlevlerde, bunları kullanmanın ek yükünü önemli ölçüde azaltıyor. (I75c10)

Hata Düzeltmeleri

  • setViewContent desteği sonlandırıldı. Bunun yerine setContent kullanılmalıdır. (I7e497, b/160335130)
  • Yeni eş yordam tabanlı saatler ile eski geri çağırma tabanlı saatleri kullanan API'ler arasındaki boşluğu doldurmak için bir AnimationClockObservable öğesi olarak MonotonicFrameClock kullanabilmenizi sağlayan MonotonicFrameAnimationClock eklendi.

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

  • Modifier.stateDraggable, baştan aşağı yenilendi ve Modifier.skayable olarak yeniden adlandırıldı. Yeni bir ScrollableState sınıfı kullanıma sunuldu ve DrawerState ile BottomDrawerState sınıfını devralacak şekilde yeniden düzenleme yapıldı. [Modal/Bottom]DrawerLayout artık onStateChange parametresi almıyor. (I72332, b/148023068)

  • Modifier.plus kullanımdan kaldırıldı. Bunun yerine Modifier.then adını kullanın. "Sonra"da sıralama sinyali daha güçlüyken Modifier.padding().background() + anotherModifier yazmanız da yasaklanır, bu da zinciri bozar ve okunması daha zordur (Iedd58, b/161529964)

  • SubcomposeLayout eklendi. Alt ağaç bileşimini ölçme sırasında yalnızca daha sonra sunulacak bazı değerleri kullanmak istiyorsak ölçüm sırasında alt öğelerin oluşturulmasına olanak tanıyan düşük düzey bir temel öğedir. Örneğin, WithConstraints, SubcomposeLayout kullanılarak uygulanmamıştır. (I25cc8)

  • Material FilledTextField, TextField olarak, temel TextField'in adı ise BaseTextField olarak değiştirildi

  • Modifier.drawArka Plan, 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 yayınlandı. Sürüm 0.1.0-dev15 bu kayıtları 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ı yukarıda Bağımlılıkları bildirme bölümünde gösterilen yeni kod snippet'lerine göre güncellemeniz gerekir.

API Değişiklikleri

  • @Model ek açıklaması kullanımdan kaldırılmıştır. Alternatif olarak state ve mutableStateOf ifadesini kullanın. Bu kullanımdan kaldırma kararı, ayrıntılı bir tartışma sonrasında 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 benzer araç setleriyle daha uyumlu (Swift UI, React, Flutter)
    • Karar geri alınabilir. @Model adlı sağlayıcıyı daha sonra dilediğiniz zaman geri getirebiliriz.
    • @Model ürününün köşeye kullanımını ve yanıtlanması zor soruları ele almamız gereken işlemler olarak yapılandırmayla ilgili sorunları ortadan kaldırır
    • @Model veri sınıfı, eşittir, karma kodu vb.
    • Bazı mülklerim nasıl "gözlemleniyor", bazıları ise görmüyorum?
    • Gözlemde kullanılacak yapısal ve referanssal eşitliği nasıl belirtirim?
    • Sistemdeki “sihir”i azaltır. Bir kişinin sistemin olduğundan daha akıllı olduğunu varsayma (ör. bir listeyi nasıl fark edeceğini bilmesi) olasılığını azaltır
    • Gözlem ayrıntı düzeyini daha sezgisel hale getirir.
    • Sınıftaki değişken -> özelliğinden yeniden düzenlemeye olanak sağlar
    • Potansiyel olarak devlete özgü el ile yapılmış optimizasyonlar yapma olanakları sağlar
    • Ekosistemin geri kalanıyla daha uyumlu olur ve sabit durumu bize ya da "değişken durumu benimsemeye" yönelik belirsizliği azaltır

    Taşıma Notları

    @Model ürününün neredeyse tüm mevcut kullanımları, iki yöntemden biriyle oldukça küçük değişiklikler içerir. Aşağıdaki örnekte, yalnızca örnek olması açısından iki özellik içeren bir @Model sınıfı vardır ve bu sınıf composable bir şekilde kullanılmıştır.

    @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> kullanarak kopyalarını oluşturun.

    Kotlin'in veri sınıfları sayesinde bu yaklaşım daha kolay hâle getirilmiştir. Esas olarak, önceki tüm var özelliklerini bir veri sınıfının val özelliklerinde oluşturun, ardından remember yerine state kullanın ve durum değerini, copy(...) veri sınıfı kolaylık yöntemini kullanarak orijinalin klonlanmış kopyalarına atayın.

    Bu yaklaşımın yalnızca sınıfta yapılan mutasyonların yalnızca State örneğinin oluşturulmasıyla aynı kapsamda yapılması durumunda işe yaradığını unutmamak önemlidir. Sınıf, kullanım kapsamı dışında kendi kendine değişiyorsa ve bunun gözlemine güveniyorsanız bir sonraki yaklaşım kullanmak isteyeceğiniz 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 mülk yetki verilmiş kullanıcılarını kullanın

    Bu yaklaşım, Kotlin’in mülk delegeleri ve kompozisyon dışında MutableState örnekleri oluşturmanıza olanak tanıyan mutableStateOf API ile daha kolay hâle getirildi. Aslında, orijinal sınıfın tüm var özelliklerini var mülkleriyle değiştirin. Bunların yerine, özellik temsilcisi olarak mutableStateOf koyun. Bu, sınıfın kullanımının hiçbir şekilde değişmeyecek ve yalnızca dahili olarak uygulanması gibi bir avantaja sahiptir. Ancak davranış, orijinal örnekle tamamen aynı değildir. Çünkü her özellik artık ayrı ayrı gözlemlenmektedir/abone edilmiştir. Bu nedenle, bu yeniden düzenleme işleminden sonra göreceğiniz yeniden düzenlemeler daha dar olabilir (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/93}b/143}

  • Compose'un derleyicisinin kod oluşturma stratejisini değiştirir. Değişiklikten önce, oluşturma derleyicisi çağrıları birleştirilebilir işlevlere dönüştürür. Bu değişiklikle birlikte, composable işlevin gövdesini dönüştürüp (çoğunlukla) çağrı sitesini değiştirmeden bırakıyoruz.

    Bu, yazma çalışma zamanıyla iletişim kurma mantığının büyük kısmının, çağrı sitesi yerine işlev gövdesinin başında gerçekleştiği anlamına gelir.

    Bu, tüm oluşturma işlemlerinde kaynakla uyumlu bir değişiklik olmalıdır. Bu değişikliğin ardından, yazma özelliğini kullanan çoğu kullanıcının herhangi bir kod güncellemesi gerekmeyecektir.

    Bu çalışmayı desteklemek için oluşturulabilir tüm işlevlerin JVM imzası değiştirildi. Tek bir parametreyi kabul eden bir yazılabilir işlev, 3 parametre kabul eden bir işleve dönüştürülür. Ek parametreler, bir "anahtar" tam sayısı olan Composer, çağrılar aracılığıyla meta verileri yaymak için kullanılan bir bit maskesi tam sayıdır.

    Oluştur özelliği artık varsayılan bağımsız değişkenleri de oluşturulabilir bir işleve dönüştürüyor. Bunu, işlevin kendisinin fazladan bir sentetik varsayılan aşırı yüklemesi uygulamadan yapar. Dolayısıyla bu değişiklik, daha az işlevin tanımlanmasına neden olur.

    Aşağıdaki durumlardan kaynaklanan bilinen kasıtlı davranış değişiklikleri:

    1. Bazı aramalar, daha önce ulaşamadıkları yerden atlanır
    2. Varsayılan bağımsız değişken ifadelerindeki oluşturulabilir ifadeler artık doğru şekilde abone olundu ve işlendi

    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 oluşturulabilecek işlevlere aktarılır. Bu, çalışma zamanında daha az karşılaştırmaya neden olur, slot tablosu boyutunu küçültür ve daha önce atlanmamış birleştirilebilir işlevlerin daha fazla atlanmasını sağlar 2. Derleme zamanında "statik" olduğu belirlenen parametreler artık çalışma zamanında karşılaştırılmaz veya depolanmaz. Böylece karşılaştırma sayısı ve slot tablosu boyutu küçültülür. 3. İşlevlerin gövdesinin kontrol akışı yapısı, oluşturulan grup sayısını en aza indirmek için kullanılır. Bu, slot tablosu boyutunu küçültür ve çalışma zamanı için daha az iş yapılmasına neden olur 4. İşlevlere yönelik kullanılmayan dağıtım ve alıcı parametreleri, işlevin gövde bölümünde kullanılmadığı takdirde işlevin atlanabilirliğinin belirlenmesine dahil edilmez.

    Zarar veren değişikliklerin çoğu, derleyicinin doğrudan hedeflediği API'ler içindi ve tipik oluşturma kullanımı bu durumdan etkilenmeyecek: 1. Composer::startExpr kaldırıldı 2. Composer::endExpr kaldırıldı 3. Composer::call desteği sonlandırıldı 4. key öğesinin değişken olmayan 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ı. Yedek olarak key kullanın. 6. ScopeUpdateScope::updateScope, Function1 yerine bir Function3 içerecek şekilde değiştirildi 7. restartableFunction ve restartableFunctionN, ek derleme zamanı 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)

  • Uygulama, artık bileşimleri atmak için clear() yöntemi gerektiriyor (Ibe697)

  • Tüm listeyi kopyalamak zorunda kalmadan herkese açık API'ye iletilmesine izin vermek için MutableVector'a asMutableList() eklendi. (I298df)

  • Etkinliklere yanıt olarak iş başlatmak amacıyla kompozisyonda yönetilen bir CoroutineScope almak için readCoroutineScope() eklendi. (I0e264)

  • MutableVector, standart Koleksiyon arayüzlerinin hiçbirini uygulamayan yeni bir koleksiyondur. Bu koleksiyon, diğer gereksinimlerin üzerinde hız sunar ve yalnızca dahili uygulamalarda kullanılmak üzere tasarlanmıştır. (I8ebd6)

  • Kotlin oluşturma sürümünde bir sorun yaşanmaması için StableMutableList ve StableMutableMap geçici olarak kaldırıldı. Oluşturma işlemi, Kotlin'in bu sorun içermeyen sürümüne güncellendiğinde bu arayüzler yeniden kullanıma sunulur.

    SnapshotStateList ve SnapshotStateMap şu anda 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 ek açıklaması kullanımdan kaldırılmıştır. @ComposableContract(tracked=false) ile değiştirin (Id211e)

  • RedirectableFunction ve ilişkili API'ler, ComposableLambda vb. olarak yeniden adlandırıldı. Bu API'ler yalnızca derleyici tarafından hedeflendiği için bu durum kaynak düzeyi uyumluluğunu normal şekilde etkilemeyecektir. Yeniden adlandırma öncelikle bu sınıfın yığın izlemelerde gösterildiğinde daha iyi olduğunu belirtmek amacıyla yapılmıştır (I7eb25)

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

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

  • Bu değişiklikten önce, yazma derleyici eklentisi (I5205a, b/158123804) varsa @Composable işlevinin içindeki kuruculara yapılan çağrılara önemsiz bir şekilde müdahale ediyordu.

  • Recompose kompozisyonu artık yararlı bir soyutlama değil. Çoğu yeniden oluşturma işlemi MutableState atamaları sonucunda gerçekleşir. Bunun dışında her şey için geçerli kapsamın yeniden oluşturulmasını tetiklemek üzere invalidate işlevini kullanmanız önerilir. (Ifc992)

  • Gözlem artık faydalı bir soyutlama değil. Kodu çoğaltmanız gerekiyorsa, yalnızca, özelleştirilebilir bir lambda parametresi yürüten hazırlanabilir bir işlev oluşturarak bu işlevin uygulanması yinelenebilir. Örneğin, @Composable fun Observe(body: @Composable () -> Unit) = body() (I40d37)

  • @Direct işlevinin desteği sonlandırıldı ve yerini @ComposableContract(restartable=false) kullanıma aldı (If4708)

  • Kısa süre önce kullanıma sunulan StateFlow için, başlangıç değerinin önceden doldurulmasına olanak tanıyan bir bağdaştırıcı eklendi. Böylece döndürülen Durum, null olamaz (I61dd8, b/156233789)

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

  • [Mutable]Eyalet mülk yetki verilmiş operatörleri, Kotlin 1.4 mülk yetkilendirmesi optimizasyonlarını desteklemek için 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 kaldırıldı. androidx.ui.node.UiComposer androidx.compose.Emittable kaldırıldı. componentNode ile yedekliydi. androidx.compose.ViewAdapters kaldırıldı. Bunlar artık desteklenen bir kullanım alanı değildir. Compose.composeInto kullanımdan kaldı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'ya taşındı BileşenNode#emitInsertAt, BileşenNode#insertAt olarak yeniden adlandırıldı BileşenNode#emitRemoveAt, BileşenNode#removeAt NoefNodemove#emitMode (BileşenNoef#emitMode), Bileşen

  • ComposeFlags.COMPOSER_PARAM işareti, true olarak güncellendi. Bu durum, oluşturma eklentisinin kod oluşturma stratejisini değiştirecek. Yüksek düzeyde bu durum, @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 aktarılır. Bu, önemli bir ikili program değişikliğidir. Ancak tüm onaylı oluşturma kullanımlarında kaynak düzeyindeki uyumluluğun korunması gerekir. (I7971c)

  • Ambiyans API'sinde önemli değişiklikler. Ayrıntılar için günlüğe ve Ambient<T> dokümanlarına bakın (I4c7ee, b/143769776)

  • ui-livedata eklendi - LiveData için bağdaştırıcıya sahip yeni yapı. Kullanım örneği: LiveData.observeAsState() tarafından kullanılan val değeri (Ie9e8c, b/150465596)

  • Açık başlangıç değeri olmayan Rx adaptörleri kullanımdan kaldırılmıştır. Null kullanmak her zaman en iyi varsayılan yöntem değildir. Örneğin, bir listeniz varsa boşList() veya başka bir makul varsayılan (I00025, b/161348384) ile başlamak daha iyidir

  • RxJava2 için bağdaştırıcılara sahip yeni yapı ui-rxjava2 eklendi. Kullanım örneği: observable.subscribeAsState() tarafından kullanılan val değeri (Ifab4b, b/153369097)

  • savedInstanceState() artık null özellikli türlerle kullanılabilir (I6847f, b/153532190)

  • Özel Saver nesneleri yazmayı kolaylaştıran yeni listSaver() vemapSaver() işlevleri (I8cf68, b/152331508)

  • Yeni işlevler: saveInstanceState() ve hatırlamakSaveInstanceState(). Bu işlevler, state() ve come() ile benzerdir ancak içinde (If1987, b/152025209) kayıtlı bir örnek durumu destek derlemesi mevcuttur.

Hata Düzeltmeleri

  • runOnIdleCompose, runOnIdle (I83607) olarak yeniden adlandırıldı
  • LayoutNode deneysel API'sı oluşturuldu (I4f2e9)
  • androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue desteği sonlandırıldı. Bu türü kullanan TextField,FilledTextField ve CoreTextField besteleri de kullanımdan kaldırılmıştır. Lütfen bunun yerine androidx.ui.input.TextFieldValue öğesini kullanın (I4066d, b/155211005)
  • Modifier'dakidrawArka Plan uzantı API'leri yerine, kullanımdan kaldırılan DrawArka Plan API'si kaldırıldı. Kod yollarını azaltmak için renk, fırça ve boya çekme Arka plan uygulamaları yeniden düzenlendi ve bileşim kapsamında Değiştirici'nin oluşturulması zorunluluğu kaldırıldı. (I0343a)
  • Canvas'ı CanvasScope'u kullanıma sunacak şekilde gösteren üst düzey oluşturma API'leri güncellendi. Bu sayede, tüketicilerin kendi Paint nesnelerini tutma gerekliliği ortadan kalkar. Hâlâ bir Canvas'a erişmesi gereken tüketiciler, çizim komutu vermek için temel Tuval'e geri çağırma sağlayandrawCanvas uzantı yöntemini kullanabilir. (I80afd)
  • WithConstraints sondaki lambda API'si değiştirildi. Artık iki parametre yerine, kısıtlamalar ve layoutDirection'a ek olarak Dp'de minwidth, maxwidth, minHeight ve maxHeight özelliklerini sağlayan bir alıcı kapsamına sahiptir (I91b9a, b/149979702)
  • Simetrik dolgu değiştiricisi eklendi. (I39840)
  • wrapContentwidth ve wrapContentHeight, herhangi bir Hizalama yerine dikey veya yatay Hizalama beklenecek şekilde güncellendi. Yerçekimi değiştirici, 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)
  • kullanıcı arayüzü modülü, ui-text-core (I57dec) olarak yeniden adlandırılmıştır
  • DrawModifier API'yi iyileştirin:
    • schema() ContentDrawScope için alıcı kapsamı oluşturuldu
    • draw() üzerindeki tüm parametreler kaldırıldı
    • DrawScope eski CanvasScope ile aynı arayüze sahip
    • ContentDrawScope yöntemi,drawContent() yöntemine (Ibaced, b/152919067) sahiptir
  • ColoredRect kullanımdan kaldırıldı. Bunun yerine Box(Modifier.preferredSize(width, height).drawBackground(color)) politikasını kullanın. (I499fa, b/152753731)
  • Değiştirici artı operatörü, fabrika uzantı işlevleriyle değiştirildi (I225e4)
  • RowScope ve ColumnScope üyelerine Satır ve Sütun dışından erişilebilir. (I3a641)
  • LayoutEsnek adlı düzen, Layoutweight olarak yeniden adlandırıldı. Sıkı parametre, doldurulacak şekilde yeniden adlandırıldı. (If4738)
  • WithConstraints, LayoutDirection parametresini (I6d6f7) aldı
  • Arka plan, Drawbackground olarak yeniden adlandırıldı ve varsayılan olarak hatırlanacak (Ia0bd3)
  • ButtonStyle farklı işlevlerle değiştirildi ve metin (dize) aşırı yüklemesi kaldırıldı. Kullanım bilgileri için güncellenmiş örneklere bakın. (If63ab, b/146478620, b/146482131)
  • runOnIdleCompose ve runOnUiThread artık ComposeTestRule'daki yöntemler yerine genel işlevlerdir. (Icbe8f)

Harici Katkı

  • Compose Çalışma Zamanı taşıma katmanından Looper ve Handler gibi gereksiz API'leri kaldırın (I6847d)
  • Flow<T>.collectAsState() öğesini başlangıç değeri olmadan kullanımdan kaldırın. Bunun yerine StateFlow<T> kullanın veya açık bir başlangıç değeri iletin. (I63f98, b/157674865)