Flutter layer based clean architecture
π§ The right skill, one API call. AI agent skills registry with token-efficient skill resolution. 5,000+ skills from 500+ top repos.
npx -y skills add ComeOnOliver/skillshub --skill flutter-layer-based-clean-architectureAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Layer separation and DDD standards. ALWAYS consult when working in lib/domain/, lib/infrastructure/, lib/application/, or lib/presentation/ β for entities, repositories, mappers, BLoCs, or screens. (triggers: lib/domain/**, lib/infrastructure/**, lib/application/**, dto, mapper, Either, Failure)
SKILL.md
2.0 KB, 385 tokens by cl100k_base, as published. Nobody here has run it
Layer-Based Clean Architecture
Priority: P0 (CRITICAL)
Standardized separation of concerns and dependency flow using DDD principles.
Structure
lib/
βββ domain/ # Pure Dart: entities (@freezed), failures, repository interfaces
βββ infrastructure/ # Implementation: DTOs, data sources, mappers, repo impls
βββ application/ # Orchestration: BLoCs / Cubits
βββ presentation/ # UI: Screens, reusable components
Implementation Guidelines
- Dependency Flow:
Presentation -> Application -> Domain <- Infrastructure. Dependencies point inward. - Pure Domain: No Flutter (Material/Store) or Infrastructure (Dio/Hive) dependencies in
Domain. - Functional Error Handling: Repositories must return
Either<Failure, Success>. - Always Map: Infrastructure must map DTOs to Domain Entities; do not leak DTOs to UI.
- Immutability: Use
@freezedfor all entities and failures. - Logic Placement: No business logic in UI; widgets only display state and emit events.
- Inversion of Control: Use
get_itto inject repository implementations into BLoCs.
Anti-Patterns
- No DTOs in UI: Never import a
.g.dartor Data class directly in a Widget. - No Material in Domain: Do not import
package:flutter/material.dartin thedomainlayer. - No Shared Prefs in Repo: Do not use
shared_preferencesdirectly in a Repository; use a Data Source.
Reference & Examples
For full implementation templates and DTO-to-Domain mapping examples: See references/REFERENCE.md.
Related Topics
feature-based-clean-architecture | bloc-state-management | dependency-injection | error-handling
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.