++++ Оновлення липня 2019 ++++
Я написав Пакет, який інтегрує Flutter Global Config.
EZ Flutter - це колекція віджетів, пакетів та багатьох інших корисних речей, змішаних у невеликих рамках. Мета - зробити стандартні функції доступними з нуля. EZ Flutter підтримує управління різними файлами конфігурації, до яких можна отримати доступ всередині програми.
Github: https://github.com/Ephenodrom/EZ-Flutter
dependencies:
ez_flutter: ^0.2.0
Перегляньте документацію, як працює використання різних конфігурацій.
https://github.com/Ephenodrom/EZ-Flutter/blob/master/documentation/APPLICATION_SETTINGS.md
++++ Стара відповідь ++++
У мене була та ж проблема з глобальними змінними. Тому мені також потрібна була інша конфігурація для кожної версії програми (dev / prod), і я не хочу писати конфігурацію у файлі main_dev.dart або у файлі main_prod.dart.
Я написав простий пакет, який стосується наявності окремих файлів конфігурації та завантаження їх під час запуску програми. Тоді конфігурація доступна в кожному рядку коду у вашому додатку.
https://github.com/Ephenodrom/Flutter-Global-Config
Як користуватися ним:
Створіть файл json у розділі assets / cfg / $ file.json
Додайте активи / cfg у свій pubspec.yaml
Завантаження різних файлів конфігурації при запуску програми:
import 'package:flutter/material.dart';
import 'package:global_configuration/global_configuration.dart';
void main() async{
await GlobalConfiguration().loadFromAsset("app_settings");
await GlobalConfiguration().loadFromAsset("env_dev_settings");
runApp(MyApp());
}
class MyApp extends StatelessWidget {
...
}
Використання конфігурації у вашому додатку:
import 'package:flutter/material.dart';
import 'package:global_configuration/global_configuration.dart';
class CustomWidget extends StatelessWidget {
CustomWiget(){
print(GlobalConfiguration().getString("key1");
}
@override
Widget build(BuildContext context) {
return new Text(GlobalConfiguration().getString("key2"));
}
}