Saltar al contenido

Lección 9 de 16 · Lectura y práctica

SharedPreferences y SQLite con sqflite

Lección práctica para aplicar SharedPreferences y SQLite con sqflite dentro de Desarrollo de Apps Móviles con Flutter - Nivel Intermedio, con criterios de decisión, ejemplo guiado, ejercicio y checklist de salida.

Del concepto a la práctica

Taller de esta lección

La frontera práctica es el tipo de dato: SharedPreferences sirve para valores simples y pequeños; SQLite sirve para conjuntos de registros que deben consultarse, actualizarse y relacionarse. Guardar toda una lista de tareas serializada como una preferencia dificulta búsquedas y actualizaciones parciales.

Ejemplo resuelto

Guarda filter=pendientes en preferencias. En SQLite, conserva filas t1, Comprar pan, 0 y t2, Pagar factura, 1, donde 0 y 1 representan falso y verdadero. La consulta de pendientes filtra completed = 0 y devuelve solo t1.

Espera la escritura asíncrona de la preferencia y prueba un reinicio completo de la app, no solo la reconstrucción de una pantalla. Las preferencias no son un almacén para información crítica. En SQLite usa una columna id TEXT PRIMARY KEY y completed INTEGER CHECK (completed IN (0,1)). Actualiza con parámetros: db.update("tasks", {"completed": 1}, where: "id = ?", whereArgs: ["t1"]). Para un orden verificable, consulta con orderBy: "id"; sin orden explícito, compara conjuntos de IDs.

Pruébalo

  1. Persiste el filtro pendientes como texto.

  2. Inserta las dos filas indicadas en una tabla de tareas.

  3. Consulta por completed = 0.

  4. Actualiza t1 a 1 y repite la consulta.

Error frecuente: guardar booleanos con significados mezclados. Corrígelo documentando una convención única y aplicándola al leer y escribir.

Comprueba tu resultado

Antes de actualizar, la consulta debe devolver un registro: t1. Después debe devolver cero registros, mientras la consulta completed = 1 devuelve t1 y t2. El filtro guardado debe seguir siendo pendientes tras reiniciar la pantalla.

Tablas de clientes y pedidos: INNER JOIN conserva coincidencias y LEFT JOIN conserva también a Luis sin pedidos.
CursaloMapa de práctica
Relacionar tablas sin perder filas

Una clave conecta cada pedido con su cliente. INNER JOIN devuelve las coincidencias y puede producir varias filas por cliente. LEFT JOIN conserva también los clientes sin pedido y representa los campos ausentes con NULL.

Ver la infografía en tamaño completo ↗
Fuentes para profundizar

Sigue con Desarrollo de Apps Móviles con Flutter - Nivel Intermedio

Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.

Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.

01 / ELEGIR UNA RUTA

El próximo paso

Aprende IA mientras construyes algo que sí necesitas.

Empieza por el curso inicial o explora el catálogo para encontrar una práctica alineada con tu trabajo.