DataStore

Verileri eşzamansız, tutarlı ve işlemsel olarak depolayarak SharedPreferences'ın bazı dezavantajlarını ortadan kaldırır.
Son Güncelleme Kararlı sürüm Sürüm Adayı Beta Sürümü Alfa sürümü
22 Ekim 2025 1.1.7 - 1.2.0-beta01 -

Bağımlılıkları bildirme

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

DataStore'un iki uygulaması vardır: Preferences ve Proto. Birini veya diğerini seçin. Android'den bağımsız bağımlılıkları da her iki uygulamaya ekleyebilirsiniz.

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

Preferences DataStore

Groovy

    // Preferences DataStore (SharedPreferences like APIs)
    dependencies {
        implementation "androidx.datastore:datastore-preferences:1.1.7"

        // optional - RxJava2 support
        implementation "androidx.datastore:datastore-preferences-rxjava2:1.1.7"

        // optional - RxJava3 support
        implementation "androidx.datastore:datastore-preferences-rxjava3:1.1.7"
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation "androidx.datastore:datastore-preferences-core:1.1.7"
    }
    

Kotlin

    // Preferences DataStore (SharedPreferences like APIs)
    dependencies {
        implementation("androidx.datastore:datastore-preferences:1.1.7")

        // optional - RxJava2 support
        implementation("androidx.datastore:datastore-preferences-rxjava2:1.1.7")

        // optional - RxJava3 support
        implementation("androidx.datastore:datastore-preferences-rxjava3:1.1.7")
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation("androidx.datastore:datastore-preferences-core:1.1.7")
    }
    

Proto DataStore

Groovy

    // Typed DataStore (Typed API surface, such as Proto)
    dependencies {
        implementation "androidx.datastore:datastore:1.1.7"

        // optional - RxJava2 support
        implementation "androidx.datastore:datastore-rxjava2:1.1.7"

        // optional - RxJava3 support
        implementation "androidx.datastore:datastore-rxjava3:1.1.7"
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation "androidx.datastore:datastore-core:1.1.7"
    }
    

Kotlin

    // Typed DataStore (Typed API surface, such as Proto)
    dependencies {
        implementation("androidx.datastore:datastore:1.1.7")

        // optional - RxJava2 support
        implementation("androidx.datastore:datastore-rxjava2:1.1.7")

        // optional - RxJava3 support
        implementation("androidx.datastore:datastore-rxjava3:1.1.7")
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation("androidx.datastore:datastore-core:1.1.7")
    }
    

Geri bildirim

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

Yeni sorun oluşturma

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

Sürüm 1.2

Sürüm 1.2.0-beta01

22 Ekim 2025

androidx.datastore:datastore-*:1.2.0-beta01 iptal edilir. 1.2.0-beta01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • CorruptionHandler herkese açık hâle getirin. (I9ac35, b/452406457)
  • GuavaDataStore uygulamasında androidx.core.util.Function kullanın. (I71eae, b/448563999)
  • GuavaDataStore.from için CoroutineContext yerine Executor alan bir aşırı yükleme ekleyin. (I989fa, b/448563183)

Hata Düzeltmeleri

  • R8 ile optimize edilmiş ancak getDefaultProguardFile('android-proguard-optimize.txt') kullanmayan bir uygulamada DataStore kullanılırken java.lang.UnsatisfiedLinkError düzeltildi. (I27d0d, b/434696293)
  • GuavaDataStore işlemlerinin, belirtilen G/Ç dağıtıcı yerine çağıran iş parçacığında (ör. ana iş parçacığı) yanlışlıkla çalışmasına neden olan sorun düzeltildi. (Ic91ea,b/441801112)

Sürüm 1.2.0-alpha02

7 Mayıs 2025

