Josh es una app de videos cortos diseñada en India que se lanzó en agosto de 2020. También es una de las apps de videos cortos de más rápido crecimiento en la India, con más de 124 millones de MAU y 60 millones de DAU.
Optimizar Josh en una variedad de dispositivos (altos, medios y bajos) y mantener una experiencia estándar en todos ellos es una tarea difícil para cualquier desarrollador de apps, y los desarrolladores de Josh lo entendieron desde el principio. La mejora de Android vitals fue una tarea importante en sus sprints y se dio la importancia de crear satisfacción para los usuarios mejorando el tiempo de inicio y la respuesta de la app.
La capacidad de respuesta de la app y el tiempo de inicio también fueron importantes, ya que el video era el formato principal con el que los usuarios interactuaron y consumieron en la app. Cualquier parpadeo en la transmisión de video por Internet o pausas en las diferentes interacciones podría hacer que el usuario perdiera el interés y cerrara la app con rapidez.
Al invertir en el rendimiento del tiempo de inicio de la app, Josh mejoró el tiempo de inicio de la app en un 30% para el usuario promedio y se triplicó para alrededor de un 10% de los usuarios de dispositivos más antiguos y de gama baja.
El desafío
La app de Josh vio un rápido crecimiento hasta alcanzar más de 100 millones de MAU en menos de un año. A menudo, en la carrera por lanzar funciones controladas por eventos o productos, la optimización de apps ocupa un segundo lugar. Las auditorías de las apps y los comentarios estructurales de Google ayudaron a la empresa a identificar estos problemas desde el principio y a trazar una ruta para solucionarlos.
Cómo lo lograron
Durante la supervisión de Android vitals, se identificó una oportunidad para mejorar el inicio de la app. El equipo decidió priorizar la mejora de los tiempos de inicio en frío, ya que esto mejoraría automáticamente los tiempos de inicio semicaliente y en caliente.
Mediante el uso de varios seguimientos personalizados, systrace, Android Studio Profiler y Perfetto, el equipo pudo realizar una investigación exhaustiva e identificar los cuellos de botella. Estaba claro que se podía optimizar el tiempo que ocupaban onCreate de la clase Application y otros métodos síncronos.
Esto es lo que hizo el equipo específicamente:
- Se generó un perfil de cada bloque de código que se ejecuta durante el inicio de la app.
- Se analizaron los registros del sistema con herramientas de rendimiento de Android, como Perfetto, Systrace, Dumpsys, etcétera.
- Se investigó el impacto de los SDKs de terceros durante el inicio de la app y se inhabilitó el inicio automático de algunos SDKs de terceros.
- Se eliminaron las bibliotecas heredadas.
- Algunos módulos se aplazaron y se ejecutaron en segundo plano
- Se redujo el tamaño de los elementos de diseño que se usan en la pantalla de presentación durante el inicio y se los optimizó para el tamaño de la pantalla
Todas las opciones anteriores se validaron de forma exhaustiva con pruebas aisladas para confirmar su impacto positivo en la app, emulando inicios en frío e integrando la nueva biblioteca de Macrobenchmark de Jetpack.
Resultados
Estos cambios no solo condujeron a una mejora inmediata en todas las métricas, sino que también ayudaron a mejorar la experiencia general del usuario, junto con aprendizajes invaluables para el equipo de desarrollo de Josh.
- La mejora de los porcentajes de rebote y la retención le permitió a Josh conservar más de 1 millón de usuarios en comparación con el modelo de referencia. Enfocarse en estas dos métricas también mejoró la participación general dentro de la aplicación.
- Las calificaciones de Play Store mostraron una tendencia positiva al alza tras el lanzamiento de la app con mejoras en el inicio.
- El tiempo de inicio de la app mejoró un 30% para el usuario promedio y se triplicó para aproximadamente el 10% de los usuarios en dispositivos antiguos y de gama baja, lo que ayudó a mejorar significativamente la capacidad de respuesta de la app para estos usuarios.
Lo que es más importante, este ejercicio de mejora de Android vitals reunió a todo el equipo, lo que aumentó la motivación del equipo, especialmente de los miembros junior. Consolidó la importancia de Vitals y hasta llevó a que el equipo usara algunos de los aprendizajes en sus otras aplicaciones.
"Cuando los socios de un ecosistema se unen, este crece en conjunto. El poder de los datos y el análisis no tiene precedentes. Como plataforma centrada en los creadores, enfocada en el contenido y enfocada en los consumidores, siempre nos enfocamos en crear la mejor experiencia del usuario, lo cual depende en gran medida de la estabilidad de la app. Josh presenció un crecimiento inmediato y acelerado después de su lanzamiento. Trabajar en estrecha colaboración con el equipo de Google Play nos ayudó a identificar y rectificar desafíos como la estabilidad y la optimización de la aplicación desde el principio. Nuestras iniciativas con Google nos ayudaron a lograr una mayor estabilidad y mejoras en la retención y participación de los usuarios"
– Shailendra Sharma, vicepresidente sénior de Ingeniería y Productos, VerSe Innovation