Sobes.tech
Junior — Middle

Оё метавонед шарҳ диҳед, ки чӣ гуна нигоҳдорӣ ва идоракунии маълумот дар DataStore амалӣ карда мешавад?

sobes.tech AI

Ҷавоб аз AI

Дар DataStore дар Android — роҳи муосири нигоҳдории маълумотҳо мебошад, ки ҷойгузини SharedPreferences аст. Он асос ёфтааст ба Kotlin Coroutines ва Flow, ки идоракунии асинхронӣ ва реактивиро таъмин мекунад.

Нигоҳдории маълумот тавассути ду намуди асосии DataStore амалӣ мешавад:

  • Preferences DataStore — нигоҳ медорад ҷуфтҳои калид-арзиш, монанди SharedPreferences, аммо бо дастгирии ҷараёнҳо ва бе бастан.
  • Proto DataStore — маълумотҳоро ҳамчун объектҳои protobuf сериализатсияшуда нигоҳ медорад, ки имкон медиҳад бо структураҳои сахттиб ёфтан.

Маълумотҳо дар файли диск нигоҳ дошта мешаванд ва дастрасӣ ба онҳо тавассути Flow сурат мегирад, ки имкон медиҳад ба тағйиротҳо обуна шудан ва навсозиҳоро дар вақти воқеӣ гирифт.

Масалан барои истифодаи Preferences DataStore:

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

val EXAMPLE_KEY = stringPreferencesKey("example_key")

// Навиштани маълумот
suspend fun saveExample(value: String) {
    context.dataStore.edit { preferences ->
        preferences[EXAMPLE_KEY] = value
    }
}

// Хондани маълумот
val exampleFlow: Flow<String?> = context.dataStore.data
    .map { preferences ->
        preferences[EXAMPLE_KEY]
    }

Инчунин, DataStore бехатар, асинхрон ва реактив нигоҳдории маълумотҳоро таъмин мекунад бо API қулай.