androidx.datastore:datastore-*:1.2.0-alpha02 iptal edilir. 1.2.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • GuavaDataStore sürümünde çoklu işlem desteği eklendi. (e0d608a).
  • DataStore öğesinden GuavaDataStore oluşturmak için yardımcı yöntem eklendi. (9af26f4)
  • Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir. (Idb6b5)
  • Mevcut datastore aşırı yüklemesini, doğrudan başlatma sırasında kullanılacak bir DataStore'u başlatmak için bir temsilci yöntemiyle değiştirin. (If71b9)

Sürüm 1.2.0-alpha01

26 Mart 2025

androidx.datastore:datastore-*:1.2.0-alpha01 iptal edilir. 1.2.0-alpha01 sürümü bu commit'leri içerir.

Yeni Özellikler

  • datastore-guava modülü, GuavaDataStore aracılığıyla Java ve Guava ListenableFuture kullanıcılarına uygun API'leri kullanıma sunmak için eklendi. (Iadd5e0)
  • DirectBoot modunda DataStore kullanımı artık destekleniyor. Doğrudan başlatma modunda kullanılacak bir veri deposu oluşturmak için bu veri deposunun Cihaz Korumalı depolama alanında oluşturulması gerekir. Bu, DataStoreFactory'deki DataStore API'leri createInDeviceProtectedStorage() ve DataStoreDelegate'deki deviceProtectedDataStore() ile sağlanabilir. (Ib90e56)

API Değişiklikleri

  • FileStorage ile kullanılmak üzere androidx.datastore.core.Serializer arayüzünü uygulayan PreferencesFileSerializer eklendi. (I4c71f3)

Hata Düzeltmeleri

  • Yarış durumu söz konusu olduğunda verileri okumak için ikinci bir deneme eklenerek başlangıçta OkioStorage içindeki FileNotFoundException sorunu giderildi. (I43b3fb, b/337870543)
  • Ortak kod kullanımı için ReplaceFileCorruptionHandler öğesinin varsayılan oluşturucusunu tanımladı. (I795b05, b/358138957)

Sürüm 1.1

Sürüm 1.1.7

20 Mayıs 2025

androidx.datastore:datastore-*:1.1.7 iptal edilir. 1.1.7 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • datastore-preferences-core Android yapısında eksik Proguard kuralları sorunu düzeltildi. (3f3f6e, b/413078297)

Sürüm 1.1.6

7 Mayıs 2025

androidx.datastore:datastore-*:1.1.6 iptal edilir. 1.1.6 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Gradle meta verilerinin 1.1.5 sürümünde bozulmasına neden olan sorun düzeltildi. Bu sorun, yeni AGP KMP eklentisi DSL'sindeki bir hatadan kaynaklanıyordu. Bu hata, tüm hedef platformların meta verilerinin otomatik olarak eklenmesini engelliyordu. Bu hata, bazı DataStore Android yöntemlerinin artık müşterilerin derlemelerinde görünmemesine neden oluyor. Bu sorunu düzeltmek için androidLibrary yerine build.gradle içinde eski android DSL'yi kullanmanız gerekir. (7801abf)

Sürüm 1.1.5

23 Nisan 2025

androidx.datastore:datastore-*:1.1.5 iptal edilir. 1.1.5 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • PreferencesDataStore içinde CorruptionException sorunlarını azaltmak için varsayılan depolama alanı OkioStorage olarak değiştirildi.FileStorage Bu değişiklik, PreferencesFileSerializer kullanılarak uygulanmıştır. b/346197747

Sürüm 1.1.4

26 Mart 2025

androidx.datastore:datastore-*:1.1.4 iptal edilir. 1.1.4 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • CorruptionException değerini azaltarak güvenilirliği artırmak için varsayılan depolama alanını OkioStorage yerine FileStorage olarak değiştirin. (I71181, b/346197747)

Sürüm 1.1.3

26 Şubat 2025

androidx.datastore:datastore-*:1.1.3 iptal edilir. 1.1.3 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Uygulama başlatılırken OkioStorage içinde karşılaşılan FileNotFoundException sorunu düzeltildi. İlk dosya okuma denemesi başarısız olursa ilk okuma sırasında dosyanın farklı bir işlem tarafından oluşturulması nedeniyle yarış durumu oluşmuş olabileceği ihtimaline karşı ikinci bir deneme yapılır. (I43b3f, b/337870543)

