Entendiendo la Funcionalidad Offline
Las apps moviles deben funcionar cuando la red no esta disponible. El modo offline no es solo mostrar datos en cache — involucra sincronizacion de datos, resolucion de conflictos y mantener una experiencia fluida entre estados de conectividad.
Tipos de Soporte Offline
| Nivel | Descripcion | Ejemplo |
|---|---|---|
| Sin offline | App inutilizable sin red | Apps solo de streaming |
| Cache de lectura | Datos previamente cargados visibles | Apps de noticias |
| Encolar acciones | Acciones encoladas, ejecutadas al reconectar | Componer email |
| Offline completo | Funcionalidad completa, sincronizar despues | Apps de notas, mapas |
Patrones de Sincronizacion
Last-Write-Wins
El cambio mas reciente sobreescribe los anteriores. Simple pero puede causar perdida de datos.
Resolucion de Conflictos
Cuando dos usuarios editan el mismo registro offline:
- Merge automatico: Cambios no conflictivos se fusionan
- Eleccion del usuario: Presentar ambas versiones
- Servidor gana: La version del servidor prevalece
- Cliente gana: La version local prevalece
Testing del Modo Offline
Flujo de Testing
1. Cargar app con red → verificar que datos aparecen
2. Activar modo avion
3. Navegar la app → verificar datos en cache
4. Realizar acciones (crear, editar, eliminar)
5. Desactivar modo avion
6. Verificar que acciones encoladas sincronizan
7. Verificar sin perdida o duplicacion de datos
Escenarios Esenciales
Persistencia de datos:
- App muestra datos en cache al abrir offline
- Datos creados offline se preservan tras reinicio
- Datos editados offline se preservan tras reinicio
- Items eliminados offline sincronizan correctamente
Comportamiento de sincronizacion:
- Acciones encoladas ejecutan en orden correcto
- Indicador de progreso durante sincronizacion
- Items fallidos se reintentan con feedback claro
- Sincronizacion no duplica datos (idempotencia)
Testing Avanzado de Sincronizacion
Ejercicio: Plan de Testing Offline
Escenario: Prueba una app de gestion de proyectos con tareas, comentarios y archivos adjuntos.
Solucion
Lectura offline: Cargar proyecto → modo avion → verificar tareas visibles
Creacion offline: Crear tarea offline → verificar guardada localmente → ir online → verificar sincronizada
Conflictos: Editar titulo en Dispositivo A offline, editar en Dispositivo B → ambos online → verificar resolucion
Edge cases: 1000+ cambios offline → verificar sync completa; App terminada durante sync → verificar resume
Tips Profesionales
Tip 1: Prueba sync despues de periodos largos offline (24+ horas). Tip 2: Mata la app durante la sincronizacion para probar la recuperacion.
Puntos Clave
- El soporte offline va desde cache simple hasta CRUD completo con resolucion de conflictos
- Prueba el ciclo completo: cargar → offline → actuar → online → verificar sync
- La resolucion de conflictos debe probarse con multiples dispositivos