Sobes.tech
Junior — Middle

Può spiegare come viene implementata la memorizzazione e la gestione dei dati in DataStore?

sobes.tech AI

Risposta dell'AI

DataStore in Android è un modo moderno di memorizzare i dati che sostituisce SharedPreferences. Si basa su Kotlin Coroutines e Flow, garantendo una gestione dei dati asincrona e reattiva.

La memorizzazione dei dati avviene tramite due principali tipi di DataStore:

  • Preferences DataStore — memorizza coppie chiave-valore, simile a SharedPreferences, ma con supporto per flussi e senza blocchi.
  • Proto DataStore — memorizza dati sotto forma di oggetti protobuf serializzati, consentendo di lavorare con strutture strettamente tipizzate.

I dati vengono salvati in un file sul disco, e l'accesso avviene tramite Flow, che permette di iscriversi alle modifiche e ricevere aggiornamenti in tempo reale.

Esempio di utilizzo di Preferences DataStore:

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

val EXAMPLE_KEY = stringPreferencesKey("example_key")

// Scrivere dati
suspend fun saveExample(value: String) {
    context.dataStore.edit { preferences ->
        preferences[EXAMPLE_KEY] = value
    }
}

// Leggere dati
val exampleFlow: Flow<String?> = context.dataStore.data
    .map { preferences ->
        preferences[EXAMPLE_KEY]
    }

In questo modo, DataStore garantisce un'archiviazione sicura, asincrona e reattiva con un'API comoda.