docs: cadrage initial Storytime (specs par jalon, roadmap, CLAUDE.md)
Lecteur d'histoires cadenassé pour le coucher (Android/Flutter). - CLAUDE.md : principes craftsmanship/TDD/clean code/clean archi + decisions techniques - ROADMAP.md : suivi haut niveau des 7 jalons, a tenir a jour par etape - docs/specs/ : specs completes decoupees par jalon, etapes en sous-fichiers - .gitignore Flutter (pubspec.lock versionne, projet applicatif) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# 0.1 — Structure du projet & arborescence
|
||||
|
||||
## Objectif
|
||||
Créer le projet Flutter Android et l'arborescence clean architecture cible.
|
||||
|
||||
## Périmètre & hors-périmètre
|
||||
- Inclus : `flutter create` (Android only), arborescence `lib/core` + `lib/features/*`, `main.dart` minimal, dépendances de base au `pubspec.yaml`.
|
||||
- Exclus : toute logique métier.
|
||||
|
||||
## Dépendances
|
||||
Aucune (première étape).
|
||||
|
||||
## Conception
|
||||
- Cibler Android uniquement (`--platforms=android`).
|
||||
- Arborescence (cf. CLAUDE.md §4) :
|
||||
```
|
||||
lib/core/{error,theme,router,di}
|
||||
lib/features/{locking,playback,podcasts,parental,limits}
|
||||
```
|
||||
Chaque feature reçoit les sous-dossiers `domain/ application/ data/ presentation/` (placeholders avec un `.gitkeep` ou un fichier barrel vide).
|
||||
- `pubspec.yaml` : ajouter `flutter_riverpod`. Les autres paquets (`just_audio`, `kiosk_mode`, …) seront ajoutés **au jalon qui les utilise** (YAGNI).
|
||||
- `main.dart` : `ProviderScope` + `MaterialApp` avec un écran d'accueil placeholder.
|
||||
|
||||
## Plan TDD
|
||||
La création de squelette est surtout structurelle ; le test porte sur le démarrage :
|
||||
1. **Red** : test de widget `app_boots_test.dart` — `pumpWidget(StorytimeApp())` attend de trouver le placeholder (texte « Storytime »). Échoue tant que l'app n'existe pas.
|
||||
2. **Green** : créer `StorytimeApp` + écran placeholder.
|
||||
3. **Refactor** : extraire le thème/router si nécessaire (sera étoffé en 0.3).
|
||||
|
||||
## Definition of Done
|
||||
- `flutter run` démarre l'app.
|
||||
- `app_boots_test.dart` vert.
|
||||
- Arborescence conforme.
|
||||
- Étape 0.1 cochée dans `ROADMAP.md`.
|
||||
|
||||
## Risques / notes
|
||||
- Vérifier la version Flutter/Dart utilisée et la consigner (ex. dans le README projet) pour reproductibilité.
|
||||
Reference in New Issue
Block a user