42 lines
2.2 KiB
Markdown
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.
|