Sobes.tech
Junior — Middle

¿Puede explicar cómo se implementa el almacenamiento y la gestión de datos en DataStore?

sobes.tech AI

Respuesta de la IA

DataStore en Android es una forma moderna de almacenar datos que reemplaza a SharedPreferences. Se basa en Kotlin Coroutines y Flow, lo que proporciona una gestión asíncrona y reactiva de los datos.

El almacenamiento de datos se realiza a través de dos tipos principales de DataStore:

  • Preferences DataStore — almacena pares clave-valor, similar a SharedPreferences, pero con soporte para flujos y sin bloqueos.
  • Proto DataStore — almacena datos en forma de objetos protobuf serializados, lo que permite trabajar con estructuras estrictamente tipadas.

Los datos se guardan en un archivo en disco, y el acceso a ellos se realiza mediante Flow, lo que permite suscribirse a cambios y recibir actualizaciones en tiempo real.

Ejemplo de uso de Preferences DataStore:

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

val EXAMPLE_KEY = stringPreferencesKey("example_key")

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

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

De esta manera, DataStore proporciona un almacenamiento seguro, asíncrono y reactivo con una API conveniente.