Sürüm 1.1.2

15 Ocak 2025

androidx.datastore:datastore-*:1.1.2 iptal edilir. 1.1.2 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Sıcak okuma gecikmesini (DataStore.data.first()) 8 kat iyileştirin. (22b8a40)
  • ReplaceFileCorruptionHandler, KMP ortak kodundan oluşturulabilir. (7632e839)

Sürüm 1.1.1

1 Mayıs 2024

androidx.datastore:datastore-*:1.1.1 iptal edilir. 1.1.1 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Birden fazla DataStore örneğinin dosya kilidini geri alarak farklı işlemlerden yazmaya çalıştığı uç bir durumda "Kaynak kilitlenmesi oluşacak" hatasıyla ilgili Linux'taki yanlış alarm sorunu giderildi.

Sürüm 1.1.0

17 Nisan 2024

androidx.datastore:datastore-*:1.1.0 iptal edilir. 1.1.0 sürümü bu commit'leri içerir.

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

Daha fazla bilgi için lütfen 1.1.0'ın alfa ve beta sürümlerinin sürüm notlarını inceleyin. 1.1.0'daki başlıca güncellemelerden bazıları şunlardır:

  • DataStore artık aynı dosyaya erişen birden fazla işlemi destekliyor ve işlemler arasında gözlemlenebilirlik desteği sunuyor.
  • Yeni depolama arayüzü, veri modellerinizi nasıl depolayacağınızı veya serileştireceğinizi özelleştirmenize olanak tanır.
  • Artık Kotlin Multiplatform projelerinde DataStore'u kullanabilirsiniz.

Sürüm 1.1.0-rc01

3 Nisan 2024

androidx.datastore:datastore-*:1.1.0-rc01 iptal edilir. 1.1.0-rc01 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Yeni veriler eski verilerle aynıysa updateData çağrılarının disk yazma işlemlerini optimize etmediği performans düşüşü düzeltildi (d64cfb5).
  • MultiProcess DataStore öğesinin başlatma sırasında geçersiz kılmaları kaçırmasına neden olan yarışma durumu düzeltildi. ((b/326141553),(094c2dd))

Sürüm 1.1.0-beta02

6 Mart 2024

androidx.datastore:datastore-*:1.1.0-beta02 iptal edilir. 1.1.0-beta02 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • DataStore'da performans iyileştirme özelliği yalnızca gözlemlendiğinde güncelleme bildirimlerini toplar. (b/267792241)
    • Bu değişikliğin, Coroutines test kitaplığını kullanıyorsanız testlerinizde UncompletedCoroutinesError tetikleyebileceğini unutmayın. Bu sorunu önlemek için testlerinizde DataStore başlatılırken TestScope.backgroundScope değerini ilettiğinizden emin olun.
  • Aynı örnekteki iç içe yerleştirilmiş updateData çağrılarının kilitlenmesine neden olan sorun düzeltildi. (b/241760537)
  • Taşıma sırasında SharedPreferences silinemezse DataStore artık IOExceptions istisnası oluşturmayacak. (b/195553816)
  • Android olmayan JVM ortamlarında updateData sırasında dosyanın yeniden adlandırılmasının başarısız olmasına neden olan sorun düzeltildi. (b/203087070)
  • DataStore başlatıldıktan sonra CorruptionException öğesinin işlenmemesine neden olan sorun düzeltildi. (b/289582516)

Sürüm 1.1.0-beta01

10 Ocak 2024

androidx.datastore:datastore-*:1.1.0-beta01, 1.1.0-alpha07 tarihinden beri herhangi bir değişiklik yapılmadan yayınlandı. 1.1.0-beta01 sürümü şu commit'leri içerir.

Sürüm 1.1.0-alpha07

29 Kasım 2023

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

