Skip to content

vanhoangg/flutter_clean_base

Repository files navigation

Flutter_Clean_Base

❯ The optimal foundational code for 'me'.

last-commit repo-top-language repo-language-count

Built with the tools and technologies:

Swift GNU%20Bash Gradle Dart C Kotlin Podman


🔗 Quick Links


👾 Features

  • Architecture: Clean Architecture
  • State management: flutter_bloc
  • DI: get_it, injectable
  • REST API: dio
  • Shared Preferences: shared_preference
  • Lint: dart_code_metrics, flutter_lints
  • CI/CD: Github Actions, Bitbucket Pipelines
  • Utils: rxdart, dartx, async
  • Assets generator: build-runner, flutter_launcher_icons, flutter_native_splash

📁 Project Structure

└── flutter_clean_base/
    ├── analysis_options.yaml
    ├── assets
    │   ├── fonts
    │   ├── images
    │   ├── json
    │   └── translations
    ├── lib
    │   ├── app
    │   ├── flavors.dart
    │   ├── main.dart
    │   ├── main_dev.dart
    │   ├── main_stg.dart
    │   ├── presentation
    │   └── test.dart
    ├── melos.yaml
    ├── package
    │   ├── data
    │   ├── domain
    │   └── shared
    ├── pubspec.lock
    ├── pubspec.yaml
    ├── scripts
    │   ├── gen.sh
    │   ├── pub_get.sh
    │   ├── run_dev.sh
    │   └── run_prod.sh
    └──

📂 Project Index

