Rastreator es el comparador de seguros líder en España, una plataforma digital que permite a millones de usuarios comparar pólizas de seguros de coche, hogar, y vida de múltiples aseguradoras en cuestión de minutos. Fundada en 2005, la empresa ha experimentado una transformación digital significativa en los últimos años, especialmente con el desarrollo de su aplicación móvil que ha extendido su alcance a usuarios en cualquier lugar en cualquier momento. Dribba ha tenido el honor de participar en el desarrollo de la aplicación móvil de Rastreator, enfrentando retos técnicos sofisticados en arquitectura de aplicaciones, integración con APIs de aseguradoras, optimización de rendimiento a escala nacional, y entrega de una experiencia de usuario excepcional. Este caso de éxito ilustra cómo la combinación de tecnología moderna, especialmente Flutter para el frontend y Go para el backend, junto con una profunda comprensión de las necesidades del usuario y del negocio, permite crear soluciones digitales que impactan a millones de personas. A lo largo de este artículo, exploraremos los retos que enfrentamos, las soluciones que implementamos, y las lecciones aprendidas que nos han hecho más fuertes como equipo de desarrollo.

El Desafío: Transformación Digital a Escala Nacional

Cuando iniciamos el proyecto con Rastreator, la empresa enfrentaba un desafío transformacional importante. Aunque Rastreator era bien conocida como web en España, necesitaba establecer una presencia móvil robusta para competir en un mercado donde cada vez más usuarios acceden a servicios desde smartphones. La aplicación móvil necesitaba no solo replicar la funcionalidad del website, sino mejorarla: hacer el proceso de comparación de seguros tan rápido y sencillo en el móvil que fuera irresistible para usuarios ocupados que no tenían tiempo para sentarse en una computadora. Además, Rastreator operaba en un mercado altamente regulado con múltiples aseguradoras como partners, cada una con APIs propias y diferentes formatos de datos. Integrar todas estas fuentes de datos, garantizar que los precios y disponibilidad de pólizas siempre fueran exactos, y manejar la volatilidad de estos datos requería una arquitectura técnica sofisticada. La escala también era importante: Rastreator opera en toda España, significando que la aplicación necesitaba soportar millones de usuarios simultáneos, especialmente durante picos de demanda como cuando hay cambios en regulación de seguros o periodos electorales cuando el comportamiento de compra aumenta.

Selección Tecnológica: Flutter + Go + Kubernetes

Para resolver estos retos, seleccionamos una pila tecnológica moderna y probada. Para el frontend móvil, elegimos Flutter, permitiendo que un único equipo de ingenieros desarrollara aplicaciones nativas de alta calidad para iOS y Android simultáneamente. Flutter proporciona acceso directo a características del dispositivo como cámara, ubicación, y contactos, permitiendo una experiencia móvil verdaderamente nativa. Para el backend, seleccionamos Go debido a su rendimiento excepcional en manejar concurrencia. La arquitectura de Go con goroutines permitía que servidores individuales manejaran miles de solicitudes concurrentes sin saturarse, reduciendo significativamente los costos de infraestructura. Deployamos estos servicios en Kubernetes, permitiendo orquestación automática, escalado basado en demanda, y recuperación automática de fallos. Usamos Docker para containerizar cada componente, asegurando que el código se comportara idénticamente en desarrollo, testing, staging, y producción. Esta combinación de tecnologías resultó ser óptima para los requisitos del proyecto.

Arquitectura de la Aplicación

La arquitectura de la aplicación Rastreator fue cuidadosamente diseñada para soportar crecimiento y cambios en el futuro. En el frontend, implementamos la aplicación Flutter con una arquitectura de capas clara: una capa de presentación (widgets Flutter), una capa de lógica de negocio (BLoCs para state management), y una capa de datos (repositories que abstraen las fuentes de datos). Esta separación de responsabilidades permitió que múltiples equipos trabajaran simultáneamente sin conflictos, y facilitó testing exhaustivo de cada capa. En el backend, implementamos un arquitectura de microservicios donde cada dominio de negocio tenía su propio servicio: un servicio de autenticación, un servicio de búsqueda que consultaba APIs de aseguradoras, un servicio de recomendaciones que usaba machine learning para personalizar resultados, y un servicio de análisis que rastreaba comportamiento del usuario. Estos microservicios se comunicaban entre sí usando gRPC para baja latencia, y exponían APIs REST públicas para el cliente móvil. Utilizamos una cola de mensajes (RabbitMQ) para desacoplar procesos asincronos como notificaciones a usuarios y sincronización de datos con partners. Una base de datos PostgreSQL central almacenaba datos persistentes, con cachés Redis en múltiples niveles para acelerar acceso a datos frequently-accessed.

Integración con APIs de Aseguradoras

Uno de los mayores desafíos técnicos fue integrar eficientemente las APIs de docenas de aseguradoras, cada una con diferentes formatos, tiempos de respuesta, y niveles de confiabilidad. Construimos un servicio de integración que actuaba como adaptador: abstraía las diferencias entre APIs de aseguradoras, normalizaba los datos que retornaban en un formato estandarizado, y proporcionaba retry logic para manejar fallos transientes. Implementamos cachés agresivos para minimizar llamadas a APIs de aseguradoras (cuya latencia podía ser de segundos), reduciendo el tiempo de respuesta de búsquedas de comparación de minutos a segundos. Usamos feature flags para controlar qué aseguradoras estaban activas, permitiendo desactivar rápidamente una API si estaba causando problemas. Implementamos monitoring en tiempo real para detectar cuando las APIs de aseguradoras degradaban en rendimiento o disponibilidad, alertando automáticamente a nuestros equipos. Esta robustez fue crítica porque la confiabilidad de Rastreator depende directamente de la confiabilidad de sus partners.