API Değişiklikleri

  • MultiProcessDataStoreFactory yöntemleri artık deneysel değildir.MultiProcessDataStoreFactory ek açıklaması tamamen kaldırıldı.@ExperimentalMultiProcessDataStore (Ieee54, I8e607)

Hata Düzeltmeleri

  • @ExperimentalMultiProcessDataStore ek açıklamalarının kaldırılması 1.1.0-alpha07 sürümünde kullanıma sunuldu. (I8e607)

Sürüm 1.1.0-alpha06

1 Kasım 2023

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

API Değişiklikleri

  • createSingleProcessCoordinator fabrika yöntemi, createMultiProcessCoordinator ile tutarlı olması için artık bir dosya yolu (String, java.io.File ve okio.Path) alıyor. (I211c8, b/305755935)

Sürüm 1.1.0-alpha05

6 Eylül 2023

androidx.datastore:datastore-*:1.1.0-alpha05 iptal edilir. Version 1.1.0-alpha05 contains these commits.

API Değişiklikleri

  • Datastore FileStorage artık herkese açık olarak kullanılabiliyor. Böylece istemciler özel parametreler sağlayabilir. (Icb985)
  • OkioStorage oluşturucusu, InterProcessCoordinator kabul edecek şekilde değiştirildi. Böylece, MultiProcessCoordinator ile Android'de kullanılabilir. (Iecea3)

Hata Düzeltmeleri

  • MultiProcessCoordinator Aynı dizindeki birden fazla dosyanın izlenememesi sorunu düzeltildi.
  • Dosya yolları normalleştirilmemişse yinelenen dosyaların algılanamaması sorunu düzeltildi.
  • RxDataStore#isDisposed tarafından döndürülen yanlış değerleri düzeltin.
  • datstore-preferences-core yapıtı için eksik ProGuard yapılandırmasını düzeltin.

Sürüm 1.1.0-alpha04

5 Nisan 2023

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

Hata Düzeltmeleri

  • DataStore'nın veri akışının güncellemeden sonra eski bir değer yayabileceği yarış durumu sorununu önlemek için dahili uygulamayı iyileştirin.

Sürüm 1.1.0-alpha03

24 Mart 2023

androidx.datastore:datastore-*:1.1.0-alpha03 iptal edilir.

Hata Düzeltmeleri

  • Kotlin Native Targets'taki bir derleme sorununu geçici olarak çözmek için Maven yapılarındaki bağımlılık kısıtlamaları kaldırıldı (b/274786186, KT-57531).

Sürüm 1.1.0-alpha02

22 Mart 2023

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

Not

Bu sürümün, tek süreçli ve çok süreçli DataStore uygulamaları için uygulamaları birleştiren önemli bir dahili yeniden düzenleme içerdiğini unutmayın. Lütfen olası istenmeyen davranış değişikliklerine (ör. güncelleme bildirimlerinin zamanlaması) dikkat edin. Bu tür değişiklikleri bildirmek için sorun izleyici bileşenini kullanabilirsiniz.

Yeni Özellikler

  • Artık KMM projelerinde DataStore kullanabilirsiniz. DataStore'un Android dışı hedeflerinin hâlâ deneysel olduğunu ancak geliştiricilerin bunları denemesini kolaylaştırmak için sürümleri birleştirmeye karar verdiğimizi unutmayın.
  • Çoklu işlem özellikleri androidx.datastore.multiprocess konumundan androidx.datastore.core konumuna taşındı.
  • Dosya işlemleri için Storage nesneleriyle DataStore örnekleri oluşturmak üzere androidx.datastore.core.MultiProcessDataStoreFactory'ya yeni bir fabrika yöntemi ekleyin.
  • Birden fazla DataStore örneğinin süreçler arasında iletişim kurmasına yardımcı olan yeni bir arayüz InterProcessCoordinator ekleyin. InterProcessCoordinator'nın çok işlemli uygulamasının yalnızca Android'de kullanılabildiğini unutmayın.

