</>AppInitDev DevelopersCentro de aprendizaje Android
Android • Kotlin · GUÍA PRÁCTICA

Guardar preferencias con DataStore en Android

Preferencias reactivas y persistentes para tema, ajustes y opciones simples.

◎
Lo que aprenderás

Guardar una preferencia de la aplicación de forma segura y observable.

Antes de comenzar

Parte de un proyecto de prueba o de una copia de trabajo de tu aplicación. Revisa versiones, permisos y dependencias en los enlaces oficiales del final: las plataformas Android y los servicios de Google pueden actualizar sus requisitos.

El objetivo de esta guía es aplicar un proceso concreto y comprobar su resultado. Documenta cualquier cambio relevante para poder mantenerlo y, cuando corresponda, medir sus efectos con datos.

PASO A PASO

Cómo hacerlo

01

Distingue preferencias pequeñas de datos estructurados: usa…

Distingue preferencias pequeñas de datos estructurados: usa DataStore para configuración y Room para colecciones complejas.

02

Añade la dependencia DataStore que corresponda y…

Añade la dependencia DataStore que corresponda y crea una instancia apropiada en la capa de datos.

03

Declara claves de preferencias tipadas y expón…

Declara claves de preferencias tipadas y expón un Flow con valores predeterminados explícitos.

04

Edita ajustes usando el método suspend correspondiente…

Edita ajustes usando el método suspend correspondiente desde un repositorio.

05

Haz que ViewModel exponga la configuración a…

Haz que ViewModel exponga la configuración a Compose sin lecturas bloqueantes.

06

Prueba que el cambio se conserva después…

Prueba que el cambio se conserva después de cerrar y volver a abrir la app y considera migraciones si vienes de SharedPreferences.

EJEMPLO ORIENTATIVO
KOTLIN
val Context.ajustes by preferencesDataStore(name = "ajustes")
val MODO_OSCURO = booleanPreferencesKey("modo_oscuro")

suspend fun guardarTema(context: Context, oscuro: Boolean) {
    context.ajustes.edit { it[MODO_OSCURO] = oscuro }
}
fun observarTema(context: Context): Flow<Boolean> =
    context.ajustes.data.map { prefs -> prefs[MODO_OSCURO] ?: false }

Fragmento educativo: adapta las importaciones, clases, dependencias y versiones a tu proyecto. Consulta la documentación oficial antes de integrarlo.

PONLO A PRUEBA

Ejercicio práctico

Agrega una opción de modo oscuro y confirma que permanezca activada tras reiniciar la aplicación.

!
Precaución

No almacenes contraseñas o tokens en texto claro como preferencias ordinarias.

COMPROBACIÓN

Cómo verificar el resultado

  • Completa los pasos anteriores en un entorno de pruebas antes de distribuir cambios.
  • Comprueba que la función, configuración o estrategia responde al objetivo planteado.
  • Revisa errores, impacto para usuarios y políticas aplicables a tu caso.
  • Conserva la evidencia y anota qué deberás revisar cuando cambien las versiones.
DOCUMENTACIÓN

Fuentes oficiales para profundizar

Consulta los requisitos y ejemplos vigentes en estas fuentes antes de publicar una implementación.

SIGUE APRENDIENDO

Tutoriales relacionados

← Más tutoriales de Desarrollo AndroidIr a AppInitDev ↗