π οΈ Create Project ARo
This package generates a professional directory structure for Flutter projects with a focus on clean architecture and allows you to include a basic login example using the state manager of your choice (BLoC, Provider, Riverpod, or GetX).
β¨ Features
- π Generates folder structure following clean architecture.
- π§± Allows including empty base files.
- π Includes login example with simple validation and navigation to Home.
π§© Generated Structure by default BLoC
πlib
β
βββββπapp
β β
β ββββπconfig
β β βββπconstans
β β βββπrouter
β β βββπstyles
β β βββπthemes
β β
β ββββπdata
β β βββπdatasources
β β β βββπlocal
β β β βββπremote
β β βββπrepositories
β β
β ββββπdomain
β β βββπentities
β β β βββπdtos
β β β βββπmodels
β β βββπrepositories
β β βββπusecases
β β
β ββββπinjection
β β
β ββββπpresentation
β β βββπblocs
β β β βββπlogin
β β β βββπsignup
β β βββπpages
β β β βββπlogin
β β β βββπsignup
β β βββπwidgets
β β βββπlogin
β β βββπsignup
β β
β ββββπutils
β βββπhelpers
β βββπwidgets
β
βββββπcore
ββββπerrors
ββββπnetwork
ββββπutils
ββββπwidgets
for Provider
...
β ββββπpresentation
β β βββπproviders
β β β βββπlogin
β β β βββπsignup
...
for Riverpod
...
β ββββπpresentation
β β βββπcontrollers
β β β βββπlogin
β β β βββπsignup
...
for GetX
...
β ββββπpresentation
β β βββπcontrollers
β β β βββπlogin
β β β βββπsignup
β β βββπbindings
β β βββπpages
β β β βββπlogin
β β β βββπsignup
...
π§βπ» Interactive Mode
You can use the interactive mode simply by running:
dart run create_project_aro:create
If you don't provide any flags, you will be prompted to select:
- The state manager (BLoC, Provider, Riverpod, GetX)
- The type of generation (Functional demo or Empty folders)
π§© AVAILABLE COMMANDS
| Command | Description |
|---|---|
dart run create_project_aro:create |
Start interactive mode |
dart run create_project_aro:create --b |
Creates empty folder structure for BLoC. |
dart run create_project_aro:create --p |
Creates empty folder structure for Provider. |
dart run create_project_aro:create --r |
Creates empty folder structure for Riverpod. |
dart run create_project_aro:create --g |
Creates empty folder structure for GetX. |
dart run create_project_aro:create --b --d |
Creates Structure + functional login demo using BLoC. |
dart run create_project_aro:create --p --d |
Creates Structure + functional login demo using Provider. |
dart run create_project_aro:create --r --d |
Creates Structure + functional login demo using Riverpod. |
dart run create_project_aro:create --g --d |
Creates Structure + functional login demo using GetX. |
dart run create_project_aro:create --b --e |
Creates Structure + empty files using BLoC. |
dart run create_project_aro:create --p --e |
Creates Structure + empty files using Provider. |
dart run create_project_aro:create --r --e |
Creates Structure + empty files using Riverpod. |
dart run create_project_aro:create --g --e |
Creates Structure + empty files using GetX. |
π¦ Install as a dev dependency
It is recommended to add create_project_aro as a dev dependency:
dart pub add --dev create_project_aro
And in your pubspec.yaml:
dev_dependencies:
create_project_aro: ^0.0.5
π§©About dependencies
Dependencies for demos are at your discretion. The following are recommended according to the chosen state manager.
For BLoC it's recommended to install:
- flutter_bloc: ^9.0.0
- equatable: ^2.0.5
- meta: ^1.15.0
For Provider it's recommended to install:
- provider: ^6.1.1
For Riverpod it's recommended to install:
-
flutter_riverpod: ^2.4.5
-
riverpod_annotation: ^2.3.0
Development dependencies:
-
riverpod_generator: ^2.3.5
-
build_runner: ^2.4.6
To create files:
flutter pub run build_runner build
-
For GetX it's recommended to install:
- get: ^4.6.6
β LOGIN EXAMPLE DETAILS
- Basic field validation (email and password)
- Correct email: "[email protected]"
- Correct Password: "123456"
- If login is successful, redirects to a screen called HomePage
- Home screen only shows centered text: "HomePage"
π§ Requirements
- Dart SDK >= 3.0.0
- Flutter >= 3.10.0
π§ AUTHOR
Andres Rodriguez. Passionate about professional, scalable, and maintainable development.
This package aims to be a solid foundation for any type of Flutter project, allowing you to freely choose the most convenient state manager.
π LICENSE
MIT License