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.