Veri Deposu

Verileri eşzamansız, tutarlı ve işlemsel olarak depolayarak SharedPreferences'ın bazı dezavantajlarını ortadan kaldırın
Son Güncelleme Kararlı Sürüm Yayın Adayı Beta Sürümü Alfa Sürümü
1 Mayıs 2024 1.1.1 - - -

Bağımlılıkları bildirme

DataStore'a bağımlılık eklemek için Google Maven deposunu belirler. Google'ın Maven deposunu okuyun konulu videomuzu izleyin.

DataStore'un iki uygulaması vardır: Tercihler ve Protokol. İkisinden birini seçin. İsterseniz bazı ipuçları vereceğim.

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

Preferences DataStore

Groovy

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

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

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

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

Kotlin

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

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

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

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

Proto DataStore

Groovy

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

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

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

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

Kotlin

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

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

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

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

Geri bildirim

Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlarla karşılaşırsanız veya fikir edinebilirsiniz. Daha fazla bilgi için lütfen mevcut sorunlar tıklayın. Oyunuzu mevcut bir soruna eklemek için yıldız düğmesini tıklayın.

Yeni sayı oluştur

Sorun İzleyici dokümanlarına bakın konulu videomuzu izleyin.

Sürüm 1.1

Sürüm 1.1.1

1 Mayıs 2024

androidx.datastore:datastore-*:1.1.1 yayınlandı. Sürüm 1.1.1 bu taahhütleri içerir.

Hata Düzeltmeleri

  • "Kaynak kilitlenmesi meydana gelir" yazan yanlış Linux alarmı azaltıldı bir köşede hata mesajı gösteriliyor. Birden fazla DataStore örneği, dosya kilidini geri alarak farklı işlemlerden yazmaya çalışıyor.

Sürüm 1.1.0

17 Nisan 2024

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

1.0.0 sürümünden bu yana 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 önemli güncellemelerden bazıları şunlardır:

  • DataStore, işlemler genelinde gözlemlenebilirlik desteğiyle artık aynı dosyaya erişen birden çok işlemi desteklemektedir.
  • Yeni Storage arayüzü, veri modellerinizi nasıl depolayacağınızı veya serileştireceğinizi özelleştirmenize olanak tanır.
  • Artık DataStore'u Kotlin Multiplatform projelerinde kullanabilirsiniz.

Sürüm 1.1.0-rc01

3 Nisan 2024

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

Hata Düzeltmeleri

  • Yeni veriler eski verilerle aynıysa (d64cfb5) updateData çağrılarının disk yazma işlemlerinde optimize edilmediği performans düşüşü düzeltildi
  • Başlatma sırasında MultiProcess DataStore öğesinin geçersiz kılmaları kaçırabileceği bir yarış durumu düzeltildi. ((b/326141553),(094c2dd))

Sürüm 1.1.0-beta02

6 Mart 2024

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

Hata Düzeltmeleri

  • DataStore ürününün performans iyileştirmesi yalnızca fark edildiğinde güncelleme bildirimleri toplar. (b/267792241)
    • Eş yordamlar test kitaplığını kullanıyorsanız bu değişikliğin testlerinizde UncompletedCoroutinesError öğesini tetikleyebileceğini unutmayın. Bu sorunu önlemek için testlerinizde DataStore öğesini ilk kullanıma hazırlarken TestScope.backgroundScope testlerini geçtiğinizden emin olun.
  • Aynı örnekte iç içe yerleştirilmiş updateData çağrılarının kilitlenmesi sorunu düzeltildi. (b/241760537)
  • Taşıma sırasında SharedPreferences dosyası silemezse DataStore uygulaması artık IOExceptions öğesini tetiklemez. (b/195553816)
  • Android dışı JVM ortamlarında updateData sırasında dosya yeniden adlandırma işleminin başarısız olması sorunu düzeltildi. (b/203087070)
  • DataStore başlatma işleminden sonra CorruptionException öğesinin işlenmemesi sorunu 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 bu yana hiçbir değişiklik yapılmadan yayınlandı. Sürüm 1.1.0-beta01 bu kaydetmeleri içerir.

Sürüm 1.1.0-alpha07

29 Kasım 2023

androidx.datastore:datastore-*:1.1.0-alpha07 yayınlandı. 1.1.0-alpha07 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • @ExperimentalMultiProcessDataStore ek açıklamalarının kaldırılmasını 1.1.0-alpha07 sürümüne sunun. (I8e607)