API Değişiklikleri

  • Veri deposu çekirdek arayüzünde (I555bb) InterProcessCoordinator öğesini StorageConnection öğesine ekleyin.
  • datastore-core MultiProcessDataStoreFactory içindeki API'leri Storage'ı kullanacak şekilde değiştirin. (Iac02f)
  • datastore-multiprocess'teki herkese açık API'leri datastore-core'a taşıma (I76d7c)
  • Exposed PreferencesSerializer from datastore-preferences-core (I4b788)
  • @JvmDefaultWithCompatibility ek açıklamasını ekleme (I8f206)

Sürüm 1.1.0-alpha01

9 Kasım 2022

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

Yeni Özellikler

  • Veri tutarlılığının süreçler genelindeki DataStore örnekleri arasında garanti edildiği çok süreçli kullanım alanlarını destekleyin. Bu tür DataStore örnekleri oluşturmak için MultiProcessDataStoreFactory#create ekleyin.
  • Datastore için temel depolama mekanizmasının değiştirilmesine olanak tanıyan yeni depolama alanı arayüzü. java.io ve okio için uygulamalar sağlanır. DataStore fabrikalarında bu Storage nesnesini kabul eden yeni yöntemler var.

API Değişiklikleri

  • datastore-core MultiProcessDataStoreFactory içindeki API'leri Storage'ı kullanacak şekilde değiştirin. (Iac02f)
  • datastore-multiprocess'teki herkese açık API'leri datastore-core'a taşıma (I76d7c)
  • Exposed PreferencesSerializer from datastore-preferences-core (I4b788)

Sürüm 1.0.0

Sürüm 1.0.0

4 Ağustos 2021

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

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

Jetpack DataStore, anahtar/değer çiftlerini veya protokol arabellekleriyle yazılmış nesneleri depolamanıza olanak tanıyan bir veri depolama çözümüdür. DataStore, verileri eşzamansız, tutarlı ve işlemsel olarak depolamak için Kotlin coroutine'lerini ve Flow'u kullanır.

Sürüm 1.0.0-rc02

21 Temmuz 2021

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

Hata Düzeltmeleri

  • Anahtar yoksa SharedPreferencesMigration'nın çalışmadığını netleştirin. (Icfa32, b/192824325)
  • MIGRATE_ALL_KEYS ile oluşturulan SharedPreferencesMigration öğesinin, istenen anahtar henüz mevcut değilse istisna oluşturmasına neden olan hata düzeltildi. (Ie318a, b/192824325)

Sürüm 1.0.0-rc01

30 Haziran 2021

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

Hata Düzeltmeleri

  • .java dosyasının nihai JAR'a yanlışlıkla eklenmesine neden olan hata düzeltildi (I65d96, b/188985637).

Sürüm 1.0.0-beta02

16 Haziran 2021

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

Hata Düzeltmeleri

  • ClassVerificationFailure ile ilgili sorunu düzeltin (b/187450483)

Sürüm 1.0.0-beta01

21 Nisan 2021

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

API Değişiklikleri

  • Yalnızca Kotlin yöntemleri için JVM aşırı yüklemelerini kaldırın (I2adc7)

Hata Düzeltmeleri

  • Veri deposu temsilcilerinin bağlamların sızmasına neden olabildiği hata düzeltildi (Ie96fc, b/184415662).

Sürüm 1.0.0-alpha08

10 Mart 2021

androidx.datastore:datastore-*:1.0.0-alpha08 iptal edilir. Version 1.0.0-alpha08 şu commit'leri içerir.

API Değişiklikleri

  • Artık dataStore ve preferencesDataStore mülk temsilcinize bağlama bağlı bir taşıma ekleyebilirsiniz. (I4ef69, b/173726702)
  • Veri deposu temsilcisini veya context.createDataStore'u artık kullanmıyorsanız dosyanın adını almak için yardımcı işlevler ekler (I60f9a).
  • Serializer writeTo ve readFrom artık askıya alınıyor. Serializer uyguladıysanız işlevlerinizi askıya alma işlevleri olarak güncellemeniz gerekir. (I1e58e)
  • RxDataStore kullanıcıları için mülk temsilcileri eklendi. (Ied768, b/173726702)

