
Gympsi: esqueça as fichas manuais
Gympsi é um app iOS que substitui a ficha de papel e os treinos que ninguém registra, dando ao usuário uma visão clara da própria evolução na academia. A premissa: quem vê o próprio progresso, volta a treinar.
O problema real não é registrar o treino — é a fricção de registrar no meio dele. Anotar série, carga e repetição com pressa, celular na mão, entre um descanso e outro, é onde a maioria dos apps de musculação perde o usuário. O Gympsi foi construído em cima desse momento.

Responsabilidades
- Desenvolvi o app em SwiftUI com persistência local em SwiftData (arquitetura local-first, sem backend de usuário)
- Modelei o domínio de treino: programas, exercícios, séries, sessões, histórico, progressão e detecção automática de recordes (PRs)
- Defini o design system (dark mode, tokens de cor e tipografia) e os fluxos de registro
- Implementei monetização com StoreKit 2 (Pro mensal/anual, trial de 7 dias) e integração com HealthKit
- Cuidei da compliance e submissão na App Store (privacidade, HealthKit, paywall)
- Mapeei as incertezas do produto com uma matriz CSD para priorizar o maior risco antes de codar
Processo
O gancho é simples: o problema não é registrar treino, é a fricção de registrar. A decisão central foi um fluxo de treino ativo guiado por exercício, cronômetro de trabalho, timer de descanso automático, controle de séries e ajuste de carga em tempo real — para que registrar não tire a pessoa do treino. Somei a isso o registro manual de treinos passados, para que um dia esquecido não quebre o histórico (nem o hábito).
Antes de construir, mapeei o que era certeza, suposição e dúvida (CSD). Isso mudou minha prioridade: o maior risco de retenção não era falta de feature, era o usuário sentir que "o app apagou meu progresso" no modelo local-first.

Desafios
- Reduzir a fricção de registrar séries e cargas durante o treino, sem tirar o foco da execução
- Modelar dados de treino (programas, exercícios, histórico, progressão, PRs) de forma escalável com SwiftData
- Transformar histórico em progresso visível: detecção automática de PRs, streak mensal e insights semanais
- O trade-off do local-first: mais privacidade e simplicidade, mas risco de perda de dados na troca de aparelho — resolvido com backup/restore em JSON
Impacto
- App publicado na App Store
- Aprendizado: a matriz CSD deixou claro que o maior risco de retenção era a percepção de perda de dados, não a ausência de feature, o que redirecionou minha prioridade de desenvolvimento
- O que faria diferente: garantir um backup básico já na versão gratuita, para blindar o app contra a pior avaliação possível (perda de progresso)