From 41a7aa4c9eb55366dff5e0b2edea5cce6ea18015 Mon Sep 17 00:00:00 2001 From: Marcel Ploch Date: Mon, 12 Sep 2022 14:37:10 +0200 Subject: [PATCH 1/2] Integrate flutter_flavor easy mode --- lib/main.dart | 6 ++++-- lib/main.develop.dart | 21 +++++++++++++++++++++ lib/main.stage.dart | 22 ++++++++++++++++++++++ lib/src/app.dart | 8 ++++++-- pubspec.lock | 16 ++++++++++++---- pubspec.yaml | 1 + 6 files changed, 66 insertions(+), 8 deletions(-) create mode 100644 lib/main.develop.dart create mode 100644 lib/main.stage.dart diff --git a/lib/main.dart b/lib/main.dart index 199d822..096c1e7 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -3,10 +3,12 @@ import 'package:counter_workshop/src/features/counter/data/datasources/local/cou import 'package:counter_workshop/src/features/counter/data/datasources/remote/src/mock/counter_fake.api.dart'; import 'package:counter_workshop/src/features/counter/data/repositories/counter.repository.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_flavor/flutter_flavor.dart'; void main() { - final CounterRepository counterRepository = - CounterRepository(counterApi: CounterFakeApi(), counterDatabase: CounterDatabase()); + FlavorConfig(name: "", variables: {"env": "PRODUCTION", "API_URL": ""}); + final CounterRepository counterRepository = CounterRepository( + counterApi: CounterFakeApi(), counterDatabase: CounterDatabase()); runApp( App( counterRepository: counterRepository, diff --git a/lib/main.develop.dart b/lib/main.develop.dart new file mode 100644 index 0000000..cb4e031 --- /dev/null +++ b/lib/main.develop.dart @@ -0,0 +1,21 @@ +import 'package:counter_workshop/src/app.dart'; +import 'package:counter_workshop/src/features/counter/data/datasources/local/counter.db.dart'; +import 'package:counter_workshop/src/features/counter/data/datasources/remote/src/mock/counter_fake.api.dart'; +import 'package:counter_workshop/src/features/counter/data/repositories/counter.repository.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_flavor/flutter_flavor.dart'; + +void main() { + FlavorConfig( + name: "DEVELOP", + color: Colors.red, + location: BannerLocation.bottomEnd, + variables: {"env": "DEVELOP", "API_URL": ""}); + final CounterRepository counterRepository = CounterRepository( + counterApi: CounterFakeApi(), counterDatabase: CounterDatabase()); + runApp( + App( + counterRepository: counterRepository, + ), + ); +} diff --git a/lib/main.stage.dart b/lib/main.stage.dart new file mode 100644 index 0000000..d8d60b1 --- /dev/null +++ b/lib/main.stage.dart @@ -0,0 +1,22 @@ +import 'package:counter_workshop/src/app.dart'; +import 'package:counter_workshop/src/features/counter/data/datasources/local/counter.db.dart'; +import 'package:counter_workshop/src/features/counter/data/datasources/remote/src/mock/counter_fake.api.dart'; +import 'package:counter_workshop/src/features/counter/data/repositories/counter.repository.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_flavor/flutter_flavor.dart'; + +void main() { + FlavorConfig( + name: "STAGE", + color: Colors.blue, + location: BannerLocation.bottomStart, + variables: {"env": "STAGE", "API_URL": ""}); + + final CounterRepository counterRepository = CounterRepository( + counterApi: CounterFakeApi(), counterDatabase: CounterDatabase()); + runApp( + App( + counterRepository: counterRepository, + ), + ); +} diff --git a/lib/src/app.dart b/lib/src/app.dart index e0116fa..d7a2908 100644 --- a/lib/src/app.dart +++ b/lib/src/app.dart @@ -2,6 +2,7 @@ import 'package:counter_workshop/src/core/theme/app.theme.dart'; import 'package:counter_workshop/src/features/counter/data/repositories/counter.repository.dart'; import 'package:counter_workshop/src/features/counter/presentation/counter.page.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_flavor/flutter_flavor.dart'; class App extends StatelessWidget { const App({required this.counterRepository, super.key}); @@ -11,12 +12,15 @@ class App extends StatelessWidget { Widget build(BuildContext context) { final appTheme = AppTheme(); - return MaterialApp( + return FlavorBanner( + child: MaterialApp( title: 'Counter Demo', theme: appTheme.light, + debugShowCheckedModeBanner: + FlavorConfig.instance.variables['env'] != 'PRODUCTION', darkTheme: appTheme.dark, themeMode: ThemeMode.system, home: CounterPage(counterRepository: counterRepository), - ); + )); } } diff --git a/pubspec.lock b/pubspec.lock index 9f08ebd..6e94e0b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -188,6 +188,13 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_flavor: + dependency: "direct main" + description: + name: flutter_flavor + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.1" flutter_lints: dependency: "direct dev" description: @@ -290,7 +297,7 @@ packages: name: material_color_utilities url: "https://pub.dartlang.org" source: hosted - version: "0.1.5" + version: "0.2.0" meta: dependency: transitive description: @@ -365,7 +372,7 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.9.0" + version: "1.9.1" stack_trace: dependency: transitive description: @@ -407,7 +414,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.12" + version: "0.4.13" timing: dependency: transitive description: @@ -428,7 +435,7 @@ packages: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.1.2" + version: "2.1.3" watcher: dependency: transitive description: @@ -452,3 +459,4 @@ packages: version: "3.1.1" sdks: dart: ">=2.18.0 <3.0.0" + flutter: ">=1.17.0" diff --git a/pubspec.yaml b/pubspec.yaml index 4c5fb24..3902e47 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -15,6 +15,7 @@ dependencies: cupertino_icons: ^1.0.2 equatable: ^2.0.5 http: ^0.13.5 + flutter_flavor: ^3.1.1 dev_dependencies: flutter_test: From bd80d089230af1c312a7dfc49a5b577f478fcc1d Mon Sep 17 00:00:00 2001 From: Marcel Ploch Date: Mon, 12 Sep 2022 15:07:15 +0200 Subject: [PATCH 2/2] Fix lint --- lib/main.dart | 6 +++--- lib/main.develop.dart | 8 ++++---- lib/main.stage.dart | 8 ++++---- lib/src/app.dart | 3 +-- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 096c1e7..24e20cb 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -6,9 +6,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_flavor/flutter_flavor.dart'; void main() { - FlavorConfig(name: "", variables: {"env": "PRODUCTION", "API_URL": ""}); - final CounterRepository counterRepository = CounterRepository( - counterApi: CounterFakeApi(), counterDatabase: CounterDatabase()); + FlavorConfig(name: '', variables: {'env': 'PRODUCTION', 'API_URL': ''}); + final CounterRepository counterRepository = + CounterRepository(counterApi: CounterFakeApi(), counterDatabase: CounterDatabase()); runApp( App( counterRepository: counterRepository, diff --git a/lib/main.develop.dart b/lib/main.develop.dart index cb4e031..f27b32f 100644 --- a/lib/main.develop.dart +++ b/lib/main.develop.dart @@ -7,12 +7,12 @@ import 'package:flutter_flavor/flutter_flavor.dart'; void main() { FlavorConfig( - name: "DEVELOP", + name: 'DEVELOP', color: Colors.red, location: BannerLocation.bottomEnd, - variables: {"env": "DEVELOP", "API_URL": ""}); - final CounterRepository counterRepository = CounterRepository( - counterApi: CounterFakeApi(), counterDatabase: CounterDatabase()); + variables: {'env': 'DEVELOP', 'API_URL': ''}); + final CounterRepository counterRepository = + CounterRepository(counterApi: CounterFakeApi(), counterDatabase: CounterDatabase()); runApp( App( counterRepository: counterRepository, diff --git a/lib/main.stage.dart b/lib/main.stage.dart index d8d60b1..e4a12da 100644 --- a/lib/main.stage.dart +++ b/lib/main.stage.dart @@ -7,13 +7,13 @@ import 'package:flutter_flavor/flutter_flavor.dart'; void main() { FlavorConfig( - name: "STAGE", + name: 'STAGE', color: Colors.blue, location: BannerLocation.bottomStart, - variables: {"env": "STAGE", "API_URL": ""}); + variables: {'env': 'STAGE', 'API_URL': ''}); - final CounterRepository counterRepository = CounterRepository( - counterApi: CounterFakeApi(), counterDatabase: CounterDatabase()); + final CounterRepository counterRepository = + CounterRepository(counterApi: CounterFakeApi(), counterDatabase: CounterDatabase()); runApp( App( counterRepository: counterRepository, diff --git a/lib/src/app.dart b/lib/src/app.dart index d7a2908..710042c 100644 --- a/lib/src/app.dart +++ b/lib/src/app.dart @@ -16,8 +16,7 @@ class App extends StatelessWidget { child: MaterialApp( title: 'Counter Demo', theme: appTheme.light, - debugShowCheckedModeBanner: - FlavorConfig.instance.variables['env'] != 'PRODUCTION', + debugShowCheckedModeBanner: FlavorConfig.instance.variables['env'] != 'PRODUCTION', darkTheme: appTheme.dark, themeMode: ThemeMode.system, home: CounterPage(counterRepository: counterRepository),