Hata Düzeltmeleri

  • Deneysel API'lerin genel kullanımına kısıtlamalar getirme (I6aa29, b/174531520)

Sürüm 1.0.0-alpha07

24 Şubat 2021

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

API Değişiklikleri

  • Context.createDataStore uzantı işlevi kaldırıldı ve yerine globalDataStore mülk temsilcisi eklendi. Kotlin dosyanızda üst düzeyde globalDataStore'u bir kez çağırın. Örneğin:

    val Context.myDataStore by dataStore(...)
    

    Bunu kotlin dosyanızın en üst düzeyine yerleştirin. Böylece yalnızca bir örneği olur. (I57215, b/173726702)

  • RxDataStore işlevleri artık DataStore'daki uzantı işlevleri yerine RxDataStore sınıfında yer alıyor. (Idccdb, b/177691248)

  • EncryptedSharedPreferences'ı (veya doğrudan başlatma SharedPreferences'ı) DataStore'a taşımak istiyorsanız artık SharedPreferences'ı yerleştirmenize olanak tanıyan yeni SharedPreferencesMigration oluşturucuyu kullanarak bunu yapabilirsiniz. (I8e04e, b/177278510)

Hata Düzeltmeleri

  • DataStore artık aynı dosya için birden fazla etkin DataStore varsa istisna oluşturacak. DataStore'unuzu Singleton olarak yönetmiyorsanız veya bir dosya için aynı anda iki DataStore örneğinin etkin olmamasını sağlamıyorsanız artık DataStore'a okuma veya yazma işlemi yaparken istisnalar görebilirsiniz. Bunlar, DataStore'unuzu Singleton olarak yöneterek düzeltilebilir. (Ib43f4, b/177691248)
  • Arayan kapsamı iptal edildiğinde iptal davranışını düzeltir. (I2c7b3)

Sürüm 1.0.0-alpha06

13 Ocak 2021

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

Yeni Özellikler

  • DataStore için RxJava sarmalayıcıları eklendi. datastore-rxjava2/3 yapay nesneleri, temel DataStore API'lerinin (RxDataStore, RxDataStoreBuilder ve RxDataMigration) sarmalayıcılarını içerir. datastore-preferences-rxjava2/3 yapay nesneleri, Preferences DataStore oluşturmak için bir oluşturucu içerir.

API Değişiklikleri

  • CorruptionHandler arayüzünü gizleyin. DataStore fabrikası yalnızca ReplaceFileCorruptionHandler'ı kabul ettiğinden bu yöntemin herkese açık olması için bir neden yoktu. (I0b3b3, b/176032264)
  • preferencesKey<T>(name: String): Key<T> yöntemi kaldırıldı ve desteklenen her türe özgü yöntemlerle değiştirildi. Örneğin, preferencesKey<Int>("int") artık intPreferencesKey("int") (Ibcfac, b/170311106)

Hata Düzeltmeleri

  • DataStoreFactory ile ilgili dokümanlarda, veri deposu dosyasının "datastore/" alt dizininde oluşturulduğu bilgisinin eksik olması düzeltildi. (Ica222)

Sürüm 1.0.0-alpha05

2 Aralık 2020

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

Hata Düzeltmeleri

  • Veri depolarından eşzamanlı yazma işlemleriyle ilgili daha iyi dokümanlar ve istisnalar ekleyin. (Ia98a2, b/173522155, b/173726702)
  • Artık Serializer.writeTo()'ya iletilen OutputStream'in kapatılmasına izin veriyoruz (ancak bu zorunlu değildir). (I5c9bf, b/173037611)

Sürüm 1.0.0-alpha04

17 Kasım 2020

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

Hata Düzeltmeleri

  • Preference Datastore'da 1.0.0-alpha03 aşağıdaki kilitlenmeye neden olan bir paketleme sorunu düzeltildi: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences

