Qué construimos con él

SQLite es la base de datos que viaja con la app. En móvil es donde un producto guarda los datos que tiene que poder leer con la red apagada: respuestas de API cacheadas, borradores que el usuario aún no ha enviado, historial de mensajes y la cola de escrituras esperando a sincronizarse.

Es una base de datos relacional de verdad y no un almacén clave-valor, y eso importa más de lo que parece. En cuanto los datos locales tienen relaciones y hay que filtrarlos u ordenarlos, hacerlo en SQL gana a cargarlo todo en memoria y hacerlo en Dart, especialmente en las listas que tienen que seguir fluidas mientras se hace scroll.

Dónde encaja

Toda app con capacidad offline tiene esta capa, esté diseñada o no. Nuestro trabajo aquí suele ser hacerla deliberada: un esquema con migraciones, una regla clara de qué está cacheado frente a qué es autoritativo, y una estrategia de sincronización que sobrevive a que maten la app a mitad de una escritura.

Cuándo lo recomendamos

Para persistencia en el dispositivo más allá de un puñado de valores, y para cualquier producto cuyos usuarios estén en trenes, en sótanos o con datos móviles que preferirían no gastar.

Para unos pocos flags y preferencias, SQLite es más de lo que el trabajo necesita: un almacén clave-valor simple está bien, y añadir migraciones para guardar un booleano es un coste sin retorno. Y es una base de datos local, no un backend: el lado servidor del mismo producto va en PostgreSQL.