mobile-architecture

Organize Flutter apps with Clean Architecture and Domain-Driven Design.

1|1|Updated Mar 22, 2026
One-click install
npx skills add https://github.com/zzafergok/skills --skill mobile-architecture
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: mobile-architecture
Source: https://github.com/zzafergok/skills/tree/main/02-software-architecture/mobile-architecture
Command: npx skills add https://github.com/zzafergok/skills --skill mobile-architecture

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Flutter projects often spiral into tangled, hard-to-test code as features grow. This Skill provides a mobile-first Clean Architecture and Domain-Driven Design approach to keep codebases maintainable and scalable.

Core Features & Use Cases

  • Layered architecture with Presentation, Domain, and Data layers
  • Dependency injection setup (GetIt/Injectable) and repository patterns
  • Feature-sliced project structure, test strategy, and domain entities

Quick Start

Set up a Flutter project with Clean Architecture, domain-driven design, and feature-sliced structure, wired for DI and testing.

Frequently Asked Questions about mobile-architecture

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure a Flutter app with clean architecture and domain-driven design?

Structure a Flutter app with clean architecture by dividing it into Presentation, Domain, and Data layers using a feature-sliced approach. This separation isolates domain entities and data models, ensuring maintainable and testable use cases across features.

What is the feature-sliced structure in Flutter mobile apps?

Feature-sliced structure in Flutter mobile apps organizes code by feature rather than layer, placing presentation, domain, and data components together. This structure enforces clear separation of concerns and improves maintainability as features grow.

How do I set up dependency injection in Flutter using GetIt and Injectable?

Set up dependency injection in Flutter using GetIt and Injectable to wire repository patterns and use cases. This configuration supports a clean architecture by resolving dependencies automatically, keeping domain layers decoupled from data sources.

When do I need domain-driven design for my Flutter project?

You need domain-driven design for your Flutter project when features grow complex and require strict separation of concerns. It provides a clear structure for domain entities and testable use cases, preventing code from becoming tangled and hard to maintain.

Does clean architecture work with the repository pattern in Flutter?

Clean architecture works with the repository pattern in Flutter by acting as the bridge between domain and data layers. Repositories abstract data sources, allowing domain use cases to remain testable and independent of external implementations.

What is the best way to test use cases in a Flutter clean architecture?

The best way to test use cases in a Flutter clean architecture is by leveraging strict layer separation and dependency injection. Mock repository interfaces in the domain layer to isolate use cases, verifying business logic without external data dependencies.