A Dart package for clean architecture with state management.
This Dart package provides a clean architecture template with state management.
- Separation of concerns with clean architecture principles.
- State management integration for a smooth user interface.
- Easily customizable and extendable.
Add the following dependency to your pubspec.yaml
file:
dev_dependencies:
clean_architecture_with_state_management:
Basic usage example:
dart run clean_architecture_with_state_management yourFeatureName
|- features
| ┌ feature_name/
| |- data/
| | |-data_sources/
| | | |- local/
| | | | └ feature_name_local_data_source.dart
| | | └ remote/
| | | └ feature_name_remote_data_source.dart
| | |- models/
| | | └ feature_model.dart
| | └ repositories/
| | └ feature_name_repository_impl.dart
| |- domain/
| | |- entities/
| | | └ feature.dart
| | |- repositories/
| | | └ feature_repository.dart
| | └ use_case/
| | └ feature_use_case.dart
| |- presentation/
| | |- widgets/
| | └ screens/
| | └ feature_screen.dart
| └ inject_feature_name.dart
dart run clean_architecture_with_state_management yourFeatureName -provider
|- features
| ┌ feature_name/
| |- data/
| | |-data_sources/
| | | |- local/
| | | | └ feature_name_local_data_source.dart
| | | └ remote/
| | | └ feature_name_remote_data_source.dart
| | |- models/
| | | └ feature_model.dart
| | └ repositories/
| | └ feature_name_repository_impl.dart
| |- domain/
| | |- entities/
| | | └ feature.dart
| | |- repositories/
| | | └ feature_repository.dart
| | └ use_case/
| | └ feature_use_case.dart
| |- presentation/
| | |- provider/
| | | └ feature_provider.dart
| | |- widgets/
| | └ screens/
| | └ feature_screen.dart
| └ inject_feature_name.dart
dart run clean_architecture_with_state_management yourFeatureName -bloc
|- features
| ┌ feature_name/
| |- data/
| | |-data_sources/
| | | |- local/
| | | | └ feature_name_local_data_source.dart
| | | └ remote/
| | | └ feature_name_remote_data_source.dart
| | |- models/
| | | └ feature_model.dart
| | └ repositories/
| | └ feature_name_repository_impl.dart
| |- domain/
| | |- entities/
| | | └ feature.dart
| | |- repositories/
| | | └ feature_repository.dart
| | └ use_case/
| | └ feature_use_case.dart
| |- presentation/
| | |- bloc/
| | | └ feature_bloc.dart
| | | └ feature_event.dart
| | | └ feature_state.dart
| | |- widgets/
| | └ screens/
| | └ feature_screen.dart
| └ inject_feature_name.dart
dart run clean_architecture_with_state_management yourFeatureName -cubit
|- features
| ┌ feature_name/
| |- data/
| | |-data_sources/
| | | |- local/
| | | | └ feature_name_local_data_source.dart
| | | └ remote/
| | | └ feature_name_remote_data_source.dart
| | |- models/
| | | └ feature_model.dart
| | └ repositories/
| | └ feature_name_repository_impl.dart
| |- domain/
| | |- entities/
| | | └ feature.dart
| | |- repositories/
| | | └ feature_repository.dart
| | └ use_case/
| | └ feature_use_case.dart
| |- presentation/
| | |- cubit/
| | | └ feature_cubit.dart
| | | └ feature_state.dart
| | |- widgets/
| | └ screens/
| | └ feature_screen.dart
| └ inject_feature_name.dart