Sobes.tech
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.