Flutter_Clean_Base/
__root__
analysis_options.yaml ❯ Code Convention
melos.yaml ❯ Multiple Module Configuration
pubspec.yaml ❯ Packages Dependence
lib
main_dev.dart ❯ REPLACE-ME
main.dart ❯ REPLACE-ME
test.dart ❯ REPLACE-ME
flavors.dart ❯ REPLACE-ME
main_stg.dart ❯ REPLACE-ME
presentation
presentation.dart ❯ REPLACE-ME
main
main_screen.dart ❯ REPLACE-ME
search_page.dart ❯ REPLACE-ME
settings_page.dart ❯ REPLACE-ME
notifications_page.dart ❯ REPLACE-ME
login
login_screen.dart ❯ REPLACE-ME
bloc
login_bloc.dart ❯ REPLACE-ME
login_event.dart ❯ REPLACE-ME
login_state.dart ❯ REPLACE-ME
base
base_state.dart ❯ REPLACE-ME
splash
splash.dart ❯ REPLACE-ME
home
home_screen.dart ❯ REPLACE-ME
bloc
home_bloc.dart ❯ REPLACE-ME
home_event.dart ❯ REPLACE-ME
home_state.dart ❯ REPLACE-ME
app
routes_manager.dart ❯ REPLACE-ME
snackbar_util.dart ❯ REPLACE-ME
di.dart ❯ REPLACE-ME
app.dart ❯ REPLACE-ME
device_utils.dart ❯ REPLACE-ME
functions.dart ❯ REPLACE-ME
widget_util.dart ❯ REPLACE-ME
scripts
pub_get.sh ❯ Pub Get Scripts
run_prod.sh ❯ Run App Flavor Prod
gen.sh ❯ Generate Code
run_dev.sh ❯ Run App Flavor Dev
package
shared
analysis_options.yaml ❯ REPLACE-ME
pubspec.yaml ❯ REPLACE-ME
.metadata ❯ REPLACE-ME
lib
shared.dart ❯ REPLACE-ME
src
model
server_error_detail.dart ❯ REPLACE-ME
server_error.dart ❯ REPLACE-ME
big_decimal.dart ❯ REPLACE-ME
typedef.dart ❯ REPLACE-ME
shared_enum.dart ❯ REPLACE-ME
helper
helper.dart ❯ REPLACE-ME
app_info.dart ❯ REPLACE-ME
stream
stream.dart ❯ REPLACE-ME
dispose_bag.dart ❯ REPLACE-ME
stream_logger.dart ❯ REPLACE-ME
disposable.dart ❯ REPLACE-ME
mixin
log_mixin.dart ❯ REPLACE-ME
constant
duration_constants.dart ❯ REPLACE-ME
symbol_constants.dart ❯ REPLACE-ME
app_constants.dart ❯ REPLACE-ME
locale_constants.dart ❯ REPLACE-ME
shared_preference_constants.dart ❯ REPLACE-ME
uni_links_constants.dart ❯ REPLACE-ME
definition
enums.dart ❯ REPLACE-ME
log_config.dart ❯ REPLACE-ME
type_alias.dart ❯ REPLACE-ME
flavors.dart ❯ REPLACE-ME
failure.dart ❯ REPLACE-ME
format
date_time_format_constants.dart ❯ REPLACE-ME
number_format_constants.dart ❯ REPLACE-ME
server
response_constrant.dart ❯ REPLACE-ME
ui
ui_constants.dart ❯ REPLACE-ME
paging_constants.dart ❯ REPLACE-ME
device_constants.dart ❯ REPLACE-ME
util
function
check_null_util.dart ❯ REPLACE-ME
enum_util.dart ❯ REPLACE-ME
fcm_util.dart ❯ REPLACE-ME
image_util.dart ❯ REPLACE-ME
number_format_util.dart ❯ REPLACE-ME
function.dart ❯ REPLACE-ME
extensions.dart ❯ REPLACE-ME
notification_util.dart ❯ REPLACE-ME
badge_util.dart ❯ REPLACE-ME
device_utils.dart ❯ REPLACE-ME
date_format_util.dart ❯ REPLACE-ME
call_util.dart ❯ REPLACE-ME
app_log_util.dart ❯ REPLACE-ME
resources
styles_manager.dart ❯ REPLACE-ME
theme_manager.dart ❯ REPLACE-ME
strings_manager.dart ❯ REPLACE-ME
font_manager.dart ❯ REPLACE-ME
resources.dart ❯ REPLACE-ME
language_manager.dart ❯ REPLACE-ME
assets_manager.dart ❯ REPLACE-ME
color_manager.dart ❯ REPLACE-ME
values_manager.dart ❯ REPLACE-ME
widget
dialog_util.dart ❯ REPLACE-ME
widget.dart ❯ REPLACE-ME
long_press_gesture.dart ❯ REPLACE-ME
exception
parse
parse_exception.dart ❯ REPLACE-ME
remote_config
remote_config_exception.dart ❯ REPLACE-ME
uncaught
app_uncaught_exception.dart ❯ REPLACE-ME
base
exception_mapper.dart ❯ REPLACE-ME
app_exception_wrapper.dart ❯ REPLACE-ME
app_exception.dart ❯ REPLACE-ME
validation
validation_exception.dart ❯ REPLACE-ME
remote
remote_exception.dart ❯ REPLACE-ME
domain
analysis_options.yaml ❯ REPLACE-ME
pubspec.yaml ❯ REPLACE-ME
.metadata ❯ REPLACE-ME
lib
domain.dart ❯ REPLACE-ME
src
usecase
base_usecase.dart ❯ REPLACE-ME
login_usecase.dart ❯ REPLACE-ME
entity
base_entity.dart ❯ REPLACE-ME
entity.dart ❯ REPLACE-ME
authentication
coordinates_entity.dart ❯ REPLACE-ME
address_entity.dart ❯ REPLACE-ME
user_entity.dart ❯ REPLACE-ME
company_entity.dart ❯ REPLACE-ME
crypto_entity.dart ❯ REPLACE-ME
bank_entity.dart ❯ REPLACE-ME
repository
repository.dart ❯ REPLACE-ME

🚀 Getting Started

☑️ Prerequisites

Before getting started with flutter_clean_base, ensure your runtime environment meets the following requirements:

  • Programming Language: Dart,Swift,Kotlin
  • Package Manager: Pub, Gradle, Melos

⚙️ Installation

Install flutter_clean_base using one of the following methods:

Build from source:

  1. Clone the flutter_clean_base repository:
❯ git clone https://github.com/vanhoangg/flutter_clean_base
  1. Navigate to the project directory:
cd flutter_clean_base
  1. Install the project dependencies:
  • Install melos  
❯ dart pub global activate melos 
  • Install dependence packages instead flutter pub get  
❯ melos bootstrap

🤖 Usage

Run flutter_clean_base using the following command:

  1. Navigate to script directory:
cd scripts
  1. Run script generate .g file  
❯ sh gen.sh
  1. Run script to build application with dev enviroment  
❯ sh run_dev.sh

🔰 Contributing

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your github account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/vanhoangg/flutter_clean_base
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to github: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!

🙌 Acknowledgments


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published