109 lines
2.7 KiB
Markdown
109 lines
2.7 KiB
Markdown
# FightRate React Native Bare Rebuild — Mini-spec
|
|
|
|
Data: 2026-06-10
|
|
Status: implementação autorizada
|
|
Stack: **React Native Community CLI, sem Expo**
|
|
|
|
## Objetivo
|
|
|
|
Criar a nova base do FightRate em React Native bare, sem Expo, usando a direção visual oficial **Corner Instrument**.
|
|
|
|
A implementação inicial deve provar:
|
|
|
|
- identidade visual escolhida;
|
|
- fluxo principal de captura contínua;
|
|
- estrutura de código React Native escalável;
|
|
- telas base para Captura, Histórico, Sensor e Insights;
|
|
- dados mockados apenas como estado de protótipo local, não como gráfico ou amostra real persistida.
|
|
|
|
## Fora de escopo nesta primeira fatia
|
|
|
|
- BLE real Magene H003.
|
|
- SQLite real.
|
|
- Build de APK final assinado.
|
|
- Migração de todos os recursos do Android legado.
|
|
- Expo ou qualquer dependência Expo.
|
|
|
|
## Decisões
|
|
|
|
- Criar novo app em `FightRateRN/` para não destruir o Android legado antes da base RN compilar.
|
|
- Usar React Native Community CLI.
|
|
- Usar TypeScript.
|
|
- Começar com UI e estado local; BLE/persistência entram em fatias posteriores.
|
|
- Fonte visual obrigatória: `FIGHTRATE_DESIGN_SYSTEM.md`.
|
|
|
|
## Estrutura desejada
|
|
|
|
```text
|
|
FightRateRN/
|
|
src/
|
|
app/
|
|
FightRateApp.tsx
|
|
components/
|
|
ActionButton.tsx
|
|
MetricTile.tsx
|
|
SectionPanel.tsx
|
|
StatusTag.tsx
|
|
TrainingChart.tsx
|
|
screens/
|
|
CaptureScreen.tsx
|
|
HistoryScreen.tsx
|
|
SensorScreen.tsx
|
|
InsightsScreen.tsx
|
|
theme/
|
|
colors.ts
|
|
radius.ts
|
|
spacing.ts
|
|
typography.ts
|
|
index.ts
|
|
data/
|
|
demoTraining.ts
|
|
```
|
|
|
|
## Critérios de aceite
|
|
|
|
1. Projeto React Native bare criado sem Expo.
|
|
2. `package.json` não contém dependências Expo.
|
|
3. App inicial mostra a direção Corner Instrument.
|
|
4. Captura contínua é o fluxo principal.
|
|
5. Round manual não domina a interface.
|
|
6. Design tokens estão centralizados em `src/theme`.
|
|
7. Componentes principais reutilizáveis existem.
|
|
8. Telas visíveis:
|
|
- Captura;
|
|
- Histórico;
|
|
- Sensor;
|
|
- Insights.
|
|
9. Verificação mínima:
|
|
|
|
```bash
|
|
cd FightRateRN
|
|
npm install
|
|
npm run typecheck
|
|
npm run lint
|
|
npm test -- --runInBand
|
|
```
|
|
|
|
Build Android debug validado neste ambiente:
|
|
|
|
```bash
|
|
cd FightRateRN/android
|
|
./gradlew assembleDebug
|
|
```
|
|
|
|
Observação local: o PATH atual tem JRE, mas não `javac`. Para o build Gradle RN,
|
|
use o JBR do Android Studio como `JAVA_HOME`:
|
|
|
|
```bash
|
|
export JAVA_HOME="/c/Users/Evandro/AppData/Local/Programs/Android Studio/jbr"
|
|
export PATH="$JAVA_HOME/bin:$PATH"
|
|
cd FightRateRN/android
|
|
./gradlew assembleDebug
|
|
```
|
|
|
|
## Riscos
|
|
|
|
- React Native CLI pode mudar template conforme versão atual.
|
|
- Ambiente local pode não ter Android SDK/NDK adequado para build RN.
|
|
- BLE real exigirá dependência nativa futura e teste físico.
|