← Todos los episodios S1 · Episodio 12

1x12 | Charlando con los Androides de New Work

· 01:22:14 · Carlos Carrasco, Julia Garrigós, Rubén Abad

Resumen

La charla se centra en la organización de su equipo, que cuenta con más de 30 desarrolladores, y cómo se estructuran en squads de producto y equipos transversales como el de Plataforma y el de Diseño de Sistemas. Profundizamos en temas técnicos clave como la implementación de un sistema de diseño para unificar la UX, la migración de REST a GraphQL usando Apollo, y la optimización de su suite de tests de instrumentación, logrando reducir los tiempos de ejecución de 50 a 20 minutos gracias al Android Test Orchestrator.

Temas principales:

  • Organización de un equipo Android a gran escala: Explicamos cómo el equipo de más de 30 desarrolladores se organiza en squads de producto y equipos de soporte transversales (Plataforma, Diseño de Sistemas, Release), además de una “Comunidad Android” para tomar decisiones técnicas de forma colaborativa.
  • El rol del Equipo de Diseño de Sistemas (XDS): Carlos Carrasco detalla cómo su equipo trabaja para unificar la experiencia de usuario en todas las plataformas (web, iOS, Android) mediante la creación de componentes, temas y estilos, utilizando Abstract como un “GitHub para diseñadores”.
  • La Comunidad Android y la reunión “Kaizen”: Describimos una reunión semanal donde todos los desarrolladores Android pueden proponer, debatir y votar sobre mejoras técnicas, refactors y nuevas librerías, fomentando una cultura de colaboración.
  • Funcionamiento del Equipo de Plataforma: Julia Garrigós y Rubén Abad explican cómo su equipo proporciona las bases para los demás squads, gestionando la modularización, la navegación, la actualización de dependencias y las librerías internas.
  • Implementación de GraphQL con Apollo: El equipo comparte su experiencia migrando de múltiples endpoints REST a GraphQL. Julia explica cómo les permite solicitar solo los datos necesarios y cómo la librería Apollo autogenera los modelos de Kotlin, garantizando la seguridad de tipos y la nulabilidad.
  • Optimización de la suite de tests: Detallamos cómo redujeron el tiempo de ejecución de su suite de tests de instrumentación de 50 a 20 minutos. La solución clave fue el uso del Android Test Orchestrator para aislar cada test en su propio proceso y la paralelización mediante “shards”.
  • Gestión de migraciones a gran escala: El equipo explica cómo abordan migraciones complejas, como la de ButterKnife y Vistas Sintéticas a View Binding, planificándolas como OKRs de equipo para asegurar que todos los squads dediquen tiempo y recursos.
  • ¿Por qué no Kotlin Multiplatform?: En respuesta a la pregunta del episodio anterior, Rubén explica que, por ahora, no es viable debido a la incompatibilidad con librerías clave que utilizan y al enorme tamaño de su base de código.