# Wyatt - Clean Code

[![Powered by Mason](https://img.shields.io/endpoint?url=https%3A%2F%2Ftinyurl.com%2Fmason-badge)](https://github.com/felangel/mason)

Create clean new **Flutter** project from scratch following Clean Code Architecture.

## Usage 🚀

```sh
mason make wyatt_clean_code --project_name app --org_name fr.wyattstudio.app --description A new Wyatt Studio project. --platforms=android,ios --features=analysis,localization
```

## Variables ✨

| variable           | description                  | default | type      |
| ------------------ | ---------------------------- | ------- | --------- |
| `project_name` | Project name | app | `string` |
| `org_name` | Organization name | fr.wyattstudio.app | `string` |
| `description` | A short project description | A new Wyatt Studio project. | `string` |
| `platforms` | Supported platforms | [android, ios] | `array` |
| `features` | Enabled features | [analysis, localization] | `array` |

## Output 📦

```
--project_name app --org_name fr.wyattstudio.app --description A new Wyatt Studio project. --platforms=android,ios,web --features=analysis,localization,router
├── .vscode/
|   ├── launch.json
|   └── settings.json
├── android
|   └── ...
├── assets
|   ├── l10n
|   |   └── intl_fr.arb
|   ├── colors
|   |   └── dark.xml
|   ├── fonts
|   └── images
├── ios
|   └── ...
├── lib
|   ├── core
|   |   ├── enums
|   |   ├── errors
|   |   ├── extensions
|   |   |   └── l10n.dart
|   |   ├── resources
|   |   |   ├── app_router.dart
|   |   |   └── app_theme.dart
|   |   └── utils
|   |       └── app_bloc_observer.dart
|   ├── data
|   |   ├── models
|   |   ├── providers
|   |   └── repositories
|   ├── domain
|   |   ├── entities
|   |   └── repositories
|   ├── presentation
|   |   ├── bloc
|   |   |   └── counter_cubit
|   |   |       └── counter_cubit.dart
|   |   ├── pages
|   |   |   ├── counter
|   |   |   |   ├── widgets
|   |   |   |   |   └── counter_text.dart
|   |   |   |   └── counter_page.dart
|   |   |   └── initial
|   |   |   |   └── initial_page.dart
|   |   └── shared
|   |   |   ├── layouts
|   |   |   ├── state_management
|   |   |   |   └── counter_state_management.dart
|   |   |   └── widgets
|   ├── app.dart
|   ├── main.dart
|   └── widget_tree.dart
├── scripts
├── web
|   └── ...
├── l10n.yaml
├── Makefile
├── pubspec.yaml
└── analysis_options.yaml
```


## Prerequisite 
No prerequisites needed.
