Files
HealthTracking/docs/superpowers/specs/2026-06-10-fightrate-continuous-capture-chart-sensor-redesign.md

42 lines
2.2 KiB
Markdown

# FightRate — Correção de produto: captura contínua, gráfico e sensor
## Contexto
Feedback do usuário: o app serve para monitorar batimento cardíaco enquanto o atleta treina. Durante luta/treino, o usuário não vai pegar o celular para iniciar/parar rounds manualmente.
## Objetivos
1. Tornar captura contínua de treino inteiro o fluxo principal.
2. Manter modo round como secundário/opcional, sem dominar a tela principal.
3. Corrigir gráfico para abrir com a janela selecionada completa, sem zoom inicial estranho.
4. Tornar eixo temporal adaptativo e menos poluído.
5. Melhorar tela de sensor para exibir dados/serviços disponíveis do dispositivo.
6. Melhorar insights com informação densa, útil e explicável sem textão.
## Regras de produto
- Fluxo principal: iniciar monitoramento antes do treino, largar celular, parar ao final, analisar sessão inteira.
- Round é alternativa opcional. Preferir segmentação automática pré-configurada em vez de controles manuais durante treino.
- Histórico precisa ser rico e organizado: sessões, janela, zonas, carga, recuperação, pico, média, densidade de amostras.
- Gráfico deve priorizar legibilidade e fidelidade temporal.
## Critérios de aceitação desta fatia
- Tela Live comunica “captura contínua” como ação principal.
- Botões de sessão usam linguagem de treino inteiro: iniciar/parar captura/treino.
- Round continua disponível/visível como informação secundária, mas não como conceito central.
- Gráfico inicia mostrando a janela de dados selecionada, sem pre-zoom e com `initialZoom = null` quando possível.
- Labels do eixo X usam granularidade por duração:
- até 10 min: HH:mm
- até 1 h: HH:mm
- até 24 h: HH'h'
- zoom/duração muito curta: HH:mm:ss apenas quando necessário.
- Tela Sensor exibe painel de capacidades do sensor: BPM, local do sensor, bateria, metadados, RSSI e serviços BLE conhecidos/disponíveis.
- Build final passa com `./gradlew :app:testDebugUnitTest :app:assembleDebug`.
## Fora desta fatia
- Implementar segmentação automática completa por round.
- Persistir todos os valores de serviços BLE desconhecidos.
- Reescrever toda a arquitetura visual do app.