Couche présentation - ApplETS/Notre-Dame GitHub Wiki
La couche UI gère tout ce qui est lié à l'affichage et l'interaction utilisateur.
UI Layer
├── Views # Écrans/Pages
├── ViewModels # Logique d'affichage et gestion d'état
├── Widgets # Composants réutilisables
├── Navigation # Routing et navigation
└── Core
├── Themes # Thèmes et styles
└── Shared # Widgets partagés
✅ Afficher les données à l'utilisateur
✅ Capturer les interactions (clics, saisies)
✅ Appeler les ViewModels
✅ Observer les changements d'état
✅ Utiliser les thèmes et styles
✅ Gérer la navigation
ui/my_feature/
├── widgets/
│ ├── my_view.dart # Vue principale
│ └── my_widget.dart # Sous-composants
├── view_model/
│ └── my_viewmodel.dart
└── models/ # Models locaux (optionnel)
└── my_local_model.dart
ui/schedule/
├── schedule_controller.dart
├── widgets/
│ ├── schedule_view.dart
│ ├── tiles/
│ │ ├── calendar_event_tile.dart
│ │ └── listview_event_tile.dart
│ ├── calendars/
│ │ ├── day_calendar.dart
│ │ ├── week_calendar.dart
│ │ └── month_calendar.dart
│ └── schedule_settings.dart
└── view_model/
└── schedule_viewmodel.dart
Les Views sont les écrans de l'application.
Les Widgets sont des composants réutilisables qui composent des views.
Les ViewModels gèrent la logique d'affichage et l'état local.
- Hérité de ChangeNotifier pour la réactivité avec Provider
-
État privé (
_variable) avec getters publics - Appelle les Repositories pour accéder aux données
- Gère la logique d'affichage (filtrage, tri, etc.)
- Appelle notifyListeners() après chaque changement d'état
- Hériter de
StatelessWidgetouStatefulWidget - Utilise
Consumer<ViewModel>pour réactivité - Gère les états (loading, error, data)
- Thème appliqué (
AppTheme) - Responsive design
- Interactions utilisateur bien gérées
- Tests unitaires
- Documentation
Cette page a été en partie générée avec l'aide de Claude Haiku 4.5