Postado por Mauricio Vergara, gerente de marketing de produtos, com contribuições da Thousand Ant.
A Lyft tem um compromisso singular com a excelência em apps. Para uma empresa de transporte de passageiros por aplicativo que fornece a dezenas de milhões de passageiros e centenas de milhares de motoristas um serviço vital, no qual o fator tempo é crucial, esse compromisso é obrigatório. Nessa escala, cada momento de lentidão, frame congelado ou falha do app pode desperdiçar o tempo de milhares de usuários. Até mesmo uma pequena flutuação pode significar uma enxurrada de pessoas mudando para a concorrência para solicitar corridas ou trabalhar como motorista. Felizmente, a equipe de desenvolvimento da Lyft está sempre de olho no desempenho de seu app. Foi assim que eles notaram pela primeira vez uma lentidão no tempo de inicialização do app Android de seus motoristas.
Eles precisavam chegar rapidamente à origem do problema e descobrir o que seria necessário para resolvê-lo e, depois, justificar tal investimento para a liderança. Isso significava responder a uma série de perguntas difíceis. Onde estava o gargalo? Como isso estava afetando a experiência do usuário? Qual deveria ser a prioridade disso para a equipe, naquele momento? Por sorte, eles tinham à sua disposição uma ferramenta poderosa e capaz de ajudá-los a encontrar respostas. Com a ajuda do Android Vitals, uma ferramenta do Google Play para melhorar a estabilidade e o desempenho de apps em dispositivos Android, eles localizaram o problema, criaram um caso para justificar a prioridade para a liderança e dedicaram a quantidade certa de recursos para resolvê-lo. Veja como eles fizeram isso.
A primeira coisa que a equipe de desenvolvimento da Lyft precisava fazer era descobrir se esse era um problema urgente o suficiente para convencer a liderança a dedicar recursos a ele. Como qualquer proposta de melhoria de qualidade de um app, a aceleração do tempo de inicialização do Lyft Driver precisava ser ponderada em relação a outras demandas que concorriam pelo tempo dos desenvolvedores: a introdução de novos recursos de produto e as melhorias arquitetônicas e de ciência dos dados. Em geral, um dos desafios para convencer a liderança a investir na qualidade de apps é a dificuldade de correlacionar melhorias de desempenho e métricas de negócios.
Eles escolheram o Android Vitals para obter uma imagem exata do que estava em jogo. O Vitals dá aos desenvolvedores acesso a dados sobre o desempenho de apps, incluindo erros de falta de resposta, consumo excessivo de bateria, renderização e tempo de inicialização. O desempenho atual e histórico de cada métrica é rastreado em dispositivos reais e pode ser comparado ao desempenho de outros apps da categoria. Com a ajuda dessa ferramenta poderosa, a equipe de desenvolvimento descobriu que o tempo de inicialização do app Lyft Driver era de 15% a 20% mais lento do que o de outros 10 apps da mesma categoria, o que era uma questão urgente.
Em seguida, a equipe precisava estabelecer o escopo certo para o projeto, um escopo que fosse proporcional ao impacto da lentidão sobre os objetivos de negócios e a experiência do usuário. Os dados do Android Vitals confirmaram a urgência, especialmente porque proporcionaram uma comparação direta com a concorrência na área de transporte de passageiros por aplicativo. A equipe de desenvolvimento estimou que um único desenvolvedor trabalhando no problema por um mês seria suficiente para fazer uma melhoria mensurável no tempo de inicialização do app.
Ao fazer uso dessa diversidade de dados, e apelar para o compromisso da Lyft com a excelência em apps, a equipe apresentou o caso à liderança. Ao demonstrarem uma oportunidade óbvia de melhorar a experiência do cliente, um escopo viável definido de forma lógica e dados muito claros sobre a concorrência, eles conseguiram a aprovação.
A Lyft usa o "tempo até a interação" como métrica principal de inicialização (algo também conhecido como tempo para exibição total). Para entender os fatores que impactavam esse tempo, a equipe da Lyft traçou o perfil de cada uma das fases de inicialização do app para procurar pelo impasse. O aplicativo Lyft Driver é inicializado em quatro fases. 1) Primeiro, é iniciado o processo de solicitação. 2) "Activity" dá início à renderização da IU. 3) "Bootstrap" envia solicitações de rede para obter os dados necessários para renderizar a tela inicial. 4) Finalmente, "Display" abre a interface do motorista. A definição rigorosa do perfil revelou que a lentidão ocorria na terceira fase, de bootstrap. Com o gargalo identificado, a equipe tomou várias medidas para resolvê-lo.
Primeiro, eles reduziram as chamadas de rede desnecessárias no caminho crítico de inicialização. Após a decomposição dos serviços de back-end, eles conseguiram remover totalmente, e com segurança, algumas chamadas de rede no caminho de inicialização. Quando possível, eles também optaram por executar chamadas de rede de forma assíncrona. Nos casos em que alguns dados ainda eram necessários para que o app funcionasse, mas não durante a inicialização, essas chamadas foram transformadas em chamadas sem bloqueio para permitir que a inicialização prosseguisse sem elas. As chamadas de rede com bloqueio puderam ser movidas com segurança para o segundo plano. Por fim, eles optaram por armazenar os dados em cache entre as sessões.
Essas podem parecer mudanças relativamente pequenas, mas o resultado foi uma redução drástica de 21% no tempo de inicialização do app. Isso levou a um aumento de 5% nas sessões de motoristas no Lyft Driver. Com os resultados em mãos, a equipe conseguiu adesão suficiente da liderança para criar um fluxo de trabalho de desempenho dedicado a dispositivos móveis e adicionar um engenheiro ao esforço sem deixar de trabalhar em outras melhorias. O sucesso da iniciativa se estendeu a toda a organização, e vários gerentes começaram a buscar formas de fazer outros investimentos na qualidade do app.
O sucesso desses esforços traz várias lições mais amplas, que são aplicáveis a qualquer organização.
À medida que um app se expande e a equipe aumenta com ele, a excelência do app se torna mais importante do que nunca. Os desenvolvedores geralmente são os primeiros a reconhecer problemas de desempenho porque trabalham diretamente com o app, mas podem achar difícil gerar conscientização sobre isso em toda a organização. O Android Vitals é uma ferramenta poderosa para isso. Ele fornece uma maneira direta de sustentar as observações dos desenvolvedores com dados, facilitando a conciliação de métricas de desempenho e casos de negócios.
Ao criar sua própria iniciativa de excelência em apps, é útil visar primeiro os pequenos ganhos e progredir a partir daí. Tenha o cuidado de selecionar projetos que sejam viáveis e gerem resultados significativos com um investimento adequado de recursos.
Também é importante a comunicação ágil e frequente para envolver o restante da organização nos esforços de qualidade da equipe de desenvolvimento. Essas atualizações constantes de objetivos, planos e resultados ajudam a manter o envolvimento de toda a equipe.
O Android Vitals é apenas uma das muitas ferramentas do ecossistema Android projetadas para ajudar a entender e melhorar o tempo de inicialização de apps e o desempenho em geral. Outra ferramenta complementar, o Jetpack Macrobenchmark, pode ajudar a fornecer dados sobre uma variedade de métricas nas fases de desenvolvimento e testes. Ao contrário do Android Vitals, que fornece dados usando dispositivos reais de usuário, o Macrobenchmark permite comparar e testar localmente áreas específicas do código, incluindo o tempo de inicialização de apps.
A biblioteca App Startup do Jetpack oferece uma forma direta e eficiente de iniciar componentes na inicialização de um app. Os desenvolvedores podem usar essa biblioteca para otimizar sequências de inicialização e definir explicitamente a ordem de inicialização. Enquanto isso, o Alcance e dispositivos pode ajudar a entender a distribuição de usuários e problemas para tomar decisões melhores sobre as especificações segundo as quais você deve criar, os locais de lançamento e os elementos a serem testados. Os dados da ferramenta permitem que sua equipe priorize os esforços de qualidade e determine onde as melhorias terão o maior impacto para a maioria dos usuários. O Perfetto é mais um recurso inestimável: uma ferramenta de rastreamento de sistema de código aberto que pode ser usada para instrumentar o código e diagnosticar problemas de inicialização. Em conjunto, essas ferramentas podem ajudar a manter o app funcionando sem problemas, os usuários satisfeitos e toda a organização apoiando os esforços de qualidade.
Caso tenha interesse em envolver a sua equipe na busca da excelência em apps (ou por ingressar no Lyft), confira aqui nosso estudo de caso resumido para proprietários e executivos de produtos.
Postado por Patricia Correa, diretora de marketing global para desenvolvedores
Mais de 2,5 bilhões de pessoas acessam o Google Play todos os meses para encontrar apps e jogos criados por milhões de empresas em todo o mundo.
O #WeArePlay celebra todos vocês, que fazem parte da comunidade global de pessoas por trás dessas empresas.
Cada pessoa que cria apps ou jogos tem uma história diferente para contar. Alguns são codificadores desde a infância, e outros chegaram à tecnologia na idade adulta. Alguns estão em grandes metrópoles, enquanto outros vivem em cidades menores. Independentemente das identidades e histórias, todos têm uma característica em comum: a paixão por transformar ideias em negócios que impactam as pessoas em todo o mundo.
Hoje, e ao longo dos próximos meses, o #WeArePlay celebra vocês compartilhando as suas histórias.
Nossos agradecimentos a todas as empresas de apps e jogos por fazerem parte da comunidade do Google Play. Sua dedicação e ambição estão ajudando milhões de pessoas a aprender, se conectar, relaxar, se exercitar, encontrar empregos, ajudar a sociedade, rir, se divertir, conhecer destinos de sonho e muito mais.
Leia mais e fique por dentro para conhecer muitas outras histórias em g.co/play/weareplay
Esta postagem do blog foi útil para você?
★ ★ ★ ★ ★
Postado por Krish Vitaldevara, diretor de confiança e segurança do gerenciamento de produtos do Google Play e do Android
Queremos manter você atualizado sobre as iniciativas de privacidade e segurança que compartilhamos este ano, para que você possa se planejar e usar novas ferramentas para criar seu negócio com segurança. Nos últimos meses, lançamos:
Agradecemos a parceria para tornar o Google Play uma plataforma segura e confiável para todos.