Clean Feature Architecture

CLI and analyzer for scaffolding and enforcing Clean Architecture in Flutter projects. Version 1.6.0 provides full support for modern Dart 3.x patterns and modular dependency injection.

Installation

Add the toolkit to your dev_dependencies:

dart pub add -d clean_feature_arch

Features

Modern Dart 3.x Support

Scaffolded templates utilize modern Dart standards:

  • Switch Expressions: Functional and exhaustive UI state rendering.
  • Record Destructuring: Declarative application initialization and result handling via AppRunner.
  • Enhanced Enums: Type-safe configuration and flavor management.
  • Sealed Classes: Compiler-verified state and error handling.

Modular Dependency Injection

Dependency injection follows a Modular Registry Pattern:

  • Core Module: Centralized management for infrastructure, network, and storage.
  • Feature Modules: Localized registration logic within each feature's di/ directory.
  • Dispatcher: A clean injection_container.dart that coordinates modular registries.

CLI Usage

All commands are executed via dart run clean_feature_arch:

1. Project Initialization

Initializes the core architecture (Router, Theme, Storage, Networking) and shared resources (Assets, Localization, Context Extensions).

# Default
dart run clean_feature_arch init

# With BLoC or Riverpod
dart run clean_feature_arch init --state bloc
dart run clean_feature_arch init --state riverpod

2. Feature Generation

Creates the domain, data, and presentation layers for a new feature.

dart run clean_feature_arch feature <name> --state [bloc|riverpod|none] --storage [drift|shared|none]

3. Storage Management

Configure storage engines or integrate them into existing features.

# Initialize a global engine (Drift or Shared Preferences)
dart run clean_feature_arch storage init

# Add storage to an existing feature
dart run clean_feature_arch storage feature <name> --type [drift|shared]

4. Permission Configuration

Configure system permissions across all supported platforms.

# Interactive menu
dart run clean_feature_arch permission

# Direct command
dart run clean_feature_arch permission camera

5. CI/CD Scaffolding

Generate automated workflows for GitHub Actions or GitLab CI.

dart run clean_feature_arch ci

6. Test Scaffolding

Initialize unit and integration test infrastructure.

# Core infrastructure tests
dart run clean_feature_arch test --init

# Feature-specific test suite
dart run clean_feature_arch test <feature_name>

7. Terminal Documentation

Access technical references directly from the terminal.

# Display the Absolute Rules
dart run clean_feature_arch docs rules

# Display the project skeleton
dart run clean_feature_arch docs skeleton

Static Analysis

A native analyzer plugin enforces architectural boundaries and standards.

Configuration

Add the plugin to your analysis_options.yaml:

plugins:
  clean_feature_arch:
    diagnostics:
      absolute_rule_avoid_illegal_layer_imports: true
      absolute_rule_enforce_feature_isolation: true
      absolute_rule_enforce_model_folder_structure: true
      absolute_rule_prefer_sealed_freezed_models: true
      absolute_rule_enforce_data_source_folder_structure: true

Documentation

Detailed technical guides:

License

Distributed under the MIT License. See LICENSE for details.

Libraries

clean_feature_arch
Architecture toolkit for Flutter.