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/vgv-ai-flutter-plugin
vgv-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.
3vgv-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.
2vgv-ui-package
Best practices for building a Flutter UI package on top of Material — custom components, ThemeExtension-based theming, consistent APIs, and widget tests. Use when user says "create a ui package". Supports app_ui_package template.
2vgv-testing
Best practices for Dart unit tests, Flutter widget tests, and golden file tests. Use when writing, modifying, or reviewing tests that use package:test, package:flutter_test, package:mocktail, or package:bloc_test.
2vgv-navigation
Best practices for navigation and routing in Flutter using GoRouter. Use when creating, modifying, or reviewing routes, deep links, redirects, or navigation logic that uses package:go_router or package:go_router_builder.
2vgv-static-security
>
2