Sürüm 1.1.0-alpha06

1 Kasım 2023

androidx.datastore:datastore-*:1.1.0-alpha06 yayınlandı. 1.1.0-alpha06 sürümü bu kaydetmeleri 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 yayınlandı. 1.1.0-alpha05 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Datastore FileStorage şu anda herkese açık olduğu için istemciler özel parametreler sağlayabilir. (Icb985)
  • OkioStorage oluşturucusu, Android'de MultiProcessCoordinator ile kullanılabilmesi için InterProcessCoordinator kabul edecek şekilde değiştirildi. (Iecea3)

Hata Düzeltmeleri

  • Aynı dizinde birden fazla dosyayı izleyemeyen MultiProcessCoordinator sorununu düzeltme.
  • Dosya yolları normalleştirilmezse düzeltme, yinelenen dosyaları algılayamıyor.
  • RxDataStore#isDisposed öğesinden döndürülen yanlış değerleri düzeltin.
  • datstore-preferences-core yapı 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 yayınlandı. 1.1.0-alpha04 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • DataStore veri akışının bir güncelleme sonrasında eski bir değer yayınlayabileceği bir yarış durumunu önlemek için dahili uygulamayı iyileştirin.

Sürüm 1.1.0-alpha03

24 Mart 2023

androidx.datastore:datastore-*:1.1.0-alpha03 yayınlandı.

Hata Düzeltmeleri

  • Kotlin Yerel Hedeflerinde bir derleme sorununu çö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 yayınlandı. 1.1.0-alpha02 sürümü bu kaydetmeleri içerir.

Not

Bu sürümün, tek işlem ve çok işlemli DataStore uygulamalarının uygulamalarını birleştiren önemli bir dahili yeniden düzenleme içerdiğini unutmayın. Lütfen 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

  • DataStore özelliğini artık KMM projelerinde kullanabilirsiniz. DataStore'un Android dışı hedeflerin hâlâ deneme aşamasında olduğunu, ancak geliştiricilerin denemelerini kolaylaştırmak için sürümleri birleştirmeye karar verdik.
  • Çok işlemli özellikler androidx.datastore.multiprocess kuruluş biriminden androidx.datastore.core kuruluş birimine taşındı.
  • Dosya işlemleri için Storage nesneyle DataStore örnekleri oluşturmak üzere androidx.datastore.core.MultiProcessDataStoreFactory uygulamasına yeni bir fabrika yöntemi ekleyin.
  • Birden fazla DataStore örneğinin işlemler arasında iletişim kurmasına yardımcı olan yeni bir InterProcessCoordinator arayüzü ekleyin. InterProcessCoordinator uygulamasının Çok İş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 konumuna ekleyin
  • Depolama alanını kullanmak için veri deposu çekirdeğindeki (MultiProcessDataStoreFactory) API'leri değiştirin. (Iac02f)
  • Veri deposu çoklu süreçte herkese açık API'leri, veri deposu çekirdeğine (I76d7c) taşıma
  • PreferencesSerializer, datastore-preferences-core'da (I4b788) kullanıma sunuldu
  • @JvmDefaultWithCompatibility ek açıklaması ekleniyor (I8f206)

Sürüm 1.1.0-alpha01

9 Kasım 2022

androidx.datastore:datastore-*:1.1.0-alpha01 yayınlandı. Sürüm 1.1.0-alpha01 bu kaydetmeleri içerir.

Yeni Özellikler

  • Süreçler genelinde DataStore örnekleri arasında veri tutarlılığının garanti edildiği çok işlemli kullanım alanları desteklenir. Böyle DataStore örnekler oluşturmak için MultiProcessDataStoreFactory#create ekleyin.
  • Datastore için temel depolama mekanizmasının kapatılmasına olanak tanıyan yeni Depolama arayüzü. java.io ve okio uygulamaları sağlanır. DataStore fabrikalar bu Storage nesnesini kabul eden yeni yöntemlere sahip.

API Değişiklikleri

  • Depolama alanını kullanmak için veri deposu çekirdeğindeki (MultiProcessDataStoreFactory) API'leri değiştirin. (Iac02f)
  • Veri deposu çoklu süreçte herkese açık API'leri, veri deposu çekirdeğine (I76d7c) taşıma
  • PreferencesSerializer, datastore-preferences-core'da (I4b788) kullanıma sunuldu

Sürüm 1.0.0

Sürüm 1.0.0

4 Ağustos 2021

