flavor

Last updated:

0 purchases

flavor Image
flavor Images
Add to Cart

Description:

flavor

flavor #


A Flutter plugin for configuring flavor settings and optionally display a flavor banner on the app.
Flavors #
Each app needs some kind of flavor during its development lifecycle. You often have an api you use that is
different during dev, beta, production, or log settings for example. That's when flavors come in.
Setup flavors #
You can define different start main methods, each can be configured with a flavor.
So for example, you can create a main_dev.dart file for your development environment:
void main() {
Flavor.create(
Environment.dev,
color: Colors.green,
name: 'PREVIEW',
properties: {
Keys.apiUrl: 'https://api.dev.company.com',
Keys.apiKey: 'jksdhfkjhs83rjkh324kj23h4',
logLevelKey: 100,
},
);
setupApp();
}
copied to clipboard
And a main_prod.dart file for your production environment:
void main() {
Flavor.create(
Environment.production,
properties: {
Keys.apiUrl: 'https://api.company.com',
Keys.apiKey: 'lksdhjfkjhdsf8sdfjkhsdf896',
logLevelKey: 5,
},
);
setupApp();
}
copied to clipboard
Each of these files will point to another main.dart file:
void setupApp() {
final logLevel = Flavor.I.getInt(logLevelKey);
print('LogLevel set for this flavor: $logLevel');
runApp(FlavorApp());
}
copied to clipboard
How does it look? #



DEV
BETA
PROD










Note that in the PROD flavor no flavor banner is showed.
launch.json #
In Visual Code you can define following to use the different flavors:
{
"version": "0.2.0",
"configurations": [
{
"name": "DEV",
"request": "launch",
"type": "dart",
"program": "example/lib/main_dev.dart",
// "args": [
// "--flavor",
// "dev"
// ]
},
{
"name": "BETA",
"request": "launch",
"type": "dart",
"program": "example/lib/main_beta.dart",
// "args": [
// "--flavor",
// "beta"
// ]
},
{
"name": "PRD",
"request": "launch",
"type": "dart",
"program": "example/lib/main_prod.dart",
// "args": [
// "--flavor",
// "prod"
// ]
},
]
}
copied to clipboard
Note: The args keys are currently commented. These only works if you created the flavors in the iOS / Android native projects too.
Extras #
You can also define additional properties for each flavor/configuration. This is handy to store url's, api keys, etc.
Further in your app you can access these values.
Flavor.I.getString(Keys.apiUrl)
copied to clipboard
The package has some default Keys at the moment which will be extended over time.
The defaults:
apiUrl, apiKey, appTitle
Of course you can add custom keys yourself as showed in the example.
Or you can check what flavor is currently running:
if (Flavor.I.isDevelopment) {
// do something nice in development
}
copied to clipboard
Checkout the example folder for a complete setup.
Flavorize your bundleids and assets #
If you want to change bundle ids, or even assets (icon, splash screen) check out flutter_flavorizr. This nice tool will help you create flavors in Android and iOS.
API Documentation #
API documentation can be found here

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.