Sobes.tech
Junior — Middle

DataStore'da ma'lumotlarni saqlash va boshqarishni qanday amalga oshirilishini tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

Android'da DataStore — bu ma'lumotlarni saqlashning zamonaviy usuli bo'lib, u SharedPreferences o'rnini bosadi. U Kotlin Coroutines va Flow asosida qurilgan bo'lib, ma'lumotlarni asinxron va reaktiv tarzda boshqarishni ta'minlaydi.

Ma'lumotlarni saqlash ikki asosiy DataStore turida amalga oshiriladi:

  • Preferences DataStore — kalit-qiymat juftliklarini saqlaydi, SharedPreferences ga o'xshash, ammo oqimlarni qo'llab-quvvatlaydi va bloklamasdan ishlaydi.
  • Proto DataStore — ma'lumotlarni serializatsiya qilingan protobuf obyektlari shaklida saqlaydi, bu esa qat'iy tiplangan tuzilmalar bilan ishlash imkonini beradi.

Ma'lumotlar diskdagi faylga saqlanadi, va ularga kirish Flow orqali amalga oshiriladi, bu esa o'zgarishlarga obuna bo'lish va real vaqt rejimida yangilanishlarni olish imkonini beradi.

Preferences DataStore dan foydalanish misoli:

val Context.dataStore by preferencesDataStore(name = "settings")

val EXAMPLE_KEY = stringPreferencesKey("example_key")

// Ma'lumot yozish
suspend fun saveExample(value: String) {
    context.dataStore.edit { preferences ->
        preferences[EXAMPLE_KEY] = value
    }
}

// Ma'lumot o'qish
val exampleFlow: Flow<String?> = context.dataStore.data
    .map { preferences ->
        preferences[EXAMPLE_KEY]
    }

Shu tarzda, DataStore xavfsiz, asinxron va reaktiv ma'lumotlarni saqlashni ta'minlaydi va qulay API bilan ta'minlaydi.