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

2.2 KiB

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.