This document is the entry point for the Flutter coding guidelines used across our projects. These rules exist to ensure consistency, maintainability, and scalability in every codebase.
These guidelines are grounded in:
- Domain-Driven Design (DDD) — model software around real business concepts.
- Clean Architecture — separate concerns into layers with strict dependency rules.
- Explicit over implicit — code should be readable without needing to trace through layers of abstraction.
We follow a four-layer architecture:
| Layer | Responsibility |
|---|---|
domain |
Core business rules, entities, errors, repository contracts |
application |
Orchestration of domain logic (use cases) |
infrastructure |
External world: APIs, databases, local storage |
presentation |
UI, state management (Bloc), routing |
See Architecture for the full explanation and dependency rules.
- Architecture — Layer diagram, DDD concepts, dependency rules
- Folder Structure — Project layout and file organization
- Naming Conventions — Files, classes, variables, suffixes
- Error Handling —
Either,TaskEither, domain errors - State Management — Bloc overview and usage rules
- Overview
- Features
- Blocs