androidx.datastore:datastore-*:1.0.0 yayınlandı. 1.0.0 sürümü bu kaydetmeleri içerir.

1.0.0'ın temel özellikleri

Jetpack DataStore, protokol arabelleklerine sahip anahtar/değer çiftlerini veya yazılan 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 eş yordamlarını ve Flow'u kullanır.

Sürüm 1.0.0-rc02

21 Temmuz 2021

androidx.datastore:datastore-*:1.0.0-rc02 yayınlandı. Sürüm 1.0.0-rc02 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Anahtar olmadığında SharedPreferencesMigration işlevinin çalışmayacağını belirtin. (Icfa32, b/192824325)
  • İstenen anahtar henüz mevcut değilse SharedPreferencesMigration öğesinin MIGRATE_ALL_KEYS ile oluşturulan hata düzeltmesi. (Ie318a, b/192824325)

Sürüm 1.0.0-rc01

30 Haziran 2021

androidx.datastore:datastore-*:1.0.0-rc01 yayınlandı. Sürüm 1.0.0-rc01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

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

Sürüm 1.0.0-beta02

16 Haziran 2021

androidx.datastore:datastore-*:1.0.0-beta02 yayınlandı. Sürüm 1.0.0-beta02 bu kaydetmeleri içerir.

Hata Düzeltmeleri

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

Sürüm 1.0.0-beta01

21 Nisan 2021

androidx.datastore:datastore-*:1.0.0-beta01 yayınlandı. Sürüm 1.0.0-beta01 bu kaydetmeleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Veri deposu yetki verilmiş kullanıcılarınızın bağlam sızıntısına neden olabileceği bir hata düzeltildi (Ie96fc, b/184415662)

Sürüm 1.0.0-alpha08

10 Mart 2021

androidx.datastore:datastore-*:1.0.0-alpha08 yayınlandı. 1.0.0-alpha08 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Artık dataStore ve preferencesDataStore mülkü temsilcinize bağlama dayalı bir taşıma işlemi ekleyebilirsiniz. (I4ef69, b/173726702)
  • Artık datastore delegesi veyacontext.createDataStore (I60f9a) kullanmıyorsanız dosyanın adını almak için yardımcı işlevler ekler.
  • Serileştirici WriteTo ve ReadFrom şu anda askıya alınıyor. Serileştirici uyguladıysanız işlevlerinizi askıya alma işlevleri olarak güncellemeniz gerekir. (I1e58e)
  • RxDataStore kullanıcıları için mülk yetkileri eklendi. (Ied768, b/173726702)

Hata Düzeltmeleri

  • Deneysel API'lerin herkese açık kullanımıyla ilgili kısıtlamaları zorunlu kılın (I6aa29, b/174531520)

Sürüm 1.0.0-alpha07

24 Şubat 2021

androidx.datastore:datastore-*:1.0.0-alpha07 yayınlandı. 1.0.0-alpha07 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Context.createDataStore uzantı işlevi kaldırıldı ve globalDataStore mülk temsilcisiyle değiştirildi. GlobalDataStore'u, kotlin dosyanızdaki üst düzeyde bir kez çağırın. Örnek:

    val Context.myDataStore by dataStore(...)
    

    Yalnızca bir örneği olması için bunu kotlin dosyanızın en üst düzeyine yerleştirin. (I57215, b/173726702)

  • RxDataStore işlevleri artık DataStore'daki uzantı işlevleri yerine bir RxDataStore sınıfındadır. (Idccdb, b/177691248)

  • EncryptedSharedPreferences'ı (veya doğrudan önyükleme SharedPreferences'ı) DataStore'a taşımak istiyorsanız bunu artık SharedPreferencesPreferences'i yerleştirmenize izin veren yeni SharedPreferencesPreferencesMigration oluşturucusuyla yapabilirsiniz. (I8e04e, b/177278510)

Hata Düzeltmeleri

  • Aynı dosya için birden fazla etkin DataStore varsa DataStore artık istisna oluşturacaktır. DataStore'unuzu Singleton olarak yönetmiyorsanız veya bir dosya için aynı anda iki DataStore örneğinin etkin olmadığından emin değilseniz artık DataStore'da okuma ya da yazma sırasında istisnalar görebilirsiniz. Bu sorunlar, DataStore'u bir Singleton olarak yöneterek düzeltilebilir. (Ib43f4, b/177691248)
  • Arayan kapsamı iptal edildiğinde iptal davranışını düzeltin. (I2c7b3)

