blue_bird_cli 0.1.3 blue_bird_cli: ^0.1.3 copied to clipboard
A Command-Line Interface for generating complex large-scale Flutter project and package architectures.
A Command-Line Interface for generating complex large-scale Flutter project and package architectures.
Generated by the Very Good CLI π€
We encourage the VGV team to make accesible the Flutter and Dart CLIs from the very good cli package so we can extend those classes and add new features instead of repeating part of their code.
Thanks to VGV for the inspiration and the work that made possible the creation of the Blue Bird CLI π.
Getting Started π #
Installing #
dart pub global activate blue_bird_cli
Usage #
# Show CLI version
$ blue_bird --version
# Show usage help
$ blue_bird --help
update
command #
Use the update
command if there is a new version of the Blue Bird CLI and you want to update your local version to the last one.
# Update the Blue Bird CLI
blue_bird update
create
command #
The following command create a Flutter project with a more complex architecture ideally for large Flutter apps.
# Create a new Flutter project named my_project
blue_bird create my_project
The stucture of the new project will be the following:
π¦my_project
β£ πandroid
β£ πcore
β β£ πcomponents
β β β£ πlib
β β β β£ πsrc
β β β β β£ πconfig
β β β β β β πcomponents_config.dart
β β β β β πpresentation
β β β β β β πcomponents_example_widget.dart
β β β β πcomponents.dart
β β β£ πtest
β β β β πsrc
β β β β β πmy_project_test.dart
β β β£ πanalysis_options.yaml
β β β πpubspec.yaml
β β£ πdependencies
β β β£ πlib
β β β β πdependencies.dart
β β β£ πanalysis_options.yaml
β β β πpubspec.yaml
β β£ πdi
β β β£ πlib
β β β β£ πsrc
β β β β β πdi_injection_module.dart
β β β β πdi.dart
β β β£ πanalysis_options.yaml
β β β πpubspec.yaml
β β£ πinternationalization
β β β£ πlib
β β β β£ πsrc
β β β β β πl10n
β β β β β β πintl_en.arb
β β β β πinternationalization.dart
β β β£ πanalysis_options.yaml
β β β£ πl10n.yaml
β β β πpubspec.yaml
β β£ πnetwork
β β β£ πlib
β β β β πnetwork.dart
β β β£ πanalysis_options.yaml
β β β πpubspec.yaml
β β£ πroutes
β β β£ πlib
β β β β£ πsrc
β β β β β πroute_names.dart
β β β β πroutes.dart
β β β£ πanalysis_options.yaml
β β β πpubspec.yaml
β β πtheme
β β β£ πassets
β β β β£ πimages
β β β β β πempty_img.png
β β β β πsvg
β β β β β πempty_ico.svg
β β β£ πlib
β β β β£ πsrc
β β β β β£ πcolors
β β β β β β πtheme_colors.dart
β β β β β£ πicons
β β β β β β πtheme_icons.dart
β β β β β£ πimages
β β β β β β πtheme_images.dart
β β β β β£ πspacers
β β β β β β πtheme_spacers.dart
β β β β β£ πtext_styles
β β β β β β πtheme_text_styles.dart
β β β β β πtheme_datas
β β β β β β πtheme_datas.dart
β β β β πtheme.dart
β β β£ πanalysis_options.yaml
β β β πpubspec.yaml
β£ πfeatures
β β πfeat_example
β β β£ πlib
β β β β£ πsrc
β β β β β£ πconfig
β β β β β β πfeat_example_const.dart
β β β β β£ πdata
β β β β β β£ πdatasources
β β β β β β β£ πlocal
β β β β β β β β πfeat_example_local_datasource_impl.dart
β β β β β β β£ πremote
β β β β β β β β πfeat_example_remote_datasource_impl.dart
β β β β β β β πfeat_example_datasource.dart
β β β β β β£ πmodels
β β β β β β β£ πfeat_example_request_model.dart
β β β β β β β πfeat_example_response_model.dart
β β β β β β πrepositories
β β β β β β β πfeat_example_repository_impl.dart
β β β β β£ πdi
β β β β β β πfeat_example_provider.dart
β β β β β£ πdomain
β β β β β β£ πentities
β β β β β β β πfeat_example_entity.dart
β β β β β β£ πrepositories
β β β β β β β πfeat_example_respository.dart
β β β β β β πusecases
β β β β β β β πfeat_example_usecase.dart
β β β β β πpresentation
β β β β β β£ πapplication
β β β β β β β πfeat_example_counter
β β β β β β β β£ πfeat_example_counter_cubit.dart
β β β β β β β β πfeat_example_counter_state.dart
β β β β β β£ πpages
β β β β β β β πfeat_example_page.dart
β β β β β β πwidgets
β β β β β β β πfeat_example_widget.dart
β β β β πfeat_example.dart
β β β£ πtest
β β β β πsrc
β β β β β πfeat_example_test.dart
β β β£ πanalysis_options.yaml
β β β πpubspec.yaml
β£ πios
β£ πresources
β£ π.gitignore
β£ πanalysis_options.yaml
β£ πpubspec.yaml
β πREADME.md
core
: Contains all the core functionalities and configurations used by the packages under features
and the main project.
core/components
: Contains the common widgets for the whole app.
core/dependencies
: The third party dependencies and core packages are exported here to be used in the whole app.
core/di
: Dependency injection configuration.
core/internationalization
: Contains the app internationalization configuration.
core/network
: Place your network configuration here.
core/routes
: Contains the names of the app routes.
core/theme
: App theme configuration: theme data, colors, icons, images, etc.
features
: Project well known and specific features with single responsability.
features/feat_example
: Feature example.
features/feat_example/.../data
: Contains repository and datasource implementations and service models.
features/feat_example/.../data/datasources/local
: Local datasource implementation.
features/feat_example/.../data/datasources/remote
: Remote datasource implementation.
features/feat_example/.../data/models
: Request and response service models.
features/feat_example/.../data/repositories
: Repository implementation.
features/feat_example/.../di
: Feature dependency injection set up.
features/feat_example/.../domain
: Contains entities and interfaces.
features/feat_example/.../domain/entities
: Specific feature entities.
features/feat_example/.../domain/repositories
: Specific feature repository interfaces.
features/feat_example/.../domain/usecases
: Specific feature usecases.
features/feat_example/.../presentation
: Feature visual components and business logic.
features/feat_example/.../presentation/application
: Visual component's business logic.
features/feat_example/.../presentation/pages
: Specific feature pages.
features/feat_example/.../presentation/widgets
: Specific feature atomic widgets.
The rest of possible create
command usages are the following:
# Create a new Flutter project named my_project
blue_bird create my_project
# Create a new Flutter project named my_project with a custom org
blue_bird create my_project --desc "My new Flutter project" --org "com.custom.org"
# Create a new Flutter project named my_project with a custom application id
blue_bird create my_project --application-id "com.custom.app.id"
# Create a new Flutter project named my_project at directory named my_projects
blue_bird create my_project --output-directory "my_projects"
# Create a new Flutter package named my_package (used for the feat_example package generation)
blue_bird create my_package --template flutter_package