Application mobile de suivi d'entraînement musculaire. Remplace le carnet papier : bibliothèque d'exercices, construction de séances par blocs libres, édition et réordonnancement des séries en live.
- React Native + Expo SDK 54
- Navigation : Expo Router (file-based)
- Stockage : SQLite via
expo-sqlite— 100 % local, zéro backend - Langage : TypeScript strict
- Tests : Jest + jest-expo
- Node.js ≥ 18
- Expo CLI :
npm install -g expo-cli - Pour iOS : Xcode + Simulateur iOS ou application Expo Go sur un vrai appareil
- Pour Android : Android Studio + émulateur ou application Expo Go sur un vrai appareil
cd app
npm install
npm start # ouvre le menu Expo — choisir iOS / Android / WebRaccourcis après npm start :
| Touche | Action |
|---|---|
i |
Ouvrir sur simulateur iOS |
a |
Ouvrir sur émulateur Android |
w |
Ouvrir dans le navigateur |
cd app
npm test # une passe
npm run test:watch # mode watchcd app
npx tsc --noEmitapp/
├── app/ ← routes Expo Router (un fichier = un écran)
│ ├── (tabs)/ ← onglets principaux
│ └── workout/ ← écran détail séance
├── components/ ← composants UI réutilisables
├── constants/ ← couleurs et thème
├── db/ ← schéma SQLite + migrations + types
├── hooks/ ← hooks React (useWorkoutExercises, …)
├── repositories/ ← accès données (interfaces + InMemory + SQLite)
└── services/ ← logique métier (WorkoutExerciseService, …)
- Bibliothèque d'exercices (prédéfinis + custom)
- Construction de séances : exercices → blocs → séries
- Édition inline : modifier / ajouter / supprimer blocs et séries
- Réordonnancement ↑↓ : exercices, blocs et séries
- Conduite de séance : chrono de pause, saisie reps/poids, check-in énergie/fatigue/sommeil
- Progression automatique des poids (Epley)
- Historique des séances avec détail par exercice
- Dashboard stats : volume hebdomadaire ISO, PRs récents, 1RM estimé par exercice
- Specs fonctionnelles :
docs/specs.md - Architecture technique :
docs/architecture.md - Journal de développement :
docs/journal/project-log.md