Junior — Middle
Можете ли објаснити како је реализовано чување и управљање подацима у DataStore?
sobes.tech АИ
Одговор од АИ
DataStore u Androidu je savremen način skladištenja podataka koji zamenjuje SharedPreferences. Osnovan je na Kotlin Coroutines i Flow, što omogućava asinhrono i reaktivno upravljanje podacima.
Skladištenje podataka realizuje se putem dva glavna tipa DataStore:
- Preferences DataStore — skladišti parove ključ-vrednost, slično kao SharedPreferences, ali sa podrškom za tokove i bez blokiranja.
- Proto DataStore — skladišti podatke u obliku serializovanih protobuf objekata, što omogućava rad sa striktno tipiziranim strukturama.
Podaci se čuvaju u fajlu na disku, a pristup im se vrši putem Flow, što omogućava pretplatu na promene i dobijanje ažuriranja u realnom vremenu.
Primer korišćenja Preferences DataStore:
val Context.dataStore by preferencesDataStore(name = "settings")
val EXAMPLE_KEY = stringPreferencesKey("example_key")
// Upis podataka
suspend fun saveExample(value: String) {
context.dataStore.edit { preferences ->
preferences[EXAMPLE_KEY] = value
}
}
// Čitanje podataka
val exampleFlow: Flow<String?> = context.dataStore.data
.map { preferences ->
preferences[EXAMPLE_KEY]
}
Na ovaj način, DataStore obezbeđuje sigurnu, asinhronu i reaktivnu skladištenje podataka sa korisnički pristupačnim API-jem.