Los desarrolladores de Navixy han estado trabajando en aplicaciones móviles de telemática y recientemente liberaron una nueva aplicación móvil para la gestión de transporte. Ayudará a los gerentes a optimizar todos los aspectos de costos y productividad de la flota comercial, desde rutas en un mapa hasta mantenimiento. Dado que la solución actual X-GPS Monitor ya se usa por 100.000 empresas y se distribuye por socios en 130 países, muchos estarán interesados en saber por qué se necesitaba la nueva aplicación y qué esperar de ella.
Con este fin, nos reunimos con Nikita Derzhavinsky –propietario del producto GIS Navixy– y Lev Baryshev –líder del equipo de desarrollo móvil– en la oficina de Georgia. Les preguntamos qué verán los usuarios y la comunidad de socios de Navixy en la nueva aplicación y, al mismo tiempo, obtuvimos una visión de lo que sucede en la "cocina" de los desarrolladores.
No actualizar, sino crear una nuevas aplicaciones móviles de telemática para flotas de autos
El equipo de desarrollo de Navixy se preguntaba ¿cómo podríamos mejorar nuestra aplicación móvil X-GPS Monitor?, ¿deberíamos realizar una actualización o crear una completamente nueva? La aplicación cuenta con una larga historia y muchos usuarios activos.
Nikita: Lanzamos la aplicación móvil X-GPS Monitor hace seis años, la cual ha sido descargada desde Google Play y App Store un millón de veces. Durante ese tiempo hemos hecho cerca de 100 actualizaciones y seguimos dando soporte a la aplicación.
Recientemente, los desarrolladores han notado que la arquitectura existente de la aplicación, así como la tecnología usada, ha comenzado a ralentizar la adición de nuevas características. Si miramos el programa de avance de telemática avanzado de Navixy, queda claro que el desarrollo posterior requiere que tomemos un enfoque fundamentalmente nuevo.
Llegamos naturalmente a un punto en que tenía sentido reescribir la aplicación móvil para que no estuviéramos limitados por actitudes anteriores. Esto nos permitirá no solo repensar la experiencia del cliente que hemos acumulado a lo largo de los años, sino también tener en cuenta las nuevas tendencias de la industria. Así es como realizamos nuestra misión de hacer que la tecnología de telemática avanzada sea más accesible para nuestros clientes de todo el mundo.
Cuando miro una nueva aplicación a través de los ojos de un desarrollador, y empiezo mi carrera como programador, veo cuánta innovación aplicamos. Los clientes sentirán esto en gracias a su moderna UX, rendimiento y consumo de energía optimizado. Todas las nuevas tecnologías son increíblemente atractivas para los desarrolladores talentosos, por lo que es especialmente importante para nosotros que tanto nuestros ingenieros como nuestros socios integradores estén usando las tecnologías de vanguardia en su trabajo en todo momento.
Lev: Estoy de acuerdo con Nikita. En los proyectos serios a veces necesitas una actualización a gran escala de una aplicación que parece estar funcionando bien. Esto te permite llevarlo al próximo nivel y mantener el impulso.
Hemos adquirido esta sabiduría a través de la experiencia. Hace tres años, cuando empezamos a desarrollar la aplicación de gestión de personal de campo B2Field, no tomábamos nuestra popular aplicación X-GPS Tracker como base. En cambio, decidimos escribir la aplicación desde cero, utilizando nuevas tecnologías en desarrollo. En el proceso mis colegas y yo actualizamos nuestras habilidades, probamos las tendencias técnicas y ahora nos viene muy bien en el desarrollo de nuevas aplicaciones.
Contabilice las tareas de cada usuario
Resulta que al crear un entorno de desarrollo tecnológicamente avanzado, has dado poder a los desarrolladores y sincronizado al equipo. ¿Qué posibilidades abrirá la nueva aplicación para los usuarios de Navixy?
Nikita: En primer lugar, por supuesto, funcionalidad y rendimiento extendidos. El papel de la telemática está creciendo rápidamente en muchos aspectos de la gestión de la empresa hoy en día. Contribuimos a esto haciendo que el manejo de datos sea lo más conveniente y productivo posible.
En comparación con X-GP monitor, la nueva aplicación de Navixy se enfoca en las flotas. Al mismo tiempo, una aplicación es adecuada para diferentes roles en la empresa: gerente, supervisor de garaje, mecánico, etc. También estamos discutiendo el desarrollo de funcionalidades para los conductores. Planeamos agregar la capacidad para que los empleados vean información directamente relacionada con ellos y sus vehículos.
Hemos tenido en cuenta las tareas de cada persona que usará nuestra aplicación.
Tenemos en mente que la aplicación es utilizada por representantes de empresas pequeñas y grandes por igual. En este sentido, ayudamos a implementar capacidades de telemática para empresas con una amplia variedad de tamaños de flotilla. Por un lado, nuestra solución le permite trabajar con decenas de miles de vehículos, y por otro lado, le ayuda a analizar fácilmente la eficiencia del transporte, incluso para principiantes.
¿Cuál será el destino de la aplicación actual X-GPS Monitor si la nueva aplicación es más funcional y productiva?
Nikita: Continuaremos actualizando la aplicación X-GPS Monitor y le seguiremos dando soporte durante un tiempo, incluso después de que se lance la nueva. Ambas aplicaciones estarán disponibles al mismo tiempo durante un tiempo suficiente para que los usuarios y socios cambien a su propio ritmo.
¿Cuándo comenzó el desarrollo de la nueva aplicación móvil y cuándo podemos esperar su lanzamiento oficial?
Lev: La nueva aplicación lleva en desarrollo unos seis meses ya. Como anuncio, podemos mostrar algunos elementos de la nueva aplicación hoy. Definiremos una fecha concreta de lanzamiento un poco más tarde junto con el anuncio de la gran presentación especial.
Haciendo la realidad indistinguible de la magia
Lev, mencionaste que la velocidad de la aplicación es una de las ventajas y también la razón para cambiar a la nueva tecnología. ¿Puedes ampliar esto para nuestra audiencia más conocedora de tecnología?
Lev: Así es, y estoy orgulloso de que mi equipo pudo aumentar el rendimiento de la aplicación por órdenes de magnitud. Sabes que Navixy tiene clientes donde se pueden recoger decenas de miles de coches en una cuenta. Con la nueva aplicación, pueden tener acceso a toda la flota de una vez, o cualquiera de sus grandes segmentos, sin experimentar ningún retraso en la interfaz en absoluto. En otras palabras, ofrecemos una funcionalidad completa de trabajo para un teléfono inteligente o una tableta.
Los desarrolladores aman las tareas ambiciosas y lo más interesante de nuestro trabajo es hacer que la realidad sea indistinguible de la magia. Cuando ofrecemos una rica herramienta de monitoreo de flotas de vehículos de casi tamaño ilimitado en los recursos limitados de un dispositivo móvil, parece magia real a mis ojos. Pero no tenemos trucos, ahora les diré cómo hacemos que sea real.
Nuestro primer paso fue encontrar el stack adecuado de tecnología moderna. Estudiamos mucho, lo probamos y retuvimos lo que funcionó muy bien. En nuestro caso esto es:
SwiftUI
Combine reactive framework
GRDB
KeyPath
WebSocket
PropertyWrappers
Async/await concurrency (planificado)
Estas son las tecnologías que se han probado, y sin ellas no habríamos logrado una productividad tan impresionante. Y queremos recordarles que a medida que crezcan los negocios de nuestros clientes y socios, a medida que aumente el tamaño de sus flotas, la solución Navixy siempre se ajustará a sus necesidades.
De paso, cuando los clientes cambian sus flotas desde otras plataformas a Navixy, el rendimiento de la solución es la segunda razón más común para cambiar. Primero y tercero, respectivamente, son la funcionalidad y la confiabilidad de la solución. Debido a que invertimos en soporte de alto rendimiento y personas que adoptan y utilizan esa tecnología, ganamos la competencia.
El segundo paso que dimos para mejorar el rendimiento fue identificar los cuellos de botella de nuestra aplicación anterior. A partir de los casos reales de nuestros clientes y pruebas de estrés específicamente desarrolladas, encontramos una serie de problemas en el uso de recursos de red, memoria de dispositivos móviles y falta de recursos gráficos.
Las reuniones técnicas regulares entre equipos desempeñaron un papel importante para encontrar una solución. Esta es una combinación de brainstorming, intercambio de experiencias y construcción de equipos intelectuales, donde a menudo se encuentran soluciones absolutamente ingeniosas a los problemas. Algunos de los enfoques que describiré fueron sugeridos en las reuniones técnicas.
La carga de la red es el primer problema que se tuvo que resolver. Hoy en día, estamos lidiando con el flujo de datos de telemática, que en los últimos años se ha multiplicado. El número de objetos, el número de parámetros de equipos monitorizados y la variedad de formatos y volúmenes han aumentado, y a menudo se necesitan datos aquí y ahora. Para transmitir y procesar esta gran cantidad de datos de manera eficiente, mejoramos nuestro protocolo para la comunicación con el servidor, y como resultado aumentamos la tasa de procesamiento de mensajes de la aplicación móvil de 350 a 1200 por segundo.
Además, para optimizar el manejo de memoria, cambiamos significativamente los métodos de trabajo con bases de datos locales y optimizamos su configuración. Esto dio como resultado un aumento en la velocidad de 90 veces. Al mismo tiempo logramos reducir el consumo de memoria, donde definimos para nosotros el límite superior de 300 Mb. Así que, ahora incluso las cuentas más grandes pueden caber dentro de este rango.
Gracias a las mejoras que hemos realizado en el manejo de la red y la memoria, los datos de la cuenta se descargan y procesan de la manera más fluida posible para el usuario. En una prueba de estrés con una cuenta de 100.000 automóviles, el tiempo de inicio de la aplicación ahora es menor a 7 segundos. En la mayoría de las cuentas reales con decenas o cientos de automóviles, la aplicación se inicia casi inmediatamente.
Lanzamiento de una nueva aplicación
En este caso, en el desarrollo de aplicaciones móviles de telemática seguimos el llamado enfoque offline first, lo que significa que la aplicación móvil sigue siendo funcional, proporciona la mayoría de sus funciones y sigue siendo receptiva incluso si el dispositivo tiene una conexión a Internet inestable.
Otro aspecto al que le hemos prestado mucha atención es el uso de los recursos gráficos del dispositivo. Aquí desarrollamos un nuevo módulo de agrupación en cascada de objetos muy cercanos en el mapa. Al principio, probamos el agrupamiento estándar de Apple y Google. Pero cuando realizamos su prueba de carga, vimos que ya se ralentizaba notablemente a 10 mil objetos. Esto no nos convenía, ya que tenemos clientes con flotas mucho más grandes y para los que es importante poder monitorear sus vehículos en una cuenta.
Entonces nos enrollamos las mangas y nos fuimos por nuestra propia solución, donde trabajamos a través de todas las partes críticas en velocidad del código. Así que bajo el capó del clustering también tenemos ahora nuestra propia solución, que nos dio un impulso de rendimiento de 10 veces sobre la versión anterior de la aplicación, que más que cumple con las necesidades de incluso las cuentas más grandes.
No obstante, en el proceso de trabajar en el componente gráfico no estuvo sin algunas limitaciones. En particular, vimos que el componente de mapa incorporado de SDK no está completamente adaptado al mismo SwiftUI, por lo que aquí tuvimos que usar no lo más a la moda, sino el bien establecido MapKit. Por otro lado, también mejoramos la animación para los objetos y sus grupos, por lo que además de un mayor rendimiento, el módulo gráfico recibió una serie de mejoras visuales, incluyendo los ansiados iconos para objetos.
Ahora, después de todas las mejoras en la red, la memoria y la gráfica, tenemos la confianza de que incluso en las cuentas ultra grandes el dispositivo no desperdicia recursos, no se calienta y no descarga la batería. Pero todavía muestra al usuario datos relevantes y mantiene una interfaz altamente sensible.
Una cuenta de Navixy con 100.000 vehículos
Uso cruzado de telemática
Colaboradores, gracias por la historia detallada de lo que está sucediendo en el escenario y detrás de las escenas. ¿Cuáles son sus planes para el desarrollo de aplicaciones móviles de telemática?
Nikita: Antes de contarte sobre los planes, necesito hacer un comentario. Se refiere a la estrategia de posicionamiento de las dos aplicaciones móviles de nuestra compañía.
El monitor X-GPS y las aplicaciones B2Field están especializadas para sus propios conjuntos de tareas: optimizar el trabajo de los trabajadores del transporte o el campo. Sin embargo, hay una gran capa de organizaciones donde ambas necesidades están presentes al mismo tiempo, y si se abordan juntas, el resultado es mejor. Por ejemplo, los empleados en coches no solo son conductores, sino que conducen al lugar y realizan allí algunos trabajos principales, lo que requiere un contexto de información y un informe.
Ejemplos de este tipo de negocios incluyen servicio al cliente con visitas en el sitio o ingenieros que hacen un recorrido de la infraestructura distribuida de una organización. Al por mayor y a detalle, también hay muchos roles para los empleados cuyo trabajo implica viajar a y desde los puntos de venta.
Estas empresas tienen un problema común: la separación de procesos relacionados con el transporte y el servicio al cliente. En ausencia de sistemas de TI interconectados, aparecen "silos de datos" y los departamentos no pueden cooperar de manera efectiva. Por ejemplo, el jefe de los ingenieros de servicio no ve a sus subordinados como conductores, por lo que la calidad de la conducción o la contabilidad de combustible quedan fuera de su campo de visión. El gerente encargado de la salud de la flota puede tener todos los datos que necesita sobre la ubicación del vehículo, pero no lo usará al asignar llamadas al empleado más cercano, por ejemplo.
Creemos que el uso de telemática de extremo a extremo a través de los departamentos ahorrará costos, mejorará la calidad y la velocidad del servicio al cliente y simplificará los informes.
Con este fin, combinamos datos de telemática de sensores en el automóvil y dispositivos móviles, es decir, integramos la aplicación B2Field más estrechamente con la telemática de sensores.
Las aplicaciones de transporte y trabajadores de campo permanecerán especializadas, con sus propias interfaces web y aplicaciones móviles, pero se integrarán en el nivel básico de datos. Por ejemplo, los datos de geolocalización estarán disponibles desde ambas aplicaciones y se compartirán directorios de empleados, geocercas y otros lugares.
Esta integración de telemática y sistemas de gestión de campo aumentará el conocimiento de los diferentes departamentos, ayudará a gestionar la empresa y reducirá el tiempo y los costes de implementación.
Más sobre las características de Navixy
El equipo de desarrollo de Navixy desarrolla regularmente la plataforma de telemática para apoyar los crecientes requerimientos del mercado. Echa un vistazo a nuestro blog para obtener actualizaciones y echa un vistazo a las características de monitoreo GPS en la versión gratuita.