En la app móvil de Ceum puedes seguir trabajando aunque tu dispositivo pierda la conexión. Los datos en caché siguen siendo legibles, un pequeño conjunto de pantallas sigue siendo editable, y cualquier cambio que hagas se pone en cola y se reproduce automáticamente en cuanto vuelves a estar en línea. Esta es una capacidad exclusiva del móvil: la app web da por hecho que hay una conexión activa.
Qué funciona sin conexión
- Leer datos en caché — las pantallas que ya has cargado siguen mostrando sus últimos datos conocidos en lugar de quedarse en blanco.
- Añadir y editar transacciones y registros de tiempo — estas dos pantallas siguen siendo totalmente editables sin conexión. Tu cambio se aplica de inmediato a la lista en pantalla y se pone en cola para sincronizarlo más tarde.
- Todo lo demás pasa a ser de solo lectura — el resto de pantallas (clientes, proyectos, tareas, ajustes, etc.) siguen mostrando datos en caché, pero sus controles de crear / editar / eliminar quedan deshabilitados mientras estás sin conexión, con una breve indicación que explica por qué. Así se evita poner en cola cambios que no se pueden conciliar de forma fiable.
Lo que se conserva después de reiniciar
La app guarda en el dispositivo una instantánea cifrada de sus datos más importantes, de modo que un arranque en frío sin conexión te lleva a datos reales en lugar de a pantallas vacías.
- La instantánea se escribe cuando la app pasa a segundo plano (no en cada cambio) y se restaura una vez al iniciarse.
- Está cifrada en reposo con una clave por dispositivo, de modo que la copia en caché no es legible fuera del dispositivo.
- Es deliberadamente pequeña: contiene tus ajustes, las pantallas principales de las listas (listas de trabajo, transacciones, registros de tiempo, suscripciones), la lista rápida y el temporizador activo, no todo lo que hayas consultado. Los detalles, las superposiciones del calendario, los análisis, el correo y la búsqueda se vuelven a cargar cuando abres esas pantallas.
Cambios pendientes de sincronizar
Los cambios que haces sin conexión van a una cola persistente (la "bandeja de salida") que sobrevive a un reinicio de la app. La cola es inteligente a la hora de eliminar trabajo redundante, de modo que el servidor solo ve el resultado neto:
- Editar algo que creaste sin conexión se fusiona con esa creación pendiente: sigue sincronizándose como un único registro nuevo.
- Eliminar algo que creaste sin conexión lo descarta por completo; nada llega nunca al servidor.
- Las ediciones repetidas del mismo registro se reducen a un resultado de "el último que escribe gana".
- Eliminar un registro descarta cualquier edición anterior en cola sobre él, y una eliminación duplicada se ignora.
El aviso de sin conexión
Mientras tienes la sesión iniciada aparece una franja de estado sobre la navegación:
- Sin conexión — indica que estás desconectado y, si hay algo en cola, cuántos cambios se sincronizarán cuando vuelvas a conectarte.
- Sincronizando — se muestra brevemente mientras la cola se está reproduciendo.
- Requiere atención — aparece cuando la sincronización se encuentra con algo que no puede resolver por sí sola. Tócalo para abrir el panel de resolución (más abajo).
Cuando estás en línea con una cola vacía y limpia, el aviso queda oculto.
Sincronización al reconectar
La cola se vacía automáticamente cuando vuelve la conexión, cuando la app regresa a primer plano y al iniciarse. Cada cambio en cola se reproduce contra el estado más reciente del servidor. La mayoría de los cambios se aplican en silencio y recibes una breve confirmación de cuántos se sincronizaron. Tras un vaciado, la app obtiene los datos autoritativos del servidor para que tus listas reflejen el estado real.
Resolver conflictos
Algunos cambios no se pueden aplicar a ciegas: es posible que el servidor haya cambiado mientras estabas sin conexión. Estos se muestran en el panel de resolución, que se abre desde el aviso "requiere atención". Como el panel se rige por la propia cola, sobrevive a un reinicio de la app a mitad de una resolución.
- Posibles duplicados — una nueva transacción en cola que coincide mucho con una transacción reciente del servidor se retiene para que puedas decidir. Elige Conservar para añadirla de todos modos, o Descartar para desecharla.
- Cambiado en el servidor — una edición sin conexión de un registro que se modificó (o eliminó) en el servidor desde que te desconectaste se retiene. Elige Sobrescribir para imponer tu versión, o Descartar mi cambio para conservar la del servidor.
- Descartado — un cambio que realmente entra en conflicto (por ejemplo, un registro de tiempo que se solaparía con uno existente) se desecha con una explicación. Revisa el motivo y Cierra el aviso.
Los conflictos que no se retienen —como un error transitorio del servidor— simplemente se dejan en la cola y se reintentan en la siguiente sincronización, de modo que un fallo breve nunca pierde tu cambio.