Sürüm 1.0.0-alpha06

13 Ocak 2021

androidx.datastore:datastore-*:1.0.0-alpha06 yayınlandı. 1.0.0-alpha06 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • DataStore için RxJava sarmalayıcıları eklendi. datastore-rxjava2/3 yapıları, temel DataStore API'lere yönelik sarmalayıcıları (RxDataStore, RxDataStoreBuilder ve RxDataMigration) içerir. datastore-preferences-rxjava2/3 yapıları, Tercihler DataStore oluşturmak için bir oluşturucu içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • DataStoreFactory'de, datastore dosyasının "datastore/" alt dizininde oluşturulduğu gerçeği ortadan kaldıran dokümanları düzeltir. (Ica222)

Sürüm 1.0.0-alpha05

2 Aralık 2020

androidx.datastore:datastore-*:1.0.0-alpha05 yayınlandı. 1.0.0-alpha05 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Veri depolarından eşzamanlı yazma işlemleriyle ilgili daha iyi belgeler ve istisnalar ekleyin. (Ia98a2, b/173522155, b/173726702)
  • Artık Serializer.writeTo() öğesine iletilen ExitStream'in kapatılmasına izin veriyoruz (ancak bunu zorunlu tutmuyoruz). (I5c9bf, b/173037611)

Sürüm 1.0.0-alpha04

17 Kasım 2020

androidx.datastore:datastore-*:1.0.0-alpha04 yayınlandı. 1.0.0-alpha04 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Preference Datastore'da şu kilitlenmeye neden olan bir paketleme sorunu düzeltildi: 1.0.0-alpha03: 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 yayınlandı. 1.0.0-alpha03 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Tercihler artık çift değerleri destekliyor (bu özellik, kayanlardan daha fazla hassasiyete ihtiyacınız olduğunda kullanışlıdır) (I5be8f, b/169471808)

API Değişiklikleri

  • Daha hızlı derleme sağlamak amacıyla veri deposu için tam 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şturucusu dahil) içerir.(I42d75, b/168512698)
  • Daha hızlı kotlin derlemesi için tercihler veri deposunun hedeflerini ayırma (Ia3c19)
  • Serileştiriciler, artık diskte veri yoksa kullanılacak varsayılan değer için yeni bir özellik gerektirir. Bu sayede, kullanıcıların boş giriş akışları için özel durum oluşturmak zorunda kalmaması için özel serileştiriciler daha kolay uygulanabilir (boş giriş akışları json ile ayrıştırılmaz).

    • Ayrıca, artık WriteTo() işlevine sağlanan çıkış akışının kapatılmadığını doğrulayan bir kontrol de var. Kapatılırsa istisnalar da uyguluyor (I16e29)
  • SharedPreferencesView oluşturucusunu dahili yapma. Başlangıçta test için herkese açıktı. Testler, bunun yerine bir SharedPreferencesPreferencesMigration oluşturmalı ve buna göre test yapmalıdır. (I93891)

Hata Düzeltmeleri

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

Bilinen Sorunlar

  • Datastore'un java.lang.NoClassDefFoundError ile kilitlenmesi tercih edilir. (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 serbest bırakıldı. 1.0.0-alpha02 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Datastore-çekirdekteki mutasyona karşı koruma önlemi eklendi. Mutasyon, proto olmayan/tercih dışı türlerle veri deposu kullanan kişilerin veri deposu kullanımını böler (I6aa84)
  • Mevcut durumun hata ayıklamasını kolaylaştırmak için Preferences.kt'ye bir toString yöntemi eklendi (I96006)
  • DataStore.Preferences ürününün (I1134d) kötüye kullanımına karşı koruma sağlamak için bir istisna eklendi
  • Uygulamanın başlangıçta kilitlenmesine neden olabilecek bir 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 serbest bırakıldı. 1.0.0-alpha01 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

Jetpack DataStore, SharedPreferences'ın yerini almayı amaçlayan yeni ve iyileştirilmiş bir veri depolama çözümüdür. Kotlin eş yordamları ve Akışı temel alınarak geliştirilen DataStore, iki farklı uygulama sunar:

  • Yazılan nesneleri (protokol arabellekleri tarafından desteklenir) saklamanızı sağlayan Proto DataStore
  • Anahtar/değer çiftlerini depolayan Preferences DataStore

Veriler eşzamansız, tutarlı ve işlemsel olarak depolanarak SharedPreferences'ın dezavantajlarının çoğu aşılır.