Mobitraxx
en desarrollo
De dos apps separadas a una sola base que funciona sin señal y protege lo que guarda.
Mobitraxx es una plataforma para empresas de seguridad: sus guardias recorren rondas y registran cada punto de control con el teléfono, aunque estén en un sótano o en una zona rural. Estamos rehaciendo sus dos apps Android sobre un mismo código, sin que los guardias tengan que cambiar de app.
- Tipo
- Cliente
- Plataforma
- Android · iOS en preparación
- Ámbito
- Arquitectura, apps, funcionamiento sin señal, cifrado y migración
Así funciona
El comienzo de un turno: el equipo se registra una vez, el guardia se identifica con su PIN y sale a hacer la ronda.
- 1Registrar el equipoEl administrador le da un nombre al teléfono y le asigna una licencia.
- 2Identificar al guardiaElige su nombre y entra con su PIN, incluso sin señal.
- 3Registrar el puntoAcerca el teléfono a la etiqueta y la ronda avanza.
El punto de partida
Las rondas se hacen donde la señal no llega: estacionamientos subterráneos, bodegas, predios rurales. El guardia lleva el teléfono y registra cada punto de control con NFC, QR, GPS o un beacon; la empresa necesita saber que pasó por ahí y a qué hora.
Había dos apps, solo para Android y en códigos separados, que se habían ido distanciando. Hablaban con el servidor mediante una tecnología que ya no tiene soporte, y si el servidor respondía con un error, la lectura se descartaba igual.
Y las apps no tenían ni reporte de errores ni analítica: cuando algo fallaba, nadie podía saber por qué.
Los problemas y las decisiones
1Un guardia sin señal no puede quedarse esperando a que el registro se envíe, ni perder la ronda que ya hizo.
- Qué decidimos
- Todo se guarda primero en el teléfono y se envía desde una cola de sincronización que reintenta sola cuando vuelve la señal: lecturas, incidencias con fotos y video, checklists, registro horario y las altas del administrador. El servidor descarta los duplicados.
- Lo que cedimos
- Más lógica en el teléfono: una cola con tope, reintentos con espera creciente y reglas sobre qué se reintenta y qué no.
2Lo que espera en el teléfono son datos personales: fotos de empleados, firmas, video, credenciales.
- Qué decidimos
- Ciframos todo lo sensible que queda guardado —credenciales, la lista de usuarios, la cola de envíos y los medios—, con las llaves protegidas por el sistema operativo. Para fotos y video construimos un almacén de archivos cifrado, y así una incidencia con video también se puede guardar sin señal.
- Lo que cedimos
- El almacenamiento cifrado del sistema no está hecho para archivos grandes: tuvimos que diseñar y mantener uno propio para los medios.
3Si una sola operación guardada se dañaba, podía arrastrar con ella todo el trabajo pendiente de un turno.
- Qué decidimos
- Cada operación de la cola se guarda y se cifra por separado. Si una se daña, se pierde esa y nada más.
- Lo que cedimos
- Preferimos no sumar una base de datos y resolverlo sobre el almacén cifrado que ya teníamos: menos dependencias, más cuidado en cómo se indexa la cola.
4Dos apps que se distanciaban, y la necesidad de llegar también a iOS.
- Qué decidimos
- Un solo código en Kotlin Multiplatform, con la interfaz y la lógica compartidas, del que salen las dos apps de la tienda. Reporte de errores y analítica desde el primer día.
- Lo que cedimos
- Lo que depende del hardware —NFC, beacons— se implementa por separado en cada plataforma, y eso hace que iOS tome más tiempo.
Qué hemos conseguido hasta ahora
Aún no está lanzada. Llegará como actualización de las apps actuales en la tienda, de forma gradual.
- Dos apps de tienda desde un mismo código, en pruebas con el cliente.
- Rondas, incidencias, checklists y registro horario funcionan sin señal.
- Las credenciales, la cola de envíos, las fotos, las firmas y el video se guardan cifrados.
- Reporte de errores y analítica en cada pantalla, que las apps anteriores no tenían.
- Pensada para el turno: botones grandes para usar con guantes, tema oscuro y botón de pánico.
Cómo lo construimos
Sobre un sistema que ya estaba en uso: la nueva versión reemplaza a la anterior en la misma ficha de la tienda y conserva el registro de cada teléfono, para que ningún equipo en terreno tenga que volver a configurarse.
- 4formas de registrar un punto: NFC, QR, GPS y beacon
- 2apps de tienda desde un mismo código
- 3idiomas, con variantes regionales
¿Tienes un desafío parecido?
Cuéntanos qué necesitas resolver. Podemos ayudarte a definir el siguiente paso.