
eBay
Delighting engineers at eBay with Flutter
Métricas de éxito
98.3%
código compartido
70%
los desarrolladores consideran que el desarrollo es el doble de rápido que con soluciones nativas
100%
desarrolladores dicen que lo prefieren por encima de iOS o Android
Goal
Durante años, los entusiastas de los automóviles han confiado en eBay para comprar y vender autos difíciles de encontrar, pero no existía una experiencia de aplicación exclusiva para ellos. Por eso, en 2018, se le pidió al equipo de eBay Motors desarrollar una nueva aplicación tanto para Android y iOS, con un conjunto completo de funciones y el mismo aspecto y sensación que la aplicación principal de eBay, todo en menos de un año.
El equipo sabía que con su tamaño limitado, construir dos aplicaciones nativas separadas en esa cantidad de tiempo era imposible, por lo que buscaron una solución multiplataforma que pudiera ayudarles a cumplir con su plazo.
Why Flutter?
El equipo había escuchado hablar mucho sobre Flutter, que acababa de lanzar su primera versión completa unas semanas antes. Aunque eBay no había quedado impresionada por otros SDKs multiplataforma que habían investigado en el pasado, Flutter sonaba como una alternativa prometedora. Debido a que el equipo necesitaba trabajar rápido y mantener una sensación nativa, estaban especialmente entusiasmados con las capacidades de diseño y ahorro de tiempo de Flutter, por lo que decidieron darle una oportunidad.
Their Solution
Con el interés despierto, eBay pasó un mes tratando de encontrar deficiencias en las capacidades de Flutter. Para su sorpresa y alegría, Flutter pudo manejar todo lo que se les ocurrió proponerle.
Animados, el equipo de eBay Motors programó una serie de talleres para capacitar al equipo de Ingeniería en Flutter. Nadie tenía experiencia previa, por lo que se registraron en el Bootcamp de Flutter de AppBrewery y organizaron internamente una serie de talleres prácticos.
Desde el primer momento, el equipo estaba entusiasmado con Flutter. Todos encontraron la experiencia de desarrollo mucho más divertida y descubrieron que era mucho más rápido construir con Flutter que con las herramientas nativas que habían usado en el pasado. Por ejemplo, en el desarrollo nativo de Android e iOS, los desarrolladores pueden tardar varios minutos en ver su código reflejado en el emulador. Con Flutter, tarda segundos.
También quedaron muy impresionados con el soporte de pruebas listo para usar de Flutter, el cual superó con creces sus expectativas. Incluso decidieron exigir una cobertura de código del 100% en adelante, lo cual aplicaron automatizando sus solicitudes de extracción.
Y por supuesto, el nivel de código multiplataforma compartido fue un enorme atractivo. Flutter le permitió al equipo compartir código para casi todo: la UI, la lógica de negocio, los modelos de dominio, las analíticas, la pila de red e incluso la canalización de CI. También había una gran cantidad de complementos para ayudarles a integrar las APIs del dispositivo que necesitarían, y en las pocas ocasiones en que el equipo necesitó escribir las suyas propias, el trabajo estuvo listo en cuestión de horas.
En última instancia, el mayor desafío fue simplemente descubrir cómo unificar a sus equipos de Android y de iOS, que siempre habían trabajado de forma independiente. Pero con una planificación cuidadosa, pudieron unirse como un solo equipo, lo que les dio una voz más fuerte y consistente dentro de la empresa.
“Flutter has not only met our expectations — it has dramatically exceeded them.”
- Corey Sprague, ingeniero sénior de iOS, eBay
Results
Al reducir drásticamente su tiempo de desarrollo, el equipo de eBay Motors cumplió con cada plazo en su cronograma de producción. Lanzaron una versión beta dentro de los tres meses posteriores a la solicitud inicial, y lanzaron una aplicación de producción completa solo unos meses después.
Mejor aún, la nueva aplicación de eBay Motors obtuvo excelentes comentarios de los usuarios, y también fue un éxito entre los desarrolladores. En una encuesta interna, el 100% de los desarrolladores del equipo de eBay Motors dijo que disfrutaba más del desarrollo con Flutter que con iOS o Android, y el 70% dijo que creía que era “al menos el doble de rápido”.
De hecho, gracias a Flutter, eBay Motors ahora lanza una nueva versión de su aplicación en ambas tiendas de aplicaciones cada semana, y ha podido agregar nuevas funciones como chat en vivo, depósitos en garantía (escrow) y foros comunitarios en ambas plataformas a la vez. Al reunir a todo su equipo de desarrollo bajo un mismo techo, también han podido ahorrar muchísimo tiempo. Ahora que sus aplicaciones comparten el 98.3% de su código, la aplicación de eBay Motors tiene una única fuente de verdad, lo que significa un conjunto de reuniones, un conjunto de diseños, una única cola de backlog y un solo equipo para gestionar.
El incremento en la velocidad también les ha permitido reemplazar los prototipos en papel por prototipos funcionales para pruebas de usuarios, brindándoles resultados mucho más confiables. Y debido a que la automatización de pruebas es tan robusta, el equipo convirtió a sus dos ingenieros de control de calidad (QA) en ingenieros de software.
Si le preguntas al equipo de ingeniería de eBay Motors, te dirán que Flutter ha hecho más que solo mejorar su flujo de trabajo. De hecho, ha cambiado fundamentalmente la forma en que opera el equipo, haciéndolos no solo más productivos, sino más felices y entusiasmados con su trabajo.