Sürüm 1.0.0-alpha03

11 Kasım 2020

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

Yeni Özellikler

  • Tercihler artık çift değerleri destekliyor (bu, kayan noktalı sayılardan daha fazla hassasiyete ihtiyacınız varsa kullanışlıdır) (I5be8f, b/169471808)

API Değişiklikleri

  • Daha hızlı derleme için Datastore'a yönelik saf Kotlin bağımlılığı oluşturuldu. androidx.datastore:datastore-core yalnızca temel Kotlin API'lerini, androidx.datastore:datastore ise Android'e bağlı API'leri (SharedPreferencesMigration ve Context.createDataStore oluşturucu dahil) içerir.(I42d75, b/168512698)
  • Daha hızlı Kotlin derlemesi için tercihler veri deposu hedeflerini ayırma (Ia3c19)
  • Serileştiriciler artık diskte veri yoksa kullanılacak varsayılan değer için yeni bir özellik gerektiriyor. Bu sayede, kullanıcıların boş giriş akışlarını özel olarak ele alması gerekmez (boş giriş akışları JSON ile ayrıştırılmaz) ve özel serileştiricilerin uygulanması kolaylaşır.

    • Ayrıca, writeTo() işlevine sağlanan çıkış akışının kapalı olmadığını onaylamak için bir kontrol de eklendi. Kapalıysa istisnalar oluşturuluyor (I16e29).
  • SharedPreferencesView için oluşturucuyu dahili hale getirme. Test yapılmasına olanak tanımak için başlangıçta herkese açık olarak ayarlanmıştır. Bunun yerine, testlerde bir SharedPreferencesMigration oluşturulmalı ve bu yapıya karşı test yapılmalıdır. (I93891)

Hata Düzeltmeleri

  • DataStoreFactory ve PreferenceDataStoreFactory üzerindeki produceFile parametresi artık listedeki son parametre olduğundan Kotlin sondaki lambda söz dizimini kullanmanıza olanak tanır. (Ibe7f1, b/169425442)
  • Kotlin için yeni açık API şartlarına (I5ae1e) uyulmalıdır.

Bilinen Sorunlar

  • Tercih veri deposu, java.lang.NoClassDefFoundError ile kilitleniyor. (b/173036843)

Sürüm 1.0.0-alpha02

14 Ekim 2020

androidx.datastore:datastore-core:1.0.0-alpha02 ve androidx.datastore:datastore-preferences:1.0.0-alpha02 yayınlandı. 1.0.0-alpha02 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Datastore-core'da mutasyona karşı koruma eklendi. Değişiklik, veri deposunu proto olmayan/tercih olmayan türlerle kullanan kişiler için veri deposu kullanımını bozuyor (I6aa84)
  • Mevcut durumun hata ayıklamasını kolaylaştırmak için Preferences.kt dosyasına toString yöntemi eklendi (I96006).
  • DataStore.Preferences (I1134d) özelliğinin kötüye kullanımına karşı koruma sağlamak için istisna eklendi
  • Uygulamanın başlatılırken kilitlenmesine neden olan hata düzeltildi (I69237, �b/168580258).

Sürüm 1.0.0-alpha01

2 Eylül 2020

androidx.datastore:datastore-core:1.0.0-alpha01 ve androidx.datastore:datastore-preferences:1.0.0-alpha01 yayınlandı. 1.0.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

Jetpack DataStore, SharedPreferences'in yerini almayı amaçlayan yeni ve geliştirilmiş bir veri depolama çözümüdür. Kotlin coroutines ve Flow üzerine kurulu olan DataStore, iki farklı uygulama sunar:

  • Proto DataStore: Türü belirlenmiş nesneleri (protokol arabellekleri tarafından desteklenir) depolamanıza olanak tanır.
  • Anahtar/değer çiftlerini depolayan Preferences DataStore

Veriler, SharedPreferences'ın çoğu dezavantajını ortadan kaldırarak eşzamansız, tutarlı ve işlemsel olarak depolanır.