16fd4c8c36
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>
1.7 KiB
1.7 KiB
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), arborescencelib/core+lib/features/*,main.dartminimal, dépendances de base aupubspec.yaml. - Exclus : toute logique métier.
Dépendances
Aucune (première étape).
Conception
- Cibler Android uniquement (
--platforms=android). - Arborescence (cf. CLAUDE.md §4) :
Chaque feature reçoit les sous-dossiers
lib/core/{error,theme,router,di} lib/features/{locking,playback,podcasts,parental,limits}domain/ application/ data/ presentation/(placeholders avec un.gitkeepou un fichier barrel vide). pubspec.yaml: ajouterflutter_riverpod. Les autres paquets (just_audio,kiosk_mode, …) seront ajoutés au jalon qui les utilise (YAGNI).main.dart:ProviderScope+MaterialAppavec un écran d'accueil placeholder.
Plan TDD
La création de squelette est surtout structurelle ; le test porte sur le démarrage :
- 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. - Green : créer
StorytimeApp+ écran placeholder. - Refactor : extraire le thème/router si nécessaire (sera étoffé en 0.3).
Definition of Done
flutter rundémarre l'app.app_boots_test.dartvert.- 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é.