A dog grooming website created for Peluquería canina Mimos.
- Clean Architecture
- Flavors (dev, prod)
- Http client to Api REST (Dio)
- Native launch screen
- App icons configured
- Internationalization translations (Easy localization)
- Routing (Go Router)
- Dependency injection (Get it and Injectable).
The application has three environments and each one has its own configuration file:
- dev:
.env/dev.json
- prod:
.env/prod.json
If you want fork this repository, you have to create your own configuration files and replace the values with your own. Example
{
"PACKAGE_NAME": "com.example.dev",
"APP_NAME": "App name Dev",
"ENVIRONMENT": "dev",
"GOOGLE_MAPS_API_KEY": "YOUR_API_KEY",
"SENDGRID_API_KEY": "YOUR_API_KEY",
"SENDGRID_TEMPLATE_ID": "YOUR_TEMPLATE_ID"
}
You can use the following commands to setup the project fast:
- Flutter:
sh setup.sh
- FVM:
sh setup.sh fvm
If you implement a new injectable file, you have to run the following command to generate the necessary code:
fvm flutter packages pub run build_runner build
Also, you can configure Android Studio to run this command automatically:
- On the configuration, add a new "External tool" execution step in the "before launch" section.
- Configure the execution step as follows:
- Name: injectable
- Description: Run injects before launch
- Program: flutter
- Arguments: packages pub run build_runner build
- Working directory:
$ProjectFileDir$
Is important to note that you have to configure the command for the three flavors.
To run the application in each environment, you can use the following commands:
- dev:
flutter run --flavor dev --dart-define-from-file=.env/dev.json
- prod:
flutter run --flavor prod --dart-define-from-file=.env/prod.json
Also, you can configure your IDE to run the application in each environment.