++++ Update Juli 2019 ++++
Ich habe ein Paket geschrieben, das die Flutter Global Config integriert.
EZ Flutter ist eine Sammlung von Widgets, Paketen und vielen weiteren nützlichen Dingen, die in einem kleinen Rahmen zusammengefasst sind. Ziel ist es, Standardfunktionen von Grund auf neu verfügbar zu machen. EZ Flutter unterstützt die Verwaltung verschiedener Konfigurationsdateien, auf die innerhalb der App zugegriffen werden kann.
Github: https://github.com/Ephenodrom/EZ-Flutter
dependencies:
ez_flutter: ^0.2.0
Lesen Sie in der Dokumentation nach, wie die Verwendung verschiedener Konfigurationen funktioniert.
https://github.com/Ephenodrom/EZ-Flutter/blob/master/documentation/APPLICATION_SETTINGS.md
++++ Alte Antwort ++++
Ich hatte das gleiche Problem mit globalen Variablen. Daher brauchte ich auch eine andere Konfiguration für jede App-Version (dev / prod) und ich möchte die Konfiguration nicht in die Datei main_dev.dart oder in die Datei main_prod.dart schreiben.
Ich habe ein einfaches Flatterpaket geschrieben, das sich mit getrennten Konfigurationsdateien befasst und diese beim Start der App lädt. Die Konfiguration ist dann in jeder Codezeile Ihrer App verfügbar.
https://github.com/Ephenodrom/Flutter-Global-Config
Wie man es benutzt:
Erstellen Sie eine JSON-Datei unter Assets / cfg / $ file.json
Fügen Sie Assets / cfg zu Ihrer pubspec.yaml hinzu
Laden verschiedener Konfigurationsdateien beim Start der App:
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 {
...
}
Verwenden der Konfiguration in Ihrer App:
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"));
}
}