zuraffa 2.3.1
zuraffa: ^2.3.1 copied to clipboard
AI first Flutter Clean Architecture Framework and CLI with Result types, UseCase patterns, Dependency Injection and MCP server for building type-safe, scalable apps with AI agents.
2.3.1 - 2026-02-05 #
- Updated Zorphy dependencies
2.2.2 - 2026-02-04 #
- Updated README
2.2.1 - 2026-02-04 #
- Updated README and website docs https://zuraffa.com
2.2.0 - 2026-02-04 #
- Updated examples and docs
- Bundled zorphy with zuraffa so no longer need a separate install
2.1.0 - 2026-02-04 #
🎉 Major Feature - Zorphy Entity Generation Integration #
Zuraffa now includes complete Zorphy entity generation - making it a full-featured CLI for both Clean Architecture and entity management!
✨ New Features #
Entity Generation Commands
zfa entity create- Create Zorphy entities with fieldszfa entity new- Quick-create simple entitieszfa entity enum- Create enums with automatic barrel exportszfa entity add-field- Add fields to existing entitieszfa entity from-json- Create entities from JSON fileszfa entity list- List all entities in projectzfa build- Run build_runner with --watch and --clean options
Entity Features
- ✅ Type-safe entities with null safety
- ✅ JSON serialization (built-in)
- ✅ Sealed classes for polymorphism
- ✅ Multiple inheritance support
- ✅ Generic types (
List<T>,Map<K,V>) - ✅ Nested entities with auto-imports
- ✅ Enum integration
- ✅ Self-referencing types (trees, graphs)
- ✅
compareTo,copyWith,patchmethods - ✅ Function-based copyWith option
- ✅ Explicit subtypes for polymorphism
MCP Server Integration
All entity commands now available via MCP:
entity_create- Create entities from AI/IDEentity_enum- Create enumsentity_add_field- Add fields to existing entitiesentity_from_json- Import from JSONentity_list- List all entitiesentity_new- Quick entity creation
🔄 Changes #
Dependencies
- Replaced
zikzak_morphywithzorphy(fully upgraded version) - Added
zorphy_annotationas runtime dependency - Added
json_annotationfor entity serialization - Updated SDK constraint to
>=3.8.0 - Added
dependency_overridesfor compatibility
Documentation
- Added
ENTITY_GUIDE.md- Comprehensive entity generation guide with 50+ examples - Updated README.md with entity commands section
- Updated CLI help text with entity commands
📚 New Documentation #
- ENTITY_GUIDE.md - Complete guide covering:
- Basic entity creation
- All field types (basic, nullable, generic, nested)
- JSON serialization
- Enums
- Sealed classes & polymorphism
- Inheritance & interfaces
- Nested objects
- Self-referencing types
- Generic classes
- Complete real-world examples (E-commerce, Social Media, Task Management)
- Best practices
- Integration with Clean Architecture
💡 Usage Examples #
```bash
Create entity with fields #
zfa entity create -n User --field name:String --field email:String? --field age:int
Create enum #
zfa entity enum -n Status --value active,inactive,pending
Create polymorphic sealed class #
zfa entity create -n PaymentMethod --sealed --subtype=$CreditCard --subtype=$PayPal
Build all generated code #
zfa build --watch
Use with Clean Architecture #
zfa entity create -n Product --field name:String --field price:double zfa generate Product --methods=get,getList,create,update,delete --data --vpc --state zfa build ```
🐛 Fixes #
- Fixed dependency conflicts between zorphy and flutter_test
- Fixed meta version constraints
- Fixed test_api version compatibility
📖 Migration from 2.0.1 #
No breaking changes! Entity commands are purely additive:
```bash
Old commands still work #
zfa generate Product --methods=get,getList --vpc --state zfa initialize
New entity commands available #
zfa entity create -n User --field name:String zfa entity enum -n Status --value active,inactive zfa build ```
🎯 Benefits #
- Single CLI for Everything - No need to install separate tools
- Type-Safe Entities - Compile-time safety for all data models
- Polymorphism Support - Sealed classes with exhaustive checking
- Auto-Imports - Nested entities automatically imported
- JSON Ready - Built-in serialization/deserialization
- IDE Integration - Full MCP server support
- Comprehensive Docs - 50+ examples in ENTITY_GUIDE.md
🔗 Links #
- Zorphy GitHub
- Entity Guide
- CLI Guide
- MCP Server
2.0.0 - 2026-02-03 #
🚀 Major Release - Clean Architecture Framework #
ZFA 2.0.0 transforms from a CRUD generator into a complete Clean Architecture framework with orchestration and polymorphic patterns.
⚠️ Breaking Changes #
--repos→--repo: Custom UseCases now accept single repository (enforces Single Responsibility Principle)- Old:
--repos=Cart,Order,Payment - New:
--repo=Checkout(one UseCase, one repository)
- Old:
--domainrequired: All custom UseCases must specify domain folder- Example:
--domain=search,--domain=checkout
- Example:
- Repository method naming: UseCase name automatically maps to repository method
SearchProductUseCase→productRepo.searchProduct()ProcessCheckoutUseCase→checkoutRepo.processCheckout()
--repositoryremoved: All entity based operations automaticaly creates the repository. Custom usecases create repository if non existed or add method to the existing repository with--appendflag
✨ New Features #
Orchestrator Pattern
Compose multiple UseCases into workflows:
zfa generate SearchProduct \
--usecases=GenerateZiks,ParseZik,DetectCategory \
--domain=search \
--params=Spark \
--returns=Listing
Generates UseCase that injects and orchestrates other UseCases (no repositories).
Polymorphic Pattern
Generate abstract base + concrete variants + factory:
zfa generate SparkSearch \
--type=stream \
--variants=Barcode,Url,Text \
--domain=search \
--repo=Search \
--params=Spark \
--returns=Listing
Generates:
- Abstract
SparkSearchUseCase BarcodeSparkSearchUseCase,UrlSparkSearchUseCase,TextSparkSearchUseCaseSparkSearchUseCaseFactorywith runtime type switching
Domain Organization
UseCases organized by domain concept (DDD-style):
domain/usecases/
├── product/ # Product domain
├── search/ # Search domain
├── checkout/ # Checkout domain
└── zik/ # Custom domain
Added #
--repo: Single repository injection (replaces--repos)--usecases: Comma-separated UseCases for orchestration--variants: Comma-separated variants for polymorphic pattern--domain: Required domain folder for custom UseCases- UseCase path resolution: Convention-based with file search fallback
- Automatic import resolution: Finds and imports composed UseCases
--appendflag - Append methods to existing repository/datasource files without regenerating- Automatically finds and updates Repository, DataRepository, DataSource, RemoteDataSource, and MockDataSource
- Generates UseCase file and appends method signatures to all related files
- Gracefully handles missing files with warning messages
- Example:
zfa generate WatchProduct --domain=product --repo=Product --params=String --returns=Stream<Product> --type=stream --append
Changed #
- Allow
query-field=nullto disable ID-based queries (useNoParamsinstead) - Simplified DI generation - removed UseCase, Presenter, and Controller registration (manual registration recommended)
- Removed
--subdirectoryflag - Use--domaininstead for organizing custom UseCases- Custom UseCases now create files in
usecases/{domain}/folder - Example:
--domain=productcreatesusecases/product/watch_product_usecase.dart
- Custom UseCases now create files in
- Custom UseCases: Now require
--domainand--repo(except orchestrators/background) - UseCase organization: Grouped by domain concept instead of flat structure
- Repository method naming: Auto-matches UseCase name (e.g.,
SearchProduct→searchProduct())
Fixed #
- DataSource interface now includes
@overrideannotations for watch methods - Custom UseCases now respect
--domainflag for folder organization
Migration Guide (1.x → 2.0.0) #
Before (1.x)
zfa generate ProcessCheckout --repos=Cart,Order,Payment --params=Request --returns=Order
After (2.0.0)
Option 1: Single Repository (Recommended)
zfa generate ProcessCheckout --repo=Checkout --domain=checkout --params=Request --returns=Order
Option 2: Orchestrator Pattern
# Create atomic UseCases
zfa generate ValidateCart --repo=Cart --domain=checkout --params=CartId --returns=bool
zfa generate CreateOrder --repo=Order --domain=checkout --params=OrderData --returns=Order
zfa generate ProcessPayment --repo=Payment --domain=checkout --params=PaymentData --returns=Receipt
# Orchestrate them
zfa generate ProcessCheckout \
--usecases=ValidateCart,CreateOrder,ProcessPayment \
--domain=checkout \
--params=CheckoutRequest \
--returns=Order
1.16.0 - 2026-02-02 #
Added #
--query-field=nullSupport: Generate parameterless methods for singleton/global entities- Repository:
Future<T> get()instead ofFuture<T> get(String id) - UseCase:
UseCase<T, NoParams>instead ofUseCase<T, QueryParams<String>> - DataSource, Presenter, Controller all use parameterless signatures
- Works with
get,watch,update, anddeletemethods - Automatic test generation with
NoParams
- Repository:
Changed #
- Simplified DI Generation: Removed UseCase, Presenter, and Controller registration
--dinow only generates DataSource and Repository registration- UseCases handled by Zuraffa's built-in mechanisms
- Presenters and Controllers instantiated directly in Views
- Cleaner DI with focus on infrastructure concerns only
- Conditional List Updates: Controller methods only update lists when list methods exist
createonly adds to list ifgetListorwatchListis generatedupdateonly updates list ifgetListorwatchListis generateddeleteonly removes from list ifgetListorwatchListis generated- Prevents unnecessary state updates and compilation errors
Fixed #
- Query Field Handling: Fixed
--query-field=nullacross all layers- DataSource interface generates parameterless methods
- RemoteDataSource implementation matches interface
- DataRepository (simple and cached) handle parameterless calls
- Controller update method uses direct assignment instead of field comparison
- Test generator creates correct mock expectations
1.15.0 - 2026-02-02 #
Added #
- Automatic Cache Initialization: Auto-generated cache files for Hive
cache/folder with entity-specific cache init fileshive_registrar.dartwith@GenerateAdaptersfor all cached entitieshive_manual_additions.txttemplate for nested entities and enumstimestamp_cache.dartfor cache policy timestamp storageinitAllCaches()function that registers adapters and opens all boxes- Automatic index file generation with exports
- Cache Policy Generation: Auto-generated cache policy implementations
- Separate files per policy type:
daily_cache_policy.dart,app_restart_cache_policy.dart,ttl_<N>_minutes_cache_policy.dart - Full Hive implementation with timestamp box operations
--ttl=<minutes>flag for custom TTL duration (default: 1440 = 24 hours)
- Separate files per policy type:
- Mock DataSource Support for Cache:
--use-mocknow works with--cache- Registers mock datasource as remote datasource in cached repositories
- Enables full development workflow without backend
- Manual Adapter Registration:
hive_manual_additions.txtfor nested entities- Simple format:
import_path|EntityName - Auto-merged with cached entities in registrar
- Supports enums, nested entities, and custom types
- Simple format:
- VPCS Flag: New
--vpcsflag for complete presentation layer generation- Generates View + Presenter + Controller + State in one command
- Shorthand for
--vpc --state
Changed #
- DataRepository Type Safety: Remote datasource now uses abstract
DataSourcetype- Allows easy switching between implementations (remote, mock, etc.)
- Example:
final ProductDataSource _remoteDataSource;instead ofProductRemoteDataSource
- Enum Mock Data: Changed from
seed % 3toseed % 2for safer enum value generation- Prevents index errors with enums that have only 2 values
- Hive Registrar Import: Uses
hive_ce_flutterinstead ofhive_ce- Consistent with Flutter projects
Fixed #
- Snake Case Entity Names: Proper PascalCase conversion in Hive registrar
category_config→CategoryConfig(notCategory_config)
1.14.0 - 2026-02-01 #
Added #
- Dependency Injection Generation: New
--diflag generates get_it DI files- One file per component (datasource, repository, usecase, presenter, controller)
- Auto-generated index files via directory scanning
- Supports
--cachefor dual datasource registration - Supports
--use-mockto register mock datasources instead of remote
- Granular VPC Generation: New flags for selective presenter/controller generation
--pc: Generate Presenter + Controller only (preserve custom View)--pcs: Generate Presenter + Controller + State (preserve custom View)--vpc: Still available for full View + Presenter + Controller generation
- Mock DataSource Control: New
--use-mockflag- When used with
--di, registers mock datasource instead of remote - Useful for development and testing without backend
- When used with
- Remote DataSource Always Generated:
--datanow always generates remote datasource implementation- Previously only generated with
--cache - More intuitive default behavior
- Previously only generated with
Changed #
- Presenter DI Registration: Fixed to inject only repositories (not usecases)
- Presenters create usecases internally via
registerUseCase() - Matches actual presenter implementation pattern
- Presenters create usecases internally via
Fixed #
- DI Generation: Removed extra closing parenthesis in presenter registration
1.13.0 - 2026-02-01 #
Added #
- Cache Storage Default:
--cachenow defaults to--cache-storage=hiveautomatically - Abstract DataSource Generation: Always generate abstract datasource interface, even with
--cache - Initialize Method Support: Added
--initflag support for cache datasources- Remote and local datasources implement initialize methods when
--initis used - Data repository delegates initialization to remote datasource
- Proper
@overrideannotations on all interface implementations
- Remote and local datasources implement initialize methods when
Fixed #
- VPC Generator: Reverted to working presenter generation with proper
Presenterbase class andregisterUseCase() - Mock Data Generation:
- Respect
--id-fieldparameter in mock datasources (e.g.,--id-field=name) - Use
const Duration()for DateTime mock values for better performance - Fixed
DeleteParamsusage in mock datasource delete methods - Added proper spacing between generated methods
- Fixed List
- Fixed duplicate map keys in generated mock data
- Improved Zorphy entity support - parse generated
.zorphy.dartfiles for complete field information - Only generate enum imports when entity actually contains enum fields
- Exclude primitive types, generics, and enums from nested entity generation
- Fixed seeded DateTime generation to remove invalid
constusage
- Respect
- DataSource Generation:
- Remote and local datasources always include
with Loggable, FailureHandlermixins - Proper
implementsclause ordering (afterwithmixins) - Added missing
@overrideannotations for interface method implementations - Initialize methods properly added to both remote and local datasources when
--initis used
- Remote and local datasources always include
- Entity Analysis:
- Never use fallback fields - only parse actual entity fields from source files
- Improved class regex to handle
extendsandimplementsclauses - Better support for Zorphy generated classes with complex inheritance
Improved #
- Mock Data Quality: More realistic and varied mock data generation
- Type Safety: Better handling of complex generic types and nullable fields
- Code Generation: Cleaner generated code with proper formatting and annotations
1.12.0 - 2026-02-01 #
Added #
- Mock Data Generation: Comprehensive mock data generation system
--mockflag: Generate mock data files alongside other layers--mock-data-onlyflag: Generate only mock data files- Realistic Data: Type-appropriate values for all field types (String, int, double, bool, DateTime, Object)
- Complex Types: Full support for
List<T>,Map<K,V>, nullable types - Nested Entities: Automatic detection and recursive generation with proper cross-references
- Zorphy Support: Handles
$EntityNamesyntax and zorphy annotations - Smart Imports: Single enum import (
enums/index.dart) only when needed - Large Datasets: Generated methods for performance testing (100+ items)
- Null Safety: Proper handling of optional fields with realistic null distribution
Enhanced #
-
Entity Analysis: Improved entity field parsing with balanced brace matching
- Handles complex generic types like
Map<String, String>correctly - Fixed regex patterns for getter-style fields in abstract classes
- Supports unlimited recursion depth for nested entity structures
- Handles complex generic types like
-
MCP Server: Added mock generation flags to Model Context Protocol server
mockandmock_data_onlyparameters available in MCP tools- Enhanced AI/IDE integration for mock data workflows
1.11.1 - 2026-02-01 #
Fixed #
-
Singleton Entity Key Collision: Fixed Hive storage key collision for singleton entities
- Now uses entity snake_case name as key instead of generic
'singleton' - Each entity gets unique storage:
GoogleCookie→'google_cookie',AppConfig→'app_config' - Prevents data overwriting between different singleton entities
- Now uses entity snake_case name as key instead of generic
-
Data Layer Generator: Fixed undefined
relativePathvariable in data repository generation- Added missing variable declaration in
generateDataRepositorymethod - Fixed import path string interpolation for data sources
- Ensures correct import paths when using subdirectories and caching features
- Added missing variable declaration in
1.11.0 - 2026-02-01 #
Added #
-
Initialize Command: New
zfa initializecommand to quickly create sample entities--entityparameter to specify entity name (default: Product)- Creates realistic sample entity with common fields (id, name, description, price, category, isActive, createdAt, updatedAt)
- Includes complete implementation with copyWith, equals, hashCode, toString, JSON serialization
- Added to MCP server as
initializetool for AI agent integration - Updated CLI help and README documentation
-
Singleton Entity Support: New
--id-field=nullflag for parameterless operations- Generates
get()andwatch()methods without ID parameters usingNoParams - Perfect for singleton entities like app config, user sessions, global settings
- Uses fixed
'singleton'key for Hive storage instead of entity ID - Validation prevents usage with list methods (
getList,watchList)
- Generates
Changed #
-
Optimized Repository Imports: Repository interfaces now conditionally import zuraffa
- Only imports
package:zuraffa/zuraffa.dartwhen using zuraffa types (ListQueryParams, UpdateParams, DeleteParams) - Simple repositories with only
get()methods have no zuraffa import - Keeps repository interfaces clean and minimal
- Only imports
-
Improved Local DataSource Generation:
- No
saveAll()method generated for singleton entities (--id-field=null) - Uses
'singleton'key for Hive operations instead of entity field access
- No
Fixed #
- Test Generation for Singleton Entities: Fixed mock repository calls in generated tests
- Parameterless methods now use
mockRepository.get()instead ofmockRepository.get(any()) - Fixed both success and failure test scenarios for Future and Stream UseCases
- Eliminates "too many arguments" compilation errors
- Parameterless methods now use
[1.12.0] - 2026-02-01 #
Fixed #
-
Background UseCase Generation: Fixed
--returnsand--paramsparameters for background UseCases- Now properly uses specified return type instead of defaulting to
void - Generates
context.sendData(result)to return the processed result - Includes helper
processData()method with correct type signatures - Auto-imports custom params and returns entity types
- Now properly uses specified return type instead of defaulting to
-
Custom UseCase File Structure: Fixed custom UseCases to follow entity naming structure
- Now generates in subfolders:
lib/src/domain/usecases/parsing_task/parsing_task_usecase.dart - Updated import paths to account for subfolder structure (
../../entities/instead of../entities/) - Consistent with entity-based UseCase organization
- Now generates in subfolders:
1.10.0 - 2026-02-01 #
Added #
- Caching Support: New dual datasource pattern for intelligent caching
--cacheflag to enable caching with remote and local datasources--cache-policyoption:daily,restart, orttl(default: daily)--cache-storageoption:hivefor Hive implementation (more coming soon)CachePolicyabstraction withDailyCachePolicy,AppRestartCachePolicy, andTtlCachePolicy- Automatic cache-aware repository generation with validity checks
- Complete Hive implementation when
--cache-storage=hiveis specified - Local datasource with
save(),saveAll(),get(),getList()methods - Remote datasource for API/external service calls
- Cache invalidation support via
CachePolicy.invalidate()
Changed #
- Remote and local datasources are now standalone implementations (no abstract interface)
- Updated to use
hive_ce_flutterpackage for Hive support
Fixed #
- Import paths in generated datasources and repositories
- Repository imports now correctly use
../../domain/paths
1.9.0 - 2026-01-31 #
Added #
- Test Generation (
--test): New flag to generate unit tests for generated UseCases with comprehensive mock setup and test scenarios.
1.8.0 - 2026-01-31 #
Added #
- New Failure Types: Added
StateFailure,TypeFailure,UnimplementedFailure,UnsupportedFailure, andPlatformFailuretoAppFailurefor granular error handling.
Changed #
- FailureHandler:
- Now uses a
switchstatement for improved performance and readability. - Correctly maps
PlatformException(Flutter) toPlatformFailure. - Maps
MissingPluginExceptiontoUnsupportedFailure. - Maps
ArgumentError,RangeError,FormatExceptiontoValidationFailure. - Maps
ConcurrentModificationError,StateError,StackOverflowErrortoStateFailure.
- Now uses a
- Generated Repositories: Fixed missing
zuraffaimport in generated repository files.
Fixed #
- TodoDataSource: Updated
InMemoryTodoDataSourceto fully implement the interface.
1.7.0 - 2026-01-31 #
Added #
- Typed Updates (
--zorphy): New flag to generate update operations using typed Patch objects (e.g.,CustomerPatch) instead of Map-based partials. - Partial Updates: Default update mechanism now uses
Partial<T>(Map<String, dynamic>) with automatic field extraction for validation. - Validation:
UpdateParams.validate()automatically checks fields against your entity definition.FailureHandlernow catchesArgumentError(common in validation) and converts it toValidationFailure.
- New Parameter Wrappers:
ListQueryParams: Standardized params for list queries (filtering, sorting, pagination).DeleteParams: Standardized params for delete operations.UpdateParams<T>: Now generic over data type to support both Maps and Patch objects.
- CLI Global Flags:
--zorphy: Enable Zorphy-style patch objects.--id-field&--id-field-type: Customize the identifier field name and type (default: 'id', 'String').--query-field&--query-field-type: Customize the lookup field definition forget/watchmethods.
Changed #
- Scripts: Updated
publish.shto support "promote unreleased" workflow.
1.6.1 - 2026-01-31 #
1.6.0 - 2026-01-31 #
Change #
- fixed not overriding onInitState from CleanView, updated state generation to generate entity
1.4.1 - 2026-01-26 #
1.0.1 - 2026-01-23 #
Chore #
- Updated description in pubspec.yaml to better reflect package purpose and fit the required 180 character limit.
1.0.0 - 2026-01-23 #
Added #
Core Framework
- Result Type: Type-safe error handling with
Result<S, F>sealed class - AppFailure Hierarchy: Comprehensive sealed class hierarchy for error classification
ServerFailure- HTTP 5xx errorsNetworkFailure- Connection issuesValidationFailure- Input validation errorsNotFoundFailure- HTTP 404 / resource not foundUnauthorizedFailure- HTTP 401 / authentication requiredForbiddenFailure- HTTP 403 / access deniedTimeoutFailure- Request timeoutCacheFailure- Local storage errorsConflictFailure- HTTP 409 / version conflictsCancellationFailure- Operation cancelledUnknownFailure- Catch-all for unclassified errors
- UseCase: Single-shot operations returning
Future<Result<T, AppFailure>> - CompletableUseCase: Operations returning
Result<void, AppFailure> - StreamUseCase: Reactive operations returning
Stream<Result<T, AppFailure>> - BackgroundUseCase: CPU-intensive operations on isolates with
BackgroundTask - Controller: State management with automatic cleanup and lifecycle hooks
- Presenter: Optional orchestration layer for complex business flows
- CleanView & CleanViewState: Base classes for views with automatic lifecycle management
- ResponsiveViewState: Responsive layouts with device-specific builders
- ControlledWidgetBuilder: Rebuild widgets when Controller calls
refreshUI() - ControlledWidgetSelector: Fine-grained rebuilds based on selected values
- CancelToken: Cooperative cancellation for long-running operations
- NoParams: Sentinel for parameterless UseCases
- Observer: Optional callback-based stream listener
CLI Tool
- zfa CLI: Powerful code generator for Clean Architecture boilerplate
- Entity-based UseCase generation with
--methods - Custom UseCase generation with
--paramsand--returns - Repository interface generation with
--repository - Presentation layer generation with
--vpc - Data layer generation with
--data - Data source generation with
--datasource - State object generation with
--state - JSON output format with
--format=json - Stdin input support with
--from-stdin - Dry run mode with
--dry-run - Verbose logging with
--verbose - Force overwrite with
--force
- Entity-based UseCase generation with
- zfa validate: Validate JSON generation configs
- zfa schema: Get JSON schema for config validation
- Dual executable support: Both
zuraffaandzfacommands available
MCP Server
- zuraffa_mcp_server: Model Context Protocol server for AI/IDE integration
zuraffa_generatetool for code generationzuraffa_schematool for schema retrievalzuraffa_validatetool for config validation- Resource change notifications for generated files
- Precompiled binary support for faster startup
Extensions & Utilities
- Future Extensions: Convert futures to
Resulttype - Test Utilities: Matchers and test helpers
- Logging: Global logging configuration via
Zuraffa.enableLogging() - Controller Access:
Zuraffa.getController<T>()for accessing controllers from widget tree
Documentation
- Comprehensive README with quick start guide
- CLI Guide with all command options
- MCP Server documentation
- AI Agents guide for AI-assisted development
- Example application demonstrating all features
Features #
- Type-safe error handling: All operations return
Result<T, AppFailure>for exhaustive error handling - Sealed class hierarchies: Pattern matching with compile-time exhaustiveness checks
- Automatic cleanup: Controllers automatically cancel operations and subscriptions on dispose
- Fine-grained rebuilds: Optimized performance with selective widget updates
- Cooperative cancellation: CancelToken for cancelling long-running operations
- Background processing: Run CPU-intensive work on isolates without blocking UI
- Reactive streams: StreamUseCase for real-time data updates
- CLI code generation: Generate boilerplate with a single command
- AI/IDE integration: MCP server for seamless AI agent integration
- Testable: Pure domain layer with easy mocking and testing
Dependencies #
flutter: ^3.10.0args: ^2.7.0logging: ^1.3.0meta: ^1.12.0path: ^1.9.0provider: ^6.1.5+1responsive_builder: ^0.7.1flutter_lints: ^6.0.0 (dev)mocktail: ^1.0.4 (dev)
Documentation #
- Added comprehensive README with examples
- Added CLI Guide with all options
- Added MCP Server documentation
- Added AI Agents guide
- Added contributing guidelines
- Added code of conduct
Example Application #
- Complete Todo app demonstrating all framework features
- UseCase examples (single-shot, stream, background)
- Controller and View examples
- Error handling examples
- Cancellation examples
- State management examples
Planned Features #
- Web support for BackgroundUseCase
- Additional code generation templates
- More validation failure types
- Performance monitoring utilities
- Extended documentation and tutorials
Version Summary #
- 1.0.0 - Initial release with complete Clean Architecture framework, CLI tool, and MCP server