Skip to content

Commit ce0b660

Browse files
committed
wip dotenv setup
1 parent 06e0053 commit ce0b660

File tree

13 files changed

+50
-16
lines changed

13 files changed

+50
-16
lines changed

app/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,4 +141,4 @@ firebase-debug.log
141141

142142
# Local development files
143143
local.properties
144-
*.properties
144+
*.properties

app/env/.settings.example

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// Create a new file .settings that must be in .gitignore,
2+
// Change env/data env_config.dart :envConfigFile -> 'env/.settings'
3+
// then remove this example
4+
// Add your environment variables here and provide them in data/lib/env/env.dart using dotenv
5+
// static String get yourEnvVar => dotenv.env['YOUR_ENV_KEY']?.toString() ?? '';
6+
7+
API_URL_DEV=https://your-api-url-dev.com
8+
API_URL_QA=https://your-api-url-qa.com
9+
API_URL_PROD=https://your-api-url-prod.com
10+

app/lib/main/env/env_config.dart

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
import 'package:domain/env/env_config.dart';
2+
13
enum Flavor { dev, qa, prod }
24

35
class FlavorValues {
4-
final String baseUrl;
56

6-
FlavorValues({required this.baseUrl});
7+
FlavorValues();
78
}
89

910
class FlavorConfig {
@@ -22,6 +23,17 @@ class FlavorConfig {
2223
flavor.toString(),
2324
values,
2425
);
26+
switch(flavor) {
27+
case Flavor.dev:
28+
EnvConfig.env = EnvConfig.kDevEnv;
29+
break;
30+
case Flavor.qa:
31+
EnvConfig.env = EnvConfig.kQaEnv;
32+
break;
33+
case Flavor.prod:
34+
EnvConfig.env = EnvConfig.kProdEnv;
35+
break;
36+
}
2537
return _instance!;
2638
}
2739

app/lib/main/env/main.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import 'package:flutter/material.dart';
22
import 'package:app/main/env/env_config.dart';
33
import 'package:app/main/init.dart';
4-
import 'package:domain/env.dart';
54

