Flutter simple productFlavors
1 min readDec 10, 2019
Draft
Without productFlavors:
main.dart:
void main() async {
runApp(MyApp(key: appKey));
}class MyApp extends StatelessWidget {
Widget build(context) => MaterialApp(
// ...
);
}
With productFlavors:
flutter build apk -t lib/main.dev.dart --flavor dev
main.dev.dart:
void main() async {
R.initialize(R$Dev());
runApp(MyApp());
}
app.dart:
class MyApp extends StatelessWidget {
Widget build(context) => MaterialApp(
// ...
body: Text(R.of.api_base_url)
);
}
r.dart:
class R {
String get api_base_url => "http://example.com/";
static R _current; static void initialize(R value) => _current = value; static R get of {
_current ??= R();
return _current;
}
}
r.dev.dart:
class R$Dev extends R {
@override
String get api_base_url => "http://dev.example.com/";
}