App que funciona sin señal: guía offline-first | Intway

Apps que funcionan sin señal: cómo se diseña una app offline-first para equipos en la calle

Celular con la app de órdenes de trabajo funcionando sin señal en una sala de máquinas

Un técnico abre un tablero en un subsuelo, un repartidor entrega en una zona rural, un supervisor recorre un depósito con paredes de chapa. En los tres casos la señal desaparece justo cuando hay que cargar algo. Si la app necesita red para guardar, la persona deja de usarla: completa en papel, carga de memoria más tarde o directamente no carga. Esta guía explica cómo se diseña una app que sigue funcionando sin señal, con un caso real de servicio técnico.

Qué es una app offline-first

Una app offline-first está pensada para funcionar sin conexión como situación normal, no como excepción. La diferencia con un «modo sin conexión» agregado al final es de fondo:

  • Guarda primero en el teléfono. Cada acción se escribe en una base de datos local y la pantalla responde al instante, haya red o no.
  • Sincroniza después. Cuando vuelve la señal, lo pendiente viaja solo al servidor, sin que la persona toque nada.
  • Resuelve los choques. Si la oficina y el campo cambiaron lo mismo, hay reglas claras para decidir qué versión queda.

Una app que «funciona offline» pero muestra un error al guardar, o que pierde lo cargado si se cierra, no es offline-first: es una app online con paciencia.

Cuándo la necesitás

No toda app tiene que funcionar sin señal. Conviene cuando se da alguna de estas situaciones:

  • El trabajo se hace en salas de máquinas, subsuelos, azoteas o depósitos, donde la señal es mala o no existe.
  • Hay recorridos por rutas o zonas rurales: logística, distribución, relevamientos de campo.
  • El dato se pierde si no se carga en el momento: firmas, fotos, lecturas, repuestos usados.
  • Ya probaste una app de mercado y los usuarios volvieron al papel porque «se cuelga cuando no hay señal».

Si tu equipo trabaja siempre en una oficina con wifi, una app web común alcanza y es más simple de mantener.

Por qué fallan las apps de mercado en campo

En el caso de una empresa de servicio técnico de climatización con 34 técnicos y unos 3.800 equipos instalados, el problema era exactamente este. Ya habían probado una app de mercado, pero los equipos estaban en salas de máquinas y azoteas sin señal. La app necesitaba red para guardar, así que el técnico completaba el parte afuera, de memoria, o volvía al papel. Resultado: el parte llegaba a la base dos días después, uno de cada tres volvía sin firma del cliente y los repuestos se descontaban del stock a fin de mes.

Cómo se diseña: cinco decisiones

Lo que separa una app que aguanta el campo de una que no son estas cinco decisiones, tomadas desde el primer día y no agregadas al final.

Tres pantallas de la app del técnico: orden, checklist y firma, con la banda Sin conexión
La visita completa sin señalOrden, checklist y firma se hacen en el lugar; la banda ámbar avisa que todo queda guardado en el teléfono.

1. La base local es la fuente de verdad

Mientras no hay red, manda lo que está en el teléfono. La app guarda cada acción en una base de datos local (en el caso, SQLite) y nunca espera al servidor para responder. Si el técnico está en un subsuelo, la app lo muestra con una banda ámbar —«Sin conexión · guardado local»— y sigue funcionando exactamente igual.

2. Cada acción entra a una cola

Abrir la orden, tildar un control, cargar un repuesto, capturar la firma: cada operación se escribe en la base local y entra a una cola de sincronización con un identificador único. Cuando vuelve la señal —en el ascensor, en la calle, en el próximo cliente— un proceso en segundo plano vacía la cola sin que la persona haga nada.

Celular con la cola de operaciones pendientes y panel de despacho con las órdenes del día
De la cola local al panelLo que el técnico cargó sin señal espera en el teléfono y llega al panel de despacho en cuanto hay red.

3. Sincronización idempotente

Las conexiones en campo se cortan a mitad de camino. Si el teléfono manda dos veces la misma operación porque no recibió la respuesta, el servidor la reconoce por su identificador y no la duplica. Sin esto aparecen órdenes repetidas, repuestos descontados dos veces y firmas duplicadas.

4. Conflictos con reglas por campo

