JioSaavn aumenta o número de DAUs ao melhorar o tempo de inicialização do app em 30%

Fundado em 2007, o JioSaavn é um serviço líder de streaming de áudio para música e podcasts. Ela tem mais de 900 parcerias com gravadoras e ouve mais de 80 milhões de faixas em 16 idiomas. O app JioSaavn também está disponível em seis idiomas indianos regionais.

Com um conjunto de tecnologias que atende a mais de 100 milhões de usuários ativos por mês (MAUs), a JioSaavn opera em grande escala e velocidade. Esse público-alvo geralmente tem smartphones Android com recursos limitados, o que torna a experiência do usuário muito importante para a equipe da JioSaavn.

O desafio

A otimização em um ambiente de restrições, como as encontradas em dispositivos móveis de baixa capacidade, pode ser desafiadora e empolgante do ponto de vista da engenharia. O desafio que JioSaavn enfrentou era otimizar a experiência do usuário para seu principal público-alvo usando dispositivos móveis de baixa média e encontrado principalmente nas cidades de nível 2 e 3 da Índia.

Ao analisar o funil, ficou evidente que havia uma seção considerável de usuários que iniciariam o aplicativo, mas não ouviriam uma música. A equipe determinou que o tempo de inicialização do app seria a causa desse problema. Assim, a melhoria do tempo de inicialização do app foi associada a um aumento no número de listeners.

Como foi o processo

A empresa contou com análises abrangentes e um conjunto robusto de ferramentas, como Perfetto, dumpsys etc. para analisar o problema e chegar a uma solução sustentável. A equipe abordou esse desafio usando dois princípios: carregar o trabalho em paralelo e ser lento.

Com a ajuda da análise do Google, a equipe priorizou tarefas,

  • Usou o Systrace e o perfetto para estudar o fluxo do app, analisar pontos problemáticos e validar melhorias no tempo de inicialização do app.
  • Inicialização atrasada: a inicialização de fragmentos/instâncias/classes foi identificada e pode ser atrasada até que a página inicial seja exibida.
    • Anúncios
    • Serviço de música (serviço em primeiro plano) e recursos do player (por exemplo, Exoplayer, fila de jogadores em cache etc.)
    • Fragmento do jogador que é minimizado no momento da inicialização.
  • Inicialização sob demanda: de várias bibliotecas como e quando a biblioteca é necessária (por exemplo, Facebook lib).
  • viewStubs: inflação de visualização e carregamento de recursos eram pesados. A equipe nivelou os layouts usando o viewStubs e converteu as imagens para webP.
  • Linha de execução de worker: algumas tarefas que não exigiam linha de execução de interface foram movidas para linhas de execução b/g para liberar a linha de execução de interface.
  • Dados divididos em cache: a leitura e a análise de grandes dados armazenados em cache de um arquivo leva muito tempo. A equipe os dividiu em dados críticos (necessários para mostrar a página inicial) e não críticos.
  • LayoutInflater assíncrono: algumas das visualizações necessárias para a recyclerview da página inicial foram pré-infladas usando LayoutInflater assíncrono.

Ferramentas usadas: Perfetto, Systrace, Google Play vitals, criadores de perfil do Android Studio e SDK de desempenho do Firebase.

Resultados

A equipe do JioSaavn lançou essas mudanças em várias versões do app para manter a estabilidade. Eles alcançaram os seguintes resultados:

  • 30% de melhoria no tempo de inicialização do app em todos os dispositivos e de 35 a 40% em dispositivos de baixa média.
  • 5% de melhoria nos espectadores da tela inicial/ DAU, reduzindo a taxa de rejeição.

Esse exercício de otimização reuniu toda a equipe. Instruções detalhadas foram feitas para deixar a equipe confortável com as mudanças e incutir uma abordagem focada no desempenho em relação ao aplicativo.

"A JiSaavn busca melhorar a experiência de escuta dos nossos usuários que vêm de várias regiões
e cidades da Índia, abrangendo todo o espectro em termos de acessibilidade. Assim, passamos pela infraestrutura de conectividade móvel da região e otimizamos a experiência do usuário em todos os recursos dos dispositivos dos usuários é um desafio constante em que trabalhamos. Graças às orientações do Google para relações com o desenvolvedor, conseguimos dar um passo definitivo nessa direção."

– Equipe de produtos da JioSaavn