Saltar al contenido principal

Cómo funciona

Las apps con sincronización en tiempo real mantienen una base de datos local en el dispositivo. Las lecturas son instantáneas (locales), las escrituras se encolan localmente, y todo se sincroniza con el servidor en segundo plano.
User writes -> Local database -> Upload queue -> Server -> Postgres
                                                            |
User reads  <- Local database <- Sync replication <---------+
El resultado: lecturas instantáneas, sin spinners de carga, y una app que sigue funcionando con conexiones lentas u offline.

Qué configura la IA

Pídele a la IA que construya una app en tiempo real. Reutiliza una base de datos activa adecuada si existe; si no, crea una base de datos, activa el servicio de sincronización y construye una app de dos partes:
  • UI - app cliente con base de datos local, consultas en vivo y conector de sincronización
  • Process - endpoint de token, ruta de carga de sincronización y ejecutor de migraciones
Las credenciales se almacenan en la bóveda. La IA conecta las variables de entorno de la base de datos al componente de proceso con la herramienta db. Antes de considerar la app lista, la base de datos debe mostrar sync: ready. Si la sincronización no está lista, la app puede renderizarse pero los datos en tiempo real entre dispositivos no funcionarán.

Reglas prácticas

  • Escribe localmente primero. Deja que la sincronización se cargue en segundo plano.
  • Muestra estados vacíos, no spinners de carga, una vez que existan datos locales.
  • Mantén el estado visible para el usuario en tablas sincronizadas para que sobreviva a actualizaciones y uso offline.
  • Agrupa escrituras locales relacionadas para que la UI se actualice en un paso.
  • Verifica la salud de la sincronización antes de dar por terminada una app en tiempo real.

Shell de app offline

Las plantillas de UI pueden incluir un shell de app offline para que la app pueda reabrirse después de la primera visita sin red. El shell de app es el HTML, JS, CSS e iconos estáticos.
  • Shell offline permite que la app se abra sin red
  • Sync mantiene los datos de la app usables mientras está offline
Juntos: la app se abre sin red, muestra los datos sincronizados más recientes, encola nuevas escrituras y se sincroniza cuando la conexión vuelve.

Cuándo usar sincronización en tiempo real

Buen ajusteExcesivo
Gestores de tareas y apps de notasPáginas de marketing estáticas
Herramientas colaborativasEnvíos de formularios únicos
Apps de campo con conectividad débilSitios de folletos de solo lectura
Cualquier cosa que deba sentirse instantáneaApps sin valor offline

Variables de plataforma

Kazzle inyecta automáticamente un pequeño conjunto de variables de entorno en cada proceso de app. Estas son independientes de tus propios secretos de bóveda.
VariableQué es
PORTEl puerto en el que tu proceso debe escuchar
HOSTEl nombre de host al que vincularse (típicamente 0.0.0.0)
KAZZLE_API_URLURL base utilizada por los helpers de tiempo de ejecución de Kazzle
KAZZLE_APP_COMPONENT_<NAME>_URLURL de tiempo de ejecución de un componente hermano

URLs hermanas

Cuando una app tiene múltiples componentes (p. ej. una UI web y un proceso server), Kazzle puede inyectar URLs para componentes hermanos:
# En la parte "web":
KAZZLE_APP_COMPONENT_SERVER_URL=http://localhost:3001

# En la parte "server":
KAZZLE_APP_COMPONENT_WEB_URL=http://localhost:3000
Cuando un hermano ya está desplegado, el valor inyectado apunta a ese componente desplegado. Si no, apunta a la dirección de desarrollo actual para ese hermano.