Saltar al contenido

Posventa de automoción · App móvil a medida

App Driver para conductores

Los conductores de The Wheel Lab recogen las ruedas en casa del cliente o en el taller del partner y las devuelven reparadas. La app les pone en el móvil la ruta del día y deja constancia en el CRM de cada recogida y cada entrega.

Sector
Posventa de automoción
Solución
App móvil a medida
Periodo
Desde marzo de 2026
Estado
MVP Prueba cerrada en Google Play
Datos de demostración Pantalla «Hoy» de la app Driver: dos órdenes activas con recogidas, entregas y llantas del día, el interruptor «En servicio» activado y los accesos a ruta óptima, resumen y calendario.

Resumen ejecutivo

App Flutter para los conductores que recogen y entregan llantas: ruta del día, QR por llanta, firma, fotos selladas y ubicación solo en servicio.

WheelLab Driver es la herramienta de trabajo de los conductores. Muestra las recogidas y entregas asignadas en orden de ruta, permite escanear el QR de cada llanta, inspeccionarla con fotos, recoger la firma y registrar incidencias o notas de voz. Si se pierde la cobertura, las acciones se guardan y se envían al volver, sin duplicarse. La ubicación solo se comparte mientras el conductor está en servicio, para que el taller y el cliente vean su llegada. La app está en prueba cerrada en Google Play; la versión 1.1.0, revisada contra el CRM actual y probada de punta a punta, está preparada para subir.

El reto

  1. Las recogidas y entregas se hacen en la calle, a menudo en garajes o polígonos sin cobertura, y cada paso tiene que llegar al CRM una sola vez.

  2. El taller y el cliente quieren ver dónde está el conductor, pero Google Play restringe la ubicación en segundo plano y el seguimiento no puede ser permanente.

  3. Una llanta que cambia de manos sin fotos, firma ni estado registrado es una reclamación difícil de resolver.

  4. La app se quedó atrás mientras el CRM evolucionaba: en octubre de 2026, 8 de las 42 llamadas que usaba ya no eran compatibles con el backend y otras 16 tenían riesgos.

La solución

Una app Flutter que consume la API del CRM con tokens JWT que se renuevan solos. La jornada se guarda en caché y cada acción pasa por una cola persistente con clave de idempotencia. La ubicación la envía un servicio en primer plano que arranca y detiene el propio conductor con En servicio. Las notificaciones llegan por Firebase y los errores se registran en Crashlytics. Comparte con la app Partner un paquete de diseño y red.

Funcionalidades

Qué hace, pantalla a pantalla

Datos de demostración Notificación de Android de WheelLab Driver «En servicio»: comparte la ubicación durante la jornada y avisa de que hay que terminarla para dejar de compartirla.

01

Ubicación solo en servicio

La ubicación se comparte únicamente con la jornada activa y una notificación fija «En servicio». Se envía cada 5 segundos en marcha o al moverse más de 25 metros, y la app nunca pide el permiso de ubicación permanente.

Datos de demostración Hoja «Reportar incidencia» sobre una entrega, con las opciones cliente ausente, dirección incorrecta, llanta no lista, no accesible y tráfico.

02

Chat, incidencias y avisos

Chat por orden con el taller y el partner, con fotos; notas de voz e incidencias con fotos desde la recogida o la entrega. Las asignaciones nuevas llegan como notificación urgente y, al tocarla, abren la orden.

  • Ruta del día

    Recogidas y entregas asignadas en el orden de ruta que optimiza el CRM, con dirección, contacto e instrucciones de cada parada, apertura directa en la app de navegación y un modo conducción que avisa al llegar.

  • Recogida con QR, inspección y firma

    El conductor escanea el QR de cada llanta, registra los daños de cada una con fotos y recoge el nombre y la firma de quien entrega. La llegada al taller se confirma con el mismo escáner y se puede deshacer durante cinco segundos.

  • Entrega con prueba de servicio

    Al entregar se registran receptor, documento, fotos y firma. En las órdenes de particulares la app precarga el importe pendiente que calcula el CRM y permite registrar el cobro si se hace en ese momento.

  • Fotos selladas

    Cada foto lleva grabada una marca con ciudad, fecha y hora, precisión del GPS y número de orden, y la posición se guarda junto a la foto y la firma. Si no hay GPS, la foto se sube igualmente sin la marca de posición.

  • Trabajo sin cobertura

    La jornada y el detalle de cada orden se guardan en el móvil. Lo que se hace sin red espera en una cola que se envía al recuperar la conexión sin duplicar nada; lo que falla de forma definitiva se puede reintentar o descartar.

  • Acceso con PIN y biometría

    Entrada con teléfono y PIN, con huella o reconocimiento facial comprobados en el propio dispositivo. Tras varios PIN erróneos el servidor bloquea el acceso durante 15 minutos, y la sesión se renueva sola sin volver a pedir el PIN.