65
void main() async {
76
WidgetsFlutterBinding.ensureInitialized();
87
FlavorConfig(
98
flavor: Flavor.prod,
10-
values: FlavorValues(baseUrl: EnvConfig.apiUrl),
9+
values: FlavorValues(),
1110
);
1211
//Add your firebase configuration here
1312
/*await Firebase.initializeApp(

app/lib/main/env/main_dev.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ void main() async {
66
WidgetsFlutterBinding.ensureInitialized();
77
FlavorConfig(
88
flavor: Flavor.dev,
9-
values: FlavorValues(baseUrl: "https://demo_dev/web_api.json"),
9+
values: FlavorValues(),
1010
);
1111
//Add your firebase configuration here
1212
/*await Firebase.initializeApp(

app/lib/main/env/main_qa.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ void main() async {
66
WidgetsFlutterBinding.ensureInitialized();
77
FlavorConfig(
88
flavor: Flavor.qa,
9-
values: FlavorValues(baseUrl: "https://demo_qa/web_api.json"),
9+
values: FlavorValues(),
1010
);
1111
//Add your firebase configuration here
1212
/*await Firebase.initializeApp(

app/lib/main/init.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import 'package:app/main/app.dart';
22
import 'package:common/init.dart';
3-
import 'package:data/init.dart';
43
import 'package:domain/init.dart';
54
import 'package:example_domain/init.dart';
65
import 'package:example_data/init.dart';
76
import 'package:flutter/material.dart';
7+
import 'package:flutter_dotenv/flutter_dotenv.dart';
88
import 'package:get_it/get_it.dart';
99
import 'package:url_strategy/url_strategy.dart';
1010

@@ -19,9 +19,8 @@ final getIt = GetIt.instance;
1919

2020
Future<void> initialize() async {
2121
await CommonInit.initialize(getIt);
22-
await DataInit.initialize(getIt);
2322
await DomainInit.initialize(getIt);
24-
23+
await DataInit.initialize(getIt);
2524
// Example Module init
2625
await ExampleDomainInit.initialize(getIt);
2726
await ExampleDataInit.initialize(getIt);

app/pubspec.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,13 @@ dependencies:
3939
equatable: ^2.0.5
4040
firebase_core: ^3.13.0
4141
url_strategy: ^0.2.0
42+
flutter_dotenv: ^5.2.1
4243
flutter_localizations:
4344
sdk: flutter
4445
domain:
4546
path: ../modules/domain
4647
common:
4748
path: ../modules/common
48-
data:
49-
path: ../modules/data
5049

5150
# Remove example dependencies
5251
example_data:
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"package_info_plus","path":"/Users/usuario/.pub-cache/hosted/pub.dev/package_info_plus-4.1.0/","native_build":true,"dependencies":[]},{"name":"permission_handler_apple","path":"/Users/usuario/.pub-cache/hosted/pub.dev/permission_handler_apple-9.1.4/","native_build":true,"dependencies":[]}],"android":[{"name":"package_info_plus","path":"/Users/usuario/.pub-cache/hosted/pub.dev/package_info_plus-4.1.0/","native_build":true,"dependencies":[]},{"name":"permission_handler_android","path":"/Users/usuario/.pub-cache/hosted/pub.dev/permission_handler_android-10.3.3/","native_build":true,"dependencies":[]}],"macos":[{"name":"package_info_plus","path":"/Users/usuario/.pub-cache/hosted/pub.dev/package_info_plus-4.1.0/","native_build":true,"dependencies":[]}],"linux":[{"name":"package_info_plus","path":"/Users/usuario/.pub-cache/hosted/pub.dev/package_info_plus-4.1.0/","native_build":false,"dependencies":[]}],"windows":[{"name":"package_info_plus","path":"/Users/usuario/.pub-cache/hosted/pub.dev/package_info_plus-4.1.0/","native_build":false,"dependencies":[]},{"name":"permission_handler_windows","path":"/Users/usuario/.pub-cache/hosted/pub.dev/permission_handler_windows-0.1.3/","native_build":true,"dependencies":[]}],"web":[{"name":"package_info_plus","path":"/Users/usuario/.pub-cache/hosted/pub.dev/package_info_plus-4.1.0/","dependencies":[]}]},"dependencyGraph":[{"name":"package_info_plus","dependencies":[]},{"name":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]}],"date_created":"2024-06-05 15:26:45.216002","version":"3.22.1"}
1+
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"package_info_plus","path":"/Users/usuario/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"permission_handler_apple","path":"/Users/usuario/.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/","native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"package_info_plus","path":"/Users/usuario/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"permission_handler_android","path":"/Users/usuario/.pub-cache/hosted/pub.dev/permission_handler_android-12.1.0/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"package_info_plus","path":"/Users/usuario/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"package_info_plus","path":"/Users/usuario/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"package_info_plus","path":"/Users/usuario/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"permission_handler_windows","path":"/Users/usuario/.pub-cache/hosted/pub.dev/permission_handler_windows-0.2.1/","native_build":true,"dependencies":[],"dev_dependency":false}],"web":[{"name":"package_info_plus","path":"/Users/usuario/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","dependencies":[],"dev_dependency":false},{"name":"permission_handler_html","path":"/Users/usuario/.pub-cache/hosted/pub.dev/permission_handler_html-0.1.3+5/","dependencies":[],"dev_dependency":false}]},"dependencyGraph":[{"name":"package_info_plus","dependencies":[]},{"name":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_html","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_html","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]}],"date_created":"2025-10-03 13:22:55.544002","version":"3.35.1","swift_package_manager_enabled":{"ios":false,"macos":false}}

modules/domain/lib/env.dart

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)