O app Gratitude teve uma retenção 25% maior para usuários de widgets
Leitura de 3 minutos
Praticar a gratidão pode diminuir os sintomas de depressão e ansiedade, além de melhorar a saúde mental e a satisfação com a vida¹. A prática consistente pode levar a melhorias duradouras por meses². O app de mindfulness Gratitude incentiva a consistência com um microdiário diário, afirmações e quadros de visão. O app tem mais de 6 milhões de downloads, 150 mil classificações de 5 estrelas e 100 milhões de entradas de diário registradas.
Os desenvolvedores Divij Gupta e Narendra Aanjna desenvolveram widgets para cada uma das principais jornadas do usuário do app. A meta era encontrar os usuários no dia a dia sem exigir o trabalho de uma sessão completa do app.
Ao mostrar sugestões de diário interativo, afirmações, imagens de painel de visão e métricas diretamente na tela inicial do usuário, a equipe diminuiu a dificuldade de fazer reflexões diárias e registrou um aumento de 25% na retenção para usuários de widgets e cerca de 1.000 entradas de diário semanais de widgets. Esse aumento na fidelidade do usuário se traduz em resultados de saúde tangíveis para os usuários: formação consistente de hábitos que apoiam o bem-estar mental a longo prazo.
"Os widgets ajudaram a tornar o app mais presente na rotina diária dos usuários, oferecendo inspiração rápida, lembretes e reflexões diretamente na tela inicial. Isso aumentou o engajamento e facilitou a consistência dos usuários com as práticas de mindfulness". – Divij Gupta
O desafio: modernizar sem diminuir a retenção
Embora o impacto dos widgets fosse claro, a implementação original do Gratitude com base em XML RemoteViews criou uma dívida técnica. À medida que o sistema de design do app evoluiu para o Material 3, ficou cada vez mais difícil alinhar os widgets legados à interface moderna. Cada atualização visual exigia sobrecarga manual de XML e soluções alternativas frágeis, o que diminuía a velocidade dos desenvolvedores.
A solução Parte 1: migração do XML para o Jetpack Glance
Para modernizar os widgets, a equipe usou o Jetpack Glance.
Primeiro, eles consultaram a página de design Widgets no Android e os layouts de widgets canônicos para entender as práticas recomendadas de exibição de informações em um espaço limitado.
Em seguida, eles migraram o conjunto de widgets para o Jetpack Glance. Esse framework declarativo permitiu que os desenvolvedores passassem do planejamento para o envio em menos de um mês, economizando cerca de 50% do tempo de desenvolvimento, além de ter duas vantagens adicionais:
- A substituição de layouts XML restritivos por código declarativo facilitou a leitura e a manutenção da base de código, além de reduzir o esforço dos desenvolvedores.
- O Jetpack Glance permitiu que a equipe implementasse com mais facilidade cores dinâmicas, redimensionamento flexível e opções de configuração expandidas. Esses recursos garantem que os widgets estejam em harmonia com o layout exclusivo da tela inicial de um usuário.
O GIF a seguir mostra dois widgets de gratidão e o redimensionamento adaptável:
Embora o Glance tenha simplificado a interface, a equipe observou que o teste em vários iniciadores de OEM também era essencial para garantir a consistência do layout em todos os dispositivos.
A equipe também implementou as Pré-visualizações de widgets geradas para que os usuários possam ver pré-visualizações personalizadas. Eles observaram que testar as prévias geradas pode ser lento, já que elas têm uma taxa limitada para preservar a bateria. Para ignorar a limitação de taxa para testes, use o comando adb:
adb shell device_config put systemui generated_preview_api_reset_interval_ms 0
Todos esses esforços tornaram o widget Gratidão de alta qualidade e diferenciado.
A solução, parte 2: promova novos widgets no app
Em seguida, os desenvolvedores usaram o fixação de widgets no app para aumentar a descoberta e as instalações de widgets. Pedir que os usuários instalem widgets em um momento contextualmente relevante no app ajuda a encontrar os widgets sem precisar acessar o seletor de widgets do sistema. O GIF a seguir mostra a página inferior do Gratitude para adicionar widgets no app:
A equipe também refatorou pacotes de widgets, o que mudou os caminhos do receptor de widgets e fez com que eles fossem excluídos das telas iniciais dos usuários. Usando flags de usuário armazenadas anteriormente para identificar os usuários do widget, eles acionaram outra solicitação do requestPinGlanceAppWidget convidando os usuários do widget a usar os novos widgets modernizados.
Dica para desenvolvedores:para manter as instalações de widgets ao migrar de RemoteViews para o Jetpack Glance, verifique se o GlanceAppWidgetReceiver usa o mesmo nome de classe e pacote do AppWidgetProvider anterior no manifesto do Android. Se for necessário um novo nome de classe ou local do pacote, siga o exemplo do Gratitude e use a fixação no app para ajudar os usuários a restaurar os widgets.
A estratégia está funcionando, já que 10% do total de DAU adotaram widgets.
Conclusão
Esta história de gratidão mostra que os widgets podem ser ferramentas para a formação de hábitos. Ao implementar ações rápidas para refletir sobre o dia direto na tela inicial, a equipe melhorou a fidelidade dos usuários. A Gratitude reduziu a dívida técnica e modernizou os widgets ao adotar o Jetpack Glance, além de pedir aos usuários para adicionar widgets no app.
"Nossa experiência com o Jetpack Glance tem sido excelente. A abordagem baseada no Compose parece muito mais moderna, flexível e alinhada à maneira como criamos o restante da nossa interface hoje. Ele permite expressar layouts de widgets de maneira mais natural, reutilizar componentes conhecidos do Compose e iterar nas mudanças da interface muito mais rápido. Muitas das restrições de interface que enfrentávamos com o RemoteViews não são mais um problema, o que facilitou a criação de widgets que combinam melhor com o design e a experiência do nosso app". – Divij Gupta
Primeiros passos
Para começar a usar o Jetpack Glance e saber mais sobre as tecnologias mencionadas nesta postagem, consulte estes guias:
- Visão geral do Jetpack Glance
- Página de design Widgets no Android
- Layouts canônicos de widgets
- Visualizações de widgets gerados
- Níveis de qualidade do widget
- Fixação de widgets no app
- Cores dinâmicas
- Redimensionamento
- Atividades de configuração
Confira outros estudos de caso de widgets:
- O app Contatos do Google criou um novo widget 25% mais rápido usando o Jetpack Glance
- O SoundCloud usa o Jetpack Glance para criar o widget "Músicas marcadas como favoritas" em apenas duas semanas
1: Diniz, G., Korkes, L., Tristão, L. S., Pelegrini, R., Bellodi, P. L., & Bernardo, W. M. (2023). The effects of gratitude interventions: a systematic review and meta-analysis. einstein (Sao Paulo)., 21, eRW0371. https://doi.org/10.31744/einstein_journal/2023RW0371
2: Bohlmeijer, E., Kraiss, J., Schotanus-Dijkstra, M., & ten Klooster, P. (2022). Gratidão como mediadora de humor dos efeitos de uma intervenção de gratidão de seis semanas no bem-estar mental: análise post hoc de um estudo randomizado controlado. Frente. Psychol., 12, 799447. https://doi.org/10.3389/fpsyg.2021.799447
-
Estudos de casoA Ultrahuman é uma startup de tecnologia de saúde para consumidores que oferece insights diários de bem-estar aos usuários com base em dados biométricos dos wearables da empresa, como o RING Air e o monitor contínuo de glicose (MCG) M1 Live.
Amrit Sanjeev, Trevor Johns • Leitura de 2 minutos -
Estudos de casoAs regressões de desempenho são notoriamente difíceis de reproduzir, o que as torna um grande gargalo para desenvolvedores de dispositivos móveis.
Alice Yuan, Arti Arutiunov, Nikita Ogorodnikov • Leitura de 4 minutos -
Estudos de casoRecentemente, o FotMob teve o maior aumento em um único dia no Wear OS entre o público instalado em cinco anos, com 2 a 3 vezes a média diária. O segredo? Um fluxo de instalação simples entre dispositivos que ajuda os usuários a descobrir o app para Wear OS diretamente no smartphone.
Garan Jenkin • Leitura de 3 minutos
Receba os insights mais recentes sobre desenvolvimento Android na sua caixa de entrada semanalmente.