Arquitectura

Cómo está construido

Plano · app-driver-the-wheel-lab 5 capas · 17 piezas
  1. App Flutter

    • Jornada, recogida, entrega, inspección, incidencias, chat y estadísticas
    • go_router y estado por pantalla
    • Escáner QR con mobile_scanner
    • Mapas con flutter_map y Google Static Maps
    • De App Flutter a Servicios en el móvil: acciones del conductor
  2. Servicios en el móvil

    • Cliente HTTP dio con renovación de token y reintentos
    • Cola de acciones persistente con UUID como clave de idempotencia
    • Caché de la jornada y de la ruta
    • Servicio en primer plano con un isolate que envía el GPS
  3. Paquete compartido

    • wheellab_shared, común con la app Partner
    • Tokens de marca, temas claro y oscuro y animaciones
    • Interceptor de reintentos y utilidades JWT
  4. API del CRM

    • Rutas /driver para jornada, recogidas, entregas, inspecciones e incidencias
    • Recepción de la posición en /tracking/location
    • Chat por WebSocket
    • Ruta optimizada con Google Routes API
    • De API del CRM a Servicios externos: envío de notificaciones
  5. Servicios externos

    • Firebase Cloud Messaging y Crashlytics
    • Google Play, pista de prueba cerrada

Otros flujos

  • Paquete compartido → App Flutter : diseño y red comunes
  • Servicios en el móvil → API del CRM : HTTPS con JWT e Idempotency-Key
  • Servicios en el móvil → API del CRM : posición cada 5 s en servicio
  • Servicios externos → App Flutter : push de asignaciones y chat

Tecnologías

Stack verificado en el código

Backend

  • JWT

Móvil

  • Flutter
  • Dart
  • Firebase
  • Google Play

Infraestructura

  • GitHub Actions

Integraciones

  • Google Maps Platform
  • OpenStreetMap

Ingeniería

Cómo se planteó y se construyó

  1. De la web a la app nativa (marzo de 2026)

    La primera versión es una PWA de recogidas y entregas dentro del CRM, con escáner QR. Una semana después se prueba una app en React Native y, el 30 de marzo, se reescribe en Flutter con entrega, firma, inspección, incidencias, calendario, modo conducción, notas de voz y la firma de la versión para Google Play.

  2. Repositorio propio y auditoría (junio de 2026)

    Driver y Partner pasan a un repositorio común. Una auditoría en cinco fases cubre seguridad y estabilidad, experiencia de uso, capa de red, lint estricto y tests, y crea el paquete compartido con modo oscuro. El token deja de viajar en la URL del WebSocket y la 1.0.2 sale a prueba cerrada.

  3. Reactivación contra el CRM actual (octubre de 2026)

    Una auditoría compara cada llamada de la app con el backend. Se corrigen las incompatibles, se añaden la renovación de sesión con rotación, la cola sin conexión y la caché de la jornada, y las acciones pasan a depender de lo que el CRM permite en cada estado. En el CRM se cierran cuatro fallos de seguridad con tests.

  4. Preparación para Google Play (20 a 22 de octubre de 2026)

    Versión Android con SDK 36 y permisos mínimos, ubicación solo en servicio con aviso previo, enlace de borrado de cuenta, marca nueva, accesibilidad y contraste AA. Las funciones se prueban de punta a punta, con push, llegada al taller y entrega en producción, y la 1.1.0 queda preparada.

Retos técnicos resueltos

