vgv-layered-architecture
Layered Architecture
Layered monorepo architecture for Flutter apps — four layers organized as independent Dart packages with strict unidirectional dependencies.
Core Standards
Apply these standards to ALL layered architecture work:
- Four layers — Data, Repository, Business Logic, Presentation — every feature spans exactly these four layers
- Unidirectional dependencies — Presentation → Business Logic → Repository → Data — never skip or invert a layer
- Data and Repository layers live in
packages/— each is an independent Dart package with its ownpubspec.yaml - Business Logic and Presentation live in
lib/— organized by feature within the app - Data layer packages contain zero domain/business logic — they must be reusable in unrelated projects
- No inter-repository dependencies — repositories never import other repositories
- No Flutter SDK in data or repository packages — scaffold with the
very_good_cliMCP servercreate dart_packagetool - One repository per domain —
user_repository,weather_repository,auth_repository - Path dependencies for local packages — never
git:or pub version references for packages in the same repo
More from verygoodopensource/very_good_ai_flutter_plugin
vgv-static-security
>
26vgv-navigation
Best practices for navigation and routing in Flutter using GoRouter.
7vgv-accessibility
Flutter accessibility auditing and remediation with WCAG 2.1 level selection (A, AA, AAA) across mobile, desktop, and web platforms. Begins by asking the WCAG conformance level and target platform(s) before applying level-appropriate, platform-aware criteria.
7vgv-material-theming
Best practices for Flutter theming using Material 3.
7vgv-internationalization
Best practices for internationalization (i18n) and localization (l10n) in Flutter.
7vgv-bloc
Best practices for Bloc state management in Flutter/Dart. Use when writing, modifying, or reviewing code that uses package:bloc, package:flutter_bloc, or package:bloc_test.
5