TikTok reduce el tamaño del código en un 58% y mejora el rendimiento de la app para las funciones nuevas con Jetpack Compose
Lectura de 2 min
TikTok es una plataforma global de videos cortos conocida por su enorme base de usuarios y sus funciones innovadoras. El equipo lanza constantemente actualizaciones, experimentos y funciones nuevas para sus usuarios. Ante el desafío de mantener la velocidad y, al mismo tiempo, administrar la deuda técnica, el equipo de Android de TikTok recurrió a Jetpack Compose.
El equipo quería permitir una iteración más rápida y de mayor calidad de los requisitos del producto. Con Compose, el equipo buscó mejorar la eficiencia de ingeniería escribiendo menos código y reduciendo la carga cognitiva, a la vez que lograba un mejor rendimiento y estabilidad.
Optimización de la IU compleja para acelerar la productividad de los desarrolladores
Las páginas de TikTok suelen ser más complejas de lo que parecen, ya que contienen numerosos requisitos condicionales en capas. Esta complejidad a menudo generaba jerarquías de vistas difíciles de mantener, con una estructura subóptima y una anidación excesiva de vistas, lo que provocaba una degradación del rendimiento debido a una mayor cantidad de pases de medición.
Compose ofreció una solución directa a este problema estructural.
Además, la estrategia de medición de Redacción ayuda a reducir la doble tributación, lo que facilita la optimización del rendimiento de las mediciones.
Para mejorar la productividad de los desarrolladores, el equipo central del sistema de diseño de TikTok proporciona una biblioteca de componentes para los equipos que trabajan en diferentes funciones de la app. El equipo observó que el desarrollo en Compose es simple: aprovechar objetos componibles pequeños es muy eficaz, mientras que incorporar grandes bloques de IU con lógica condicional es sencillo y tiene una sobrecarga mínima.
Cómo construir un camino a seguir a través de la migración estratégica
Al adoptar estratégicamente Jetpack Compose, TikTok pudo mantenerse al tanto de la deuda técnica y, al mismo tiempo, seguir enfocándose en crear experiencias excelentes para sus usuarios. La capacidad de Compose para controlar la lógica condicional de forma clara y optimizar la composición permitió al equipo reducir hasta en un 78% el tiempo de carga de las páginas nuevas o completamente reescritas. Esta mejora fue del 20 al 30% en los casos más pequeños y del 70 al 80% en las reescrituras completas y las funciones nuevas. También pudieron reducir el tamaño del código en un 58%, en comparación con la misma función compilada en Views. Además, el equipo compartió algunas conclusiones:
La estrategia general del equipo de TikTok consistió en migrar de forma incremental recorridos de usuarios específicos. Esto les brindó la oportunidad de migrar, confirmar beneficios medibles y, luego, escalar a más pantallas. Comenzaron a usar Compose para simplificar la estructura general de la función de código QR y observaron las mejoras. Más tarde, el equipo expandió la migración a las experiencias de acceso y registro.
El equipo compartió algunos aprendizajes adicionales:
Mientras verificaba el rendimiento durante la migración, el equipo de TikTok descubrió que usar muchos ComposeViews pequeños para reemplazar elementos dentro de un solo ViewHolder generaba una sobrecarga de composición. Obtuvieron mejores resultados expandiendo la migración para usar un solo ComposeView para todo el ViewHolder.
Cuando se migró un fragmento dentro de ViewPager, que tiene lógica de altura personalizada y lógica condicional para ocultar y mostrar la IU según los experimentos, el rendimiento no se vio afectado. En este caso, migrar el ViewPager a Composable tuvo un mejor rendimiento que migrar el Fragment.
A Jun Shen le gusta mucho que Compose "reduce la cantidad de código necesario para el desarrollo de funciones, mejora la capacidad de prueba y acelera la entrega". El equipo planea aumentar de forma constante la adopción de Compose, lo que lo convertirá en su framework preferido a largo plazo. Jetpack Compose demostró ser una solución eficaz para mejorar tanto la experiencia de los desarrolladores como las métricas de producción a gran escala.
Comienza a usar Jetpack Compose
Obtén más información sobre cómo Jetpack Compose puede ayudar a tu equipo.
-
Casos de éxitoTinder reduce los inicios en frío de la app en un 47% con el nuevo Analizador de configuración de R8
La misión de Tinder es potenciar e inspirar conexiones reales haciendo que conocer gente sea fácil y divertido para cada nueva generación de solteros.
Ajesh Pai, Ulises Uriel Verduzco Díaz , Tracy Agyemang • Lectura de 4 min -
Casos de éxitoEl equipo creó una base de código de IU nativa de IA que es un 50% más pequeña que la implementación original, a la vez que logró una reducción del 35% en el tiempo de ejecución del agente de IA, un 32% menos de intercambios entre ingenieros y agentes, y una reducción del 33% en el costo de tokens.
Pavlo Stavytskyi, Rebecca Franks • Lectura de 11 min -
Casos de éxitoWhatsApp es la plataforma de mensajería más grande del mundo y presta servicios a miles de millones de usuarios en todo el mundo. Es la herramienta de comunicación predeterminada para personas de diversas regiones, ya que conecta a los usuarios a través de mensajería privada, confiable y segura.
Niharika Arora, Tracy Agyemang, Mayank Jain • Lectura de 8 min
Recibe la información más reciente sobre el desarrollo de Android en tu bandeja de entrada todas las semanas.