além do script
ProjetosWater Drink

Water Drink: funcionamento detalhado do app de hidratação diária

Detalhes de onboarding, tela inicial, metas por exercício, favoritos, conquistas, notificações, configurações, acompanhamento e widget Android do app Water Drink (Hidratação Diária).

ExpoReact Nativeandroidnotificacoeswidget

por Marcelo Macedo

No post anterior apresentei o Water Drink, projeto Hidratação Diária, um app mobile em React Native + Expo para acompanhar a ingestão de água ao longo do dia. Neste artigo entro em detalhes sobre cada funcionalidade, com base no README do projeto.

Código-fonte completo em: https://github.com/marcelo3macedo/water-drink


Onboarding personalizado

O primeiro contato do usuário com o app é um questionário curto:

  • Perguntas rápidas sobre sexo, faixa etária e peso (peso é opcional);
  • Cálculo automático de uma meta diária de água recomendada, com opção de ajuste manual;
  • Seleção dos recipientes (copos, garrafas, squeezes) favoritos para uso no dia a dia;
  • Opção de pular o questionário e informar a meta manualmente.
Boas-vindas
Boas-vindas
Sexo
Sexo
Faixa etária
Faixa etária
Peso
Peso
Meta recomendada
Meta recomendada
Conclusão do onboarding
Conclusão do onboarding

Tela inicial

  • Indicador circular com o percentual e volume já consumido no dia;
  • Meta diária exibida em destaque;
  • Botões de ação rápida para registrar volumes predefinidos com um toque;
  • Botão + Personalizado para informar qualquer quantidade manualmente;
  • Botão Fiz exercício para aumentar a meta apenas do dia atual, repondo o líquido perdido no treino.
waterdrink-tela-inicial
waterdrink-tela-inicial

Aumentar meta por exercício

Depois de treinar, o usuário pode repor o líquido perdido sem alterar a meta dos outros dias:

  • Valores rápidos recomendados para corrida (leve, moderada, intensa) e academia (leve, moderada, intensa);
  • Campo para informar um valor de reposição personalizado;
  • Ajuste vale somente para o dia atual — a meta volta ao normal no dia seguinte;
  • Indicador na tela inicial mostrando o quanto a meta foi aumentada.
waterdrink-exercicio
waterdrink-exercicio

Favoritos

  • Lista completa de recipientes (copos, garrafas, squeezes, jarras) para marcar como favoritos;
  • Favoritos aparecem como atalhos na tela inicial e no widget;
  • Criação de medidas personalizadas com ícone e volume próprios.
waterdrink-recipientes-favoritos
waterdrink-recipientes-favoritos

Conquistas

  • Sistema de troféus que gamifica o uso do app (registros, metas batidas, sequências por dia da semana, entre outras);
  • Tela dedicada com o progresso de conquistas desbloqueadas;
  • Campo opcional de aniversário para desbloquear a conquista especial "Brinde à Vida".
waterdrink-conquistas
waterdrink-conquistas

Notificações

  • Central de notificações com lembretes de hidratação e conquistas desbloqueadas;
  • Alerta ao meio-dia caso o usuário esteja abaixo de 50% da meta;
  • Alerta à tarde (18h) caso a meta ainda não tenha sido atingida;
  • Botão para testar a notificação imediatamente;
  • Compartilhamento de conquistas desbloqueadas como imagem.
Lembretes
Lembretes
Central de notificações
Central de notificações

Configurações

  • Definição da meta diária de água (opções rápidas: 1500, 2000, 2500 ou 3000 ml);
  • Inserção manual de uma meta personalizada;
  • Gerenciamento dos botões de ação rápida — ideal para quem usa um copo ou garrafa de volume fixo.
waterdrink-configuracoes
waterdrink-configuracoes

Acompanhamento

  • Histórico do dia com cada lançamento e o horário exato em que foi registrado;
  • Indicação visual de quanto ainda falta para completar a meta;
  • Opção de remover lançamentos individuais ou zerar o dia;
  • Registros reiniciados automaticamente a cada novo dia.
waterdrink-acompanhamento
waterdrink-acompanhamento

Widget Android

  • Widget para a tela inicial do celular com o progresso do dia e acesso rápido aos recipientes favoritos;
  • Adição de água diretamente pelo widget, sem precisar abrir o app.
waterdrink-widget
waterdrink-widget

Tecnologias

Como executar

bash
# Instalar dependências
npm install

# Iniciar o servidor de desenvolvimento
npx expo start

Para testar notificações e o widget é necessário usar um Development Build em vez do Expo Go:

bash
# Android
npx expo run:android

# iOS
npx expo run:ios

Código completo disponível em github.com/marcelo3macedo/water-drink.