Enviar la ubicación con la pantalla bloqueada sin pedir el permiso de ubicación permanente que Google Play restringe.
El conductor inicia la jornada con la app abierta y eso arranca un servicio en primer plano con notificación fija. Un isolate propio lee el GPS y lo envía al CRM cada 5 segundos en marcha o tras 25 metros. Se retiraron el arranque automático, la exención de batería y la petición de «Permitir siempre».
Seguir trabajando sin cobertura sin que una recogida o una foto se registren dos veces.
Cada acción se guarda en una cola persistente con un UUID que viaja como Idempotency-Key. La cola respeta el orden dentro de cada orden, reintenta con espera creciente de 10 segundos a 15 minutos y, tras 8 intentos, deja la acción como fallida con Reintentar o Descartar.
Una app escrita contra una versión anterior del CRM, con estados y respuestas que habían cambiado.
Matriz de compatibilidad llamada por llamada. Los botones de cada orden salen ahora de las acciones disponibles que devuelve el CRM, y el servidor rechaza con 409 los cambios fuera de orden y no deja retroceder el estado de una orden.
En la primera prueba en producción no llegaba ninguna notificación push.
La app de Firebase se inicializaba con nombre propio y el envío buscaba la de por defecto. Corregido eso, se añadieron un canal propio para que las asignaciones salgan como aviso urgente y el icono monocromo de la marca, y se verificó en producción con builds de release.

Resultados

Lo que se ha medido

Cada cifra lleva su fuente y su fecha. Lo que no se ha medido va aparte, como potencial.

  • 28 de 28

    funciones del conductor superadas en la prueba de punta a punta, con push, llegada al taller y entrega en producción

    Matriz E2E de la auditoría de las apps (docs/auditoria-2026-10/E2E_MATRIZ.md) · 2026-10-21

Potencial · sin medición propia

  • Sin papel

    recogidas y entregas con fotos selladas, firma y estado por llanta registrados en el CRM

  • Sin cobertura

    la jornada sigue disponible y las acciones se envían al volver la red, sin duplicarse

Cronología

Cómo ha evolucionado

  1. Primera app del conductor, como PWA dentro del CRM y, a final de mes, nativa en Flutter.

  2. Repositorio común con la app Partner, auditoría en cinco fases y versión 1.0.2 en prueba cerrada de Google Play.

  3. Reactivación contra el CRM actual, cola sin conexión y ubicación solo en servicio.

  4. Prueba de punta a punta en producción y versión 1.1.0 preparada para Google Play.

Evolución prevista

Lo siguiente

Trabajo planificado, todavía no disponible.

  1. Previsto · 01

    Subir la 1.1.0 y pedir acceso a producción

    Sustituir en la prueba cerrada la 1.0.2, que aún pide ubicación en segundo plano y acceso al almacenamiento, por la 1.1.0 con permisos mínimos, y solicitar después la publicación en producción en Google Play.

  2. Previsto · 02

    Beta con los conductores del taller

    Uso real con los conductores, midiendo los fallos de la cola de acciones y el tiempo por parada, como prevé la hoja de ruta de la auditoría de octubre.

  3. Previsto · 03

    Documento y cobro en la entrega a particulares

    Decidir qué documento se emite y qué forma de pago se registra al entregar a un particular, o que lo fije el CRM, antes de generalizar el uso.

Proyectos relacionados

Más trabajo en esta línea

Ver todos los proyectos
  • Datos de demostración Tablero del CRM con las órdenes repartidas por estación del taller (preparación, diamantado, pintura, montaje, control de calidad y terminado), con operario y tiempo en curso.

    The Wheel Lab En producción

    CRM y ERP a medida para un taller de llantas

    Automoción y posventa · CRM/ERP a medida

    CRM y ERP a medida para un taller de reparación de llantas: de la consulta al cobro, con QR por llanta, recogidas con conductor y facturación por sucursal.

    • Python
    • FastAPI
    • SQLModel
    • Pydantic
  • Datos de demostración Inicio de la app Partner: resumen del mes con órdenes totales, pendientes, en proceso y entregadas, una alerta de fecha límite vencida, plazos, tiempo medio y órdenes por estado.

    The Wheel Lab MVP

    App Partner para clientes de empresa

    Posventa de automoción · App móvil a medida

    App Flutter para talleres, aseguradoras y concesionarios que trabajan con The Wheel Lab: pedidos, seguimiento por llanta y conductor, documentos y equipo.

    • Flutter
    • Dart
    • Firebase
    • JWT
  • Fotograma de un reel vertical del proceso: «Paso 02/04 · Pintura», una llanta pintada de rojo por el robot con el rótulo animado encima.

    The Wheel Lab MVP

    Producción de vídeo automatizada

    Posventa de automoción · Automatización de procesos

    Un pulsador en cada estación del taller graba el trabajo y el sistema monta solo el vídeo de la reparación para el cliente y los reels para redes.

    • Python
    • FFmpeg
    • Raspberry Pi
    • Linux

Hablemos

¿Necesitas desarrollar una solución similar?

Cuéntanos el problema. Te respondemos con un planteamiento claro: qué haríamos, en cuánto tiempo y con qué entregables.