El caso difícil: la oficina reasigna una orden a otro técnico mientras el primero ya está trabajando sin señal. Cuando llega la sincronización, el sistema no pisa ninguna versión a ciegas. Aplica reglas por campo, no por orden completa: la asignación la decide la central, pero el contenido del parte, los repuestos y la firma los decide el campo, porque son lo que pasó de verdad. El panel muestra las dos versiones y deja revisar.

Panel con la versión de campo y la versión de la central de una misma orden, lado a lado
Cuando la central y el campo no coincidenLas dos versiones lado a lado y la regla aplicada: nada se pierde en silencio.

5. Fotos y archivos por separado

Las fotos pesan mucho más que los datos. Conviene que viajen aparte, comprimidas, y que la orden pueda quedar cerrada aunque las imágenes todavía estén subiendo. Así una conexión débil alcanza para cerrar el trabajo.

Qué cambió en el caso real

La app se construyó con el modo sin conexión primero: se arrancó con una sola familia de equipos y seis técnicos, probando en modo avión desde la primera semana. Tampoco se digitalizó el parte de papel tal cual: se armó un checklist por tipo de equipo con los controles que los técnicos miraban de verdad. A los cinco meses, los números eran estos:

Indicador Antes Después
Cierre del parte 2 días Mismo día
Partes sin firma del cliente 31% 2%
Repuestos sin descontar a fin de mes 18% 0%
Segundas visitas por falta de historial 14% 5%

El mismo patrón —tomar el dato en el lugar y sincronizarlo cuando hay red— es el que usa el sistema de control horario con reconocimiento facial.

Con qué tecnología se hace

No hay una sola respuesta, pero las piezas son siempre las mismas: una app móvil con base de datos local, una cola de sincronización y una API que acepte cada operación una sola vez. En el caso se usó React Native con SQLite en el teléfono, una API REST en Node.js y PostgreSQL en el servidor. Flutter o una app nativa en Kotlin también sirven; lo que define el resultado es la arquitectura, no el framework.

Errores comunes

  • Agregar el modo sin conexión al final. Si la app se pensó online, cada pantalla supone que hay red y rehacerlo cuesta casi lo mismo que empezar de nuevo.
  • Probar sólo con buena señal. Hay que probar en modo avión, en subsuelos y con la conexión cortándose a mitad de un envío.
  • Resolver conflictos con «gana el último». Así se pierden firmas y repuestos sin que nadie se entere.
  • Copiar el formulario de papel. Es la oportunidad de quedarse sólo con los controles que importan.
  • No mostrar qué falta sincronizar. El técnico y la oficina tienen que ver cuántas operaciones siguen en el teléfono.

Checklist antes de arrancar

  1. Listá dónde se trabaja y dónde se corta la señal.
  2. Definí qué datos no se pueden perder: firma, fotos, repuestos, lecturas.
  3. Decidí, campo por campo, quién gana en un conflicto: la central o el campo.
  4. Elegí con qué grupo y qué tipo de trabajo empezar, y probalo en modo avión desde la primera semana.
  5. Prevé cómo se conecta con tu sistema de gestión para facturar y descontar stock sin recargar nada.

Cómo te ayudamos desde Intway

Desarrollamos apps a medida para equipos en campo, pensadas para funcionar sin señal desde el primer día, con su panel para la oficina y la integración con tu sistema de gestión. Mirá el caso completo de las órdenes de trabajo, cómo trabajamos en software para mantenimiento y servicio técnico y en logística y transporte, o cómo encaramos un software a medida para pymes.

compartir

Preguntas frecuentes

¿Qué pasa si el teléfono se rompe antes de sincronizar?

Lo que todavía no subió está en la base local del teléfono y se pierde con él. Por eso la app sincroniza en cuanto detecta red, aunque sea unos segundos, y el panel de la oficina muestra cuántas operaciones tiene pendientes cada persona.

¿Una app offline-first sirve también en iPhone?

Sí. La arquitectura es la misma en Android y en iOS: base de datos local, cola de sincronización y una API que acepta cada operación una sola vez. Con React Native o Flutter se hace una sola app para los dos sistemas.

¿Cuánto tiempo puede trabajar sin señal?

El tiempo que haga falta: la app guarda todo en el teléfono y no depende de la red para funcionar. El límite práctico es el espacio del teléfono, sobre todo por las fotos, que por eso se comprimen antes de guardarse.

¿Se puede conectar con el sistema de gestión que ya tenemos?

Sí. Lo habitual es conectar el panel de la oficina con el sistema de gestión por API, para que la orden cerrada alimente la facturación y el stock sin volver a cargar nada.