# 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é.