Todos os projetos

App Android · em andamento

Megin

Um app de treinos e hábitos para uma pessoa: eu. Ele registra treinos, água e os hábitos do dia, e lê as sessões anteriores para sugerir a carga da próxima.

Megin é força em nórdico antigo; o símbolo é ᚢ, Uruz, a runa do auroque.

React Native · Expo · TypeScript · Supabase · PostgreSQL

O que ele faz

Hoje
O dia de uma vez: o treino em andamento, a água contra uma meta calculada pelo peso e os hábitos que faltam.
Treino
Séries registradas com dois contadores, kg e repetições, e o esforço ao lado de cada uma, em repetições na reserva (RIR). Todo exercício tem o GIF de demonstração a um toque.
Hábitos
Hábitos diários com meta opcional, como 20 páginas ou 10 minutos, a sequência atual e uma grade da semana.
Relatório
Peso ao longo do tempo, volume por semana e o próximo treino, com a carga sugerida para cada exercício.

Telas

  • Sign-in screen with the Megin wordmark, the Uruz rune and a faint aurochs drawing behind email and password fields.
    Login
  • Today screen: a workout in progress banner, a water ring at 1.4 of 2.8 litres with +200, +250 and +500 ml buttons, three habits with streaks, and the day's sets and volume.
    Hoje
  • Workout screen at 34 minutes: bench press with two logged sets, kg and reps steppers and a Log set button, and a rowing exercise with its demonstration GIF area.
    Treino em andamento
  • Exercise picker sheet: a search across 1,324 exercises, muscle group filters and a list with favourites starred.
    Seletor de exercícios
  • Habits screen: a 41-day longest streak, today's habits with goals in minutes and pages, and a week grid of orange squares for each habit.
    Hábitos
  • Report screen: body weight at 78.4 kg on a falling line chart, the next workout with suggested loads, and weekly volume bars.
    Relatório

A sugestão de carga

Para cada exercício de força, o app olha as duas últimas sessões. Se todas as séries chegaram ao topo da faixa de repetições, ele sugere somar o incremento do exercício. Se as repetições ficaram mais de três abaixo do alvo, sugere revisar a execução antes de subir o peso. Fora isso, mantém a carga. É uma view SQL, então a regra é a mesma em toda tela que a mostra.

Decisões

  • O catálogo de 1.324 exercícios vai dentro do app (0,4 MB), não no banco. São dados públicos, iguais para todo mundo, então buscar neles não deveria precisar de rede.
  • Tela não fala com o Supabase. Toda query mora num hook por domínio, então trocar um gráfico ou exportar dados mexe num lugar só.
  • Cadastro e recuperação de senha usam código de 6 dígitos em vez de link. O link precisa achar o caminho de volta ao app, e falha calado quando o e-mail é aberto no computador.
  • Segurança por linha (RLS) em todas as tabelas e exclusão de conta de dentro do app, como pedem a Google Play e a lei de proteção de dados (LGPD).