Clean architecture

Feature-first

features/notes holds every layer. The shell router and the composition root stay in app/.

clean-architectureflutter

The chooser lists this track last. features/notes/ holds the domain, the application, the data, and the presentation. A small shared/ kernel holds ValidationFailure, because a blank-title failure is not private to one screen forever.

app/providers.dart is still the only wiring site. The router lives in app/router/ so the shell is not trapped inside the notes feature.

text
lib/features/notes/domain/
lib/features/notes/application/
lib/features/notes/data/
lib/features/notes/presentation/   page, notifier, and tile
lib/shared/validation_failure.dart
lib/app/providers.dart             composition root
lib/app/router/                    Beamer
lib/bootstrap/talaria_monitoring.dart

The app is examples/flutter/feature_first (notes_flutter_feature_first).

In this track