Si te encuentras con algo que no entiendes puedes dejarlo en los comentarios y haremos todo lo posible de ayudarte lo más rápido posible.
Solución:
Simplemente cree un archivo de biblioteca y cree campos para los globales que necesita allí. Importe esta biblioteca en cualquier lugar donde necesite acceder a estos campos.
aplicación.dart
import 'globals.dart' as globals;
main()
globals.isLoggedIn = true;
componente1.dardo
import 'globals.dart' as globals;
class MyComponent {
view()
if(globals.isLoggedIn)
doSomething();
else
doSomethingElse();
globals.dart
library my_prj.globals;
bool isLoggedIn = false;
Tú también puedes
- cree un singleton en la biblioteca global (consulte ¿Cómo se crea un Singleton en Dart? para obtener más detalles).
- use observable para recibir notificaciones sobre cambios (consulte Implementar un patrón de observador en Dart, ¿Cómo puedo activar un tipo de evento onChange en una clase para obtener más detalles)
Puedes crear una clase
misColores.dart
class AppColors
static var primary = Colors.blue;
E importando tu clase
import 'package:myapp/.../myColors.dart';
Y accede con AppColors.primary
++++ Actualización de julio de 2019 ++++
Escribí un paquete que integra Flutter Global Config.
EZ Flutter es una colección de widgets, paquetes y muchas cosas más útiles, mixed en poco marco. El objetivo es hacer que las características estándar estén disponibles desde cero. EZ Flutter admite la administración de diferentes archivos de configuración a los que se puede acceder dentro de la aplicación.
Github: https://github.com/Ephenodrom/EZ-Flutter
dependencies:
ez_flutter: ^0.2.0
Consulte la documentación sobre cómo funciona el uso de diferentes configuraciones.
https://github.com/Ephenodrom/EZ-Flutter/blob/master/documentation/APPLICATION_SETTINGS.md
++++ Respuesta antigua ++++
Tuve el mismo problema con las variables globales. Por lo tanto, también necesitaba una configuración diferente para cada versión de la aplicación (dev/prod) y no quiero escribir la configuración en el archivo main_dev.dart o main_prod.dart.
Escribí un paquete flutter simple que se ocupa de tener archivos de configuración separados y cargarlos al inicio de la aplicación. La configuración estará disponible en cada línea de código de su aplicación.
https://github.com/Ephenodrom/Flutter-Global-Config
Cómo usarlo :
Cree un archivo json en assets/cfg/$file.json
Agregue activos/cfg a su pubspec.yaml
Cargando diferentes archivos de configuración al inicio de la aplicación:
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
...
Usando la configuración en su aplicación:
import 'package:flutter/material.dart';
import 'package:global_configuration/global_configuration.dart';
class CustomWidget extends StatelessWidget
CustomWiget()
// Access the config in the constructor
print(GlobalConfiguration().getString("key1"); // prints value1
@override
Widget build(BuildContext context)
// Access the config in the build method
return new Text(GlobalConfiguration().getString("key2"));
Si sostienes algún enigma o capacidad de regenerar nuestro artículo puedes escribir una explicación y con placer lo analizaremos.