Fundado en 2007, JioSaavn es un servicio líder de transmisión de audio para música y podcasts. Cuentan con más de 900 asociaciones con sellos discográficos y transmiten más de 80 millones de pistas en 16 idiomas. La app de JioSaavn también está disponible en 6 idiomas regionales de la India.
Con una pila tecnológica que admite más de 100 millones de usuarios activos por mes (MAU), JioSaavn opera a gran escala y velocidad. Por lo general, este público tiene teléfonos Android con recursos limitados, por lo que la experiencia del usuario es de suma importancia para el equipo de JioSaavn.
El desafío
Realizar optimizaciones en un entorno de limitaciones, como las que se encuentran en los dispositivos móviles de gama media baja, puede ser desafiante y emocionante desde la perspectiva de la ingeniería. El desafío al que enfrentó JioSaavn era optimizar la experiencia del usuario para su público objetivo clave mediante dispositivos móviles de gama media y baja, que se encontraban principalmente en las ciudades de los niveles 2 y 3 de la India.
Al analizar el embudo, era evidente que había una parte considerable de usuarios que iniciaban la aplicación, pero no escuchaban una canción. El equipo determinó que la causa de esto es el tiempo de inicio de la app. Por lo tanto, la mejora del tiempo de inicio de la app se asoció con un aumento en la cantidad de objetos de escucha en la app.
Cómo lo lograron
JioSaavn se basó en un análisis integral y un conjunto sólido de herramientas como Perfetto y dumpsys, entre otras, para analizar este problema y llegar a una solución sustentable. El equipo abordó este desafío con dos principios: paralelizar el trabajo y ser perezoso.
Con la ayuda del análisis de Google, el equipo dio prioridad a las tareas:
- Usaste systrace y perfetto para estudiar el flujo de la app, analizar los puntos débiles y validar mejoras en el tiempo de inicio de la app.
- Inicialización retrasada: Se identificó la inicialización de fragmentos, instancias y clases que se podrían retrasar hasta que se muestre la página principal.
- Anuncios
- Servicio de música (servicio en primer plano) y recursos del reproductor (p.ej., ExoPlayer, fila de reproducción almacenada en caché, etcétera)
- Fragmento del jugador minimizado en el momento del lanzamiento.
- Inicialización a pedido: de varias bibliotecas a medida que se requiere la biblioteca (p. ej., Facebook lib).
- viewStubs: El aumento de View y la carga de recursos era intensa. El equipo aplanó sus diseños con viewStubs y convirtió las imágenes a webP.
- Subproceso de trabajo: Algunas tareas que no requerían subproceso de IU se movieron a subprocesos b/g para liberar el subproceso de IU.
- Divide los datos de la caché: La lectura y el análisis de datos almacenados en caché de gran tamaño de un archivo lleva mucho tiempo. El equipo la dividió en datos críticos (necesarios para mostrar la página de inicio) y no críticos.
- Async LayoutInflater: Algunas de las vistas requeridas para recyclerview de la página principal se aumentaron previamente con Async LayoutInflater.
Herramientas usadas: Perfetto, Systrace, Google Play vitals, Android Studio Profiler, Firebase Performance SDK
Resultados
El equipo de JioSaavn lanzó estos cambios en varias versiones de la app para mantener su estabilidad. Lograron los siguientes resultados:
- 30% de mejora en el tiempo de inicio de la app en todos los dispositivos y del 35% a 40% en dispositivos de gama baja.
- Aumento del 5% en los usuarios que vieron la pantalla principal/ DAU y, por lo tanto, se redujo el porcentaje de rebote.
Este ejercicio de optimización reunió a todo el equipo. Se realizaron explicaciones detalladas para que el equipo se sienta cómodo con los cambios y para inculcar un enfoque de la aplicación centrado en el rendimiento.
"JioSaavn tiene como objetivo mejorar la experiencia auditiva de nuestros usuarios que provienen de diferentes regiones
y ciudades de la India, y que abarcan todo el espectro en términos de accesibilidad. Por lo tanto, pasar más allá de la infraestructura de conectividad móvil de su región y optimizar la experiencia del usuario en todas las capacidades de los dispositivos es un desafío constante para el que trabajamos. Gracias a la guía de relaciones con desarrolladores de Google, pudimos dar un paso definitivo en esta dirección”.– Equipo de productos de JioSaavn