Estudos de caso
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 da gratidão pode levar a melhorias sustentadas que duram meses². O app de mindfulness Gratitude incentiva a consistência por meio de um diá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. O objetivo deles era atender os usuários nos momentos cotidianos sem exigir uma sessão completa do app.
Ao exibir comandos de diário interativos, afirmações, imagens e métricas do quadro de visão diretamente na tela inicial do usuário, a equipe diminuiu a barreira de entrada para a reflexão diária e relatou um aumento de 25% na retenção de usuários de widgets e cerca de 1 mil 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ções de hábitos consistentes que oferecem suporte ao bem-estar mental de longo prazo.
"Os widgets nos ajudaram a tornar o app mais presente nas rotinas diárias 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 RemoteViews baseada em XML do Gratitude criou uma dívida técnica. À medida que o sistema de design do app evoluiu para o Material 3, os widgets legados ficaram cada vez mais difíceis de alinhar com a interface moderna. Cada atualização visual exigia uma sobrecarga manual de XML e soluções alternativas frágeis, o que diminuía a velocidade do desenvolvedor.
A solução, parte 1: migrar do XML para o Jetpack Glance
Para modernizar os widgets, a equipe recorreu ao Jetpack Glance.
Primeiro, eles consultaram a página de design Widgets no Android e os layouts canônicos de widgets para entender as práticas recomendadas para exibir informações em um espaço limitado.
Em seguida, eles migraram o pacote de widgets para o Jetpack Glance. Essa estrutura declarativa permitiu que os desenvolvedores passassem do planejamento para o envio em menos de um mês, economizando cerca de 50% do tempo de desenvolvimento, e teve mais duas vantagens:
- 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 do desenvolvedor.
- O Jetpack Glance permitiu que a equipe implementasse cores dinâmicas, redimensionamento flexível e opções de configuração expandidas com mais facilidade. Esses recursos garantem que os widgets estejam em harmonia com o layout exclusivo da tela inicial do usuário.
O GIF a seguir mostra dois widgets do Gratitude e o redimensionamento adaptável:
Embora o Glance tenha simplificado a interface, a equipe observou que o teste em vários inicializadores de OEM também era essencial para garantir a consistência do layout em todos os dispositivos.
A equipe também implementou visualizações geradas de widgets para que os usuários possam ver visualizações personalizadas. Eles observaram que o teste de visualizações geradas pode ser lento, já que as visualizações são limitadas 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 os esforços tornaram o widget do Gratitude de alta qualidade e diferenciado.
A solução, parte 2: promover novos widgets no app
Em seguida, os desenvolvedores usaram a fixação de widgets no app para aumentar a capacidade de descoberta e as instalações de widgets. Pedir aos usuários que instalem widgets em um momento contextualmente relevante no app ajuda os usuários 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 os widgets fossem excluídos das telas iniciais dos usuários. Usando flags de usuário armazenadas anteriormente para identificar usuários de widgets, eles acionaram outro comando requestPinGlanceAppWidget convidando os usuários de widgets a usar os novos widgets modernizados.
Dica para desenvolvedores:para manter as instalações de widgets ao migrar do RemoteViews para o Jetpack Glance, verifique se o GlanceAppWidgetReceiver usa o mesmo nome de classe e pacote que o AppWidgetProvider anterior no manifesto do Android. Se um novo nome de classe ou local do pacote for necessário, siga a liderança do Gratitude usando 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
Essa história do Gratitude mostra que os widgets podem ser ferramentas para a formação de hábitos. Ao implementar ações rápidas para autorreflexão diretamente na tela inicial, a equipe melhorou a fidelidade do usuário. O Gratitude reduziu a dívida técnica e modernizou os widgets adotando o Jetpack Glance, além de pedir aos usuários que adicionassem widgets no app.
"Nossa experiência com o Jetpack Glance foi excelente. A abordagem baseada no Compose é muito mais moderna, flexível e alinhada à maneira como criamos o restante da nossa interface hoje. Ela nos permite expressar layouts de widgets de forma mais natural, reutilizar componentes familiares do Compose e iterar nas mudanças de interface muito mais rápido. Muitas das restrições de interface que enfrentamos anteriormente 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 aprender sobre as tecnologias mencionadas neste post, consulte estes guias:
- Visão geral do Jetpack Glance
- Página de design_Widgets no Android_
- Layouts canônicos de widgets
- Visualizações geradas de widgets
- Níveis de qualidade de widgets
- 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 curtidas" 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). Gratitude as mood mediates the effects of a 6-weeks gratitude intervention on mental well-being: post hoc analysis of a randomized controlled trial. Front. Psychol., 12, 799447. https://doi.org/10.3389/fpsyg.2021.799447
Continuar lendo
-
Estudos de caso
A Ultrahuman é uma startup de tecnologia de saúde para o consumidor que oferece insights diários de bem-estar aos usuários com base em dados biométricos de wearables da empresa, como o RING Air e o monitor contínuo de glicose (CGM, na sigla em inglês) M1 Live.
Amrit Sanjeev, Trevor Johns • Leitura de 2 minutos
-
Estudos de caso
A Karrot é um app de marketplace hiperlocal e de comunidade que permite que os usuários comprem, vendam e troquem itens com outros usuários verificados. Desde o lançamento na Coreia do Sul em 2015, a plataforma se expandiu para mercados globais, acumulando mais de 43 milhões de usuários registrados.
Thomas Ezan, Tracy Agyemang • Leitura de 2 minutos
-
Estudos de caso
O Monzo é um banco digital do Reino Unido com 15 milhões de clientes e em crescimento. À medida que o app era escalonado, a equipe de engenharia identificou o tempo de inicialização do app como uma área crítica para melhoria, mas se preocupou com o fato de que isso exigiria mudanças significativas no código-fonte.
Ben Weiss, Tracy Agyemang • Leitura de 2 minutos
Fique por dentro
Receba os insights mais recentes sobre o desenvolvimento do Android na sua caixa de entrada semanalmente.