Desarrollador Android: pregunta de entrevista
¿Cómo diseñas una app Android offline-first?
Una app offline-first lee de una fuente local de verdad, sincroniza en segundo plano, registra escrituras pendientes y define conflictos, reintentos, frescura y estado visible de sincronización.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
La base de datos local es la única fuente de verdad: las pantallas la observan y la red solo la actualiza. Las escrituras van al almacén local de inmediato junto con un registro de operación pendiente, así que la interfaz refleja el cambio al momento; un worker de sincronización, normalmente WorkManager con restricciones de red, reproduce las operaciones pendientes, aplica las respuestas del servidor y trae los cambios remotos. Los conflictos necesitan una regla documentada por entidad, como último escritor gana con marca de tiempo del servidor o fusión de campos, y la interfaz debe mostrar qué está pendiente, sincronizado o fallido para que los usuarios confíen en la app con mala red.
Ejemplo
Una app de servicio técnico permite completar formularios bajo tierra; cada envío se guarda en Room con estado PENDING y un ID de cliente único, WorkManager lo sube cuando vuelve la conectividad y el servidor usa ese ID para hacer idempotentes los reintentos. Si la oficina editó el mismo trabajo mientras tanto, el servidor devuelve ambas versiones y la app pregunta al técnico qué campos conservar.
Errores frecuentes
- Tratar la respuesta de red como fuente de verdad y mostrar una pantalla vacía sin conexión.
- Reintentar subidas sin idempotencia y crear registros duplicados tras una conexión inestable.
- Descartar en silencio escrituras en conflicto en lugar de mostrarlas al usuario.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.