Estudo de caso: Weightics - Uma balança que mostra a tendência, não o ruído
Um app iOS cujo motor estatístico de doze algoritmos (suavização EWMA, filtro de Hampel, inclinação de Theil-Sen) separa mudança real do corpo da flutuação do dia a dia, inteiramente no aparelho, com composição corporal, um modo Medicação para GLP-1 e widgets em volta.
- Projeto
- Weightics
- Ano
- Serviço
- Desenvolvimento iOS, Ciência de Dados & ML
Weightics
Visão geral
A tendência por baixo do número
Suba na balança em duas manhãs seguidas e ela vai contar duas histórias diferentes, ambas erradas. O Weightics é um app de iOS construído sobre uma premissa: o número de hoje é quase todo ruído, e o dado útil é a tendência por baixo dele. Um motor de doze algoritmos separa os dois, inteiramente no aparelho.
A versão 1.7 parte dessa tendência. A composição corporal chega do Apple Saúde, o modo Medicação registra as doses de GLP-1 e os locais de aplicação, relatórios semanais, mensais e anuais resumem a mudança, e widgets levam a tendência para a Tela de Início, a Tela Bloqueada e o modo Em Espera.
- Suavização EWMA
- Filtro de Hampel
- Inclinação de Theil-Sen
- Modo Medicação
- Widgets na Tela de Início e na Bloqueada
- Só no aparelho
O motor
Do registro cru à tendência real
Limpar o sinal
A winsorização de Hampel e as checagens 3σ/MAD pegam os registros que são erro de medição, e não mudança do corpo: balança no carpete, uma refeição pesada, uma pesagem na hora errada.
Suavizar a tendência
EWMA com meia-vida adaptativa, mais uma inclinação mediana de Theil-Sen que sobrevive aos outliers que um ajuste de mínimos quadrados iria perseguir.
Tirar a semana
O efeito do fim de semana é real e previsível. Detectar a sazonalidade semanal e subtraí-la impede que segunda-feira seja lida como fracasso.
Conquistar confiança
Uma progressão de DataPhase mede o quanto a tendência já pode ser levada a sério, então o painel diz “Construindo a sua tendência, 31%” em vez de fingir certeza a partir de quatro registros.
Projetar adiante
As projeções de sete dias vêm com faixa de confiança, então a previsão mostra a própria incerteza em vez de uma única linha confiante.
Produto
O app, tela por tela
Capturas da versão atual rodando no simulador do iOS 27, com um histórico de exemplo de 110 dias e o modo Medicação ligado. A gravação registra uma pesagem no disco e volta para o painel com a tendência já atualizada.
O painel responde uma pergunta, o Tratamento guarda o registro das doses, e a Análise é onde a estatística aparece para quem quiser.
Pesagem · do disco à tendência

Painel

Tratamento · modo Medicação

Análise · previsão

Corpo · composição

Boas-vindas

Relatórios · semanal

Pesagem · disco
Assinatura
Um paywall desenhado com a sua própria tendência
Paywall · a sua tendência
Quem instalou antes continua no plano gratuito
A trava lê a versão original do app na App Store. Quem instalou antes da assinatura fica no plano gratuito para sempre, e qualquer dúvida, sem internet ou com um recibo ilegível, abre o app em vez de travar.
Os preços vêm da oferta
Os planos e os preços são lidos da oferta atual no RevenueCat, então dá para testar preço sem lançar versão, e uma chave remota desliga a trava.
Travado não quer dizer perdido
Mesmo travado, o app exporta todas as pesagens em CSV, e nada é apagado.
Stack e prova
A matemática nunca sai do celular
Algoritmos no conjunto, entre eles EWMA e Theil-Sen
Horizonte de previsão, entregue com a sua faixa de confiança
De uma semana ao histórico inteiro, com pinça para dar zoom entre eles
Bytes de dado de peso saindo do celular
Tecnologias
- Swift
- SwiftUI
- SwiftData
- Swift Charts
- HealthKit
- WidgetKit
- App Groups
- TipKit
- Background Tasks
- RevenueCat
- Swift Testing
O Swift Charts desenha a tendência contra o peso real; o SwiftData guarda cada registro no iPhone, sem sincronizar com o iCloud; o HealthKit lê e escreve massa corporal em segundo plano para quem assina. A assinatura passa pelo RevenueCat: quem instala agora começa com 14 dias grátis, e quem instalou antes continua no plano gratuito.
