App móvil
MyRuns — App RFID para Zebra
App móvil para pistolas RFID Zebra en retail y almacenes

Contexto
MyRuns es una aplicación móvil industrial para dispositivos Zebra (terminal TC27
- sled RFID RFD40) que se usa en grandes tiendas y almacenes para agilizar la operativa de inventario y logística mediante lectura RFID.
Punto de partida
Recogí el proyecto en un estado crítico: no compilaba de forma estable, la interfaz era inconsistente y el hardware no estaba operativo. Entre los bloqueos: errores de build, falta de vinculación TC27–RFD40 ("Zero-State"), conflicto entre el SDK RFID y DataWedge, inconsistencias de tipos backend-frontend (422/403) y ausencia de identidad de dispositivo (UUID/Heartbeat).
Qué hice
Refactoricé la app hasta dejarla funcional, escalable y lista para producción:
- Hardware y core: vinculación estable TC27 + RFD40, migración al último SDK de Zebra y un puente bidireccional Flutter ↔ nativo Android ↔ sensores, con un gestor de estado híbrido que conmuta entre DataWedge (láser) y el SDK RFID según la pantalla.
- Ciclo de vida: generación de UUID (android_id) y servicio Heartbeat en segundo plano para reportar el dispositivo como "Alive" y hacerlo trazable.
- Arquitectura: saneamiento de la capa de datos (Inventario, Stock, Localizador,
Entidades), un
MergedInventoryServiceresiliente con filtros dinámicos y fallback, y desacoplamiento UI/hardware mediante un componenteRfidControlPanelreutilizable. - UX/UI: nuevo hub de navegación (
SelectorScreen), widgets de gestión en vivo (batería, conexión y antena) y el design system "Cyber Steel" (oscuro, pixel-perfect y preparado para theming).
Funcionalidades
- Movimientos: recepción, traspasos, salidas y devoluciones con codificación por colores.
- Inventario: conteo y órdenes de inventario masivo por RFID.
- Localizador: "dashboard de búsqueda" que separa la consulta por datos (API) de la localización física (radar RFID/Geiger).
- Consulta de stock y centro de soporte técnico.
- Configuración de hardware: potencia de antena, gatillo y scanner integrados en pantalla.
Calidad
Arquitectura de componentes (Atomic Design) con widgets reutilizables (CyberWideButton,
MyRunsTextField, CyberFooter), null-safety estricto (eliminación de dynamic),
diálogos robustos con gestión de Future y optimizaciones nativas (const,
BouncingScrollPhysics).
Galería





