Saltar al contenido
charad.dev
Volver a proyectos

App móvil

MyRuns — App RFID para Zebra

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

Vista principal del proyecto MyRuns — App RFID para Zebra

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 MergedInventoryService resiliente con filtros dinámicos y fallback, y desacoplamiento UI/hardware mediante un componente RfidControlPanel reutilizable.
  • 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

Menú de movimientos de logística: recepción, traspaso, salida y devolución
Menú de movimientos de logística: recepción, traspaso, salida y devolución
Configuración RFID: potencia de antena y modo gatillo en el dispositivo Zebra
Configuración RFID: potencia de antena y modo gatillo en el dispositivo Zebra
Localizador de activos con búsqueda y rastreo por proximidad (radar RFID)
Localizador de activos con búsqueda y rastreo por proximidad (radar RFID)
Control de salida (gatekeeper) con detección de etiquetas RFID
Control de salida (gatekeeper) con detección de etiquetas RFID
Órdenes de inventario y conteo por zonas
Órdenes de inventario y conteo por zonas
Traspaso de logística interna entre tiendas
Traspaso de logística interna entre tiendas