Optimización de Rendimiento y UX para Comparación de Precios

Para que los usuarios tuvieran una experiencia excelente comparando seguros, el rendimiento era crítico. Optimizamos el flujo de búsqueda para que después de que el usuario ingresaba sus criterios, la aplicación retornara resultados preliminares en menos de 500ms, incluso mientras continuaba fetch de datos de aseguradoras más lentas en background. Implementamos lazy loading de resultados: la aplicación mostraba inicialmente los 5-10 mejores resultados, permitiendo que el usuario comience a revisar mientras continuaba cargando más resultados. Optimizamos la renderización de listas grandes en Flutter usando el widget ListView.builder que solo renderiza items actualmente visibles, en lugar de renderizar la lista completa. En el backend, implementamos circuit breakers para APIs lentas: si una aseguradora era particularmente lenta, la cortábamos de la búsqueda para mantener la experiencia del usuario ágil. Estos cambios resultaron en un tiempo promedio de búsqueda de 2-3 segundos, un mejora dramático desde los 30+ segundos que tomaba el website anterior.

Escalabilidad y Monitorización en Producción

Desde el lanzamiento, la aplicación ha crecido significativamente en usuarios activos, con millones de búsquedas procesadas mensuales. Para soportar este crecimiento, configamos Kubernetes para escalar automáticamente: cuando la CPU o memoria de los nodos aumentaba, Kubernetes lanzaba automáticamente nuevos pods (instancias de contenedores) para distribuir la carga. Usamos métricas de negocio para escalar: si la latencia de búsquedas excedía umbrales definidos, lanzábamos automáticamente pods adicionales. Implementamos monitoring exhaustivo usando Prometheus para métricas y Jaeger para distributed tracing, permitiendo que nuestros equipos entiendan exactamente dónde ocurrían cuellos de botella. Configuramos alertas que notificaban a los equipos de on-call cuando métricas críticas se desviaban de rangos normales. Esta visibilidad permitió que reaccionáramos rápidamente a problemas incipientes antes de que impactaran usuarios.

Resultados Medibles y ROI del Proyecto

El impacto de la aplicación móvil ha sido extraordinario. Dentro de 18 meses del lanzamiento, la aplicación móvil representaba 45% del tráfico total de Rastreator, demostrando una adopción masiva. Los usuarios que utilizaban la aplicación móvil completaban comparaciones de seguros en promedio 3x más rápido que en el website, resultando en conversion rates significativamente más altos. La métrica de Net Promoter Score (NPS) de la aplicación fue 72, considerado "world-class" para una aplicación financiera, indicando que los usuarios no solo estaban satisfechos sino que activamente recomendaban la aplicación a amigos y familia. Rastreator experimentó crecimiento de ingresos de 35% durante el primer año de operación de la aplicación, parcialmente atribuible a las mayores conversiones desde la experiencia móvil mejorada. Los costos operacionales fueron controlados gracias a la infraestructura escalable: a diferencia de ampliar manualmente servidores, Kubernetes escalaba automáticamente, asegurando que pagaban por computación solo cuando la necesitaban.

Lecciones Aprendidas y Mejores Prácticas

Este proyecto nos enseñó varias lecciones valiosas que hemos aplicado a proyectos subsecuentes. Primera: la arquitectura importa más que el lenguaje. Elegir una buena arquitectura con separación clara de responsabilidades fue más impactante que la selección específica de lenguajes de programación. Segunda: el caching es tu amigo cuando integras con múltiples APIs externas. Invertir tiempo en estrategias de caching bien pensadas proporciona returns exponenciales en performance. Tercera: la observabilidad no es un luxo, es crítico. Implementar monitoring y alerting exhaustivo desde el inicio permitió que reaccionáramos rápidamente a problemas. Cuarta: los requisitos no técnicos son a menudo más importantes que los técnicos. Entender que Rastreator necesitaba confiar absolutamente en la exactitud de datos de precios nos llevó a implementar verificaciones de datos rigurosas que, aunque complejas, fueron absolutamente necesarias. Quinta: las iteraciones pequeñas con feedback del usuario son mejores que grandes lanzamientos. Lanzamos versiones early de la aplicación a pequeños grupos de usuarios, iterando basado en feedback antes de lanzamientos masivos. Esta disciplina resultó en una aplicación que resonaba profundamente con los usuarios.

El proyecto Rastreator es testimonio de lo que es posible cuando combinas tecnología moderna, talento técnico excepcional, y una profunda comprensión de las necesidades del usuario y del negocio. Desde retos arquitectónicos complejos hasta optimizaciones sutiles de UX, cada decisión fue conducida por el objetivo de crear una aplicación que fuera rápida, confiable, y delightful para millones de usuarios españoles. En Dribba, estamos orgullosos de haber jugado un papel en el éxito de Rastreator, y las lecciones aprendidas continúan informando cómo construimos soluciones para nuestros clientes en todo el mundo. Si tienes un desafío técnico similar y necesitas un equipo que entienda cómo construir aplicaciones móviles escalables con backends robusos, te invitamos a explorar cómo podemos ayudarte en https://www.dribba.com.