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

NivelDescripcionEjemplo
Sin offlineApp inutilizable sin redApps solo de streaming
Cache de lecturaDatos previamente cargados visiblesApps de noticias
Encolar accionesAcciones encoladas, ejecutadas al reconectarComponer email
Offline completoFuncionalidad completa, sincronizar despuesApps 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