import 'package:flutter/material.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:provider/provider.dart'; import 'stores/config_store.dart'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); var configStore = ConfigStore(); await configStore.load(); runApp( MultiProvider( providers: [ Provider( create: (_) => configStore, dispose: (_, store) => store.dispose(), ), ], child: MyApp(), ), ); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) => Observer( builder: (ctx) => MaterialApp( title: 'Flutter Demo', themeMode: ctx.watch().theme, darkTheme: ThemeData.dark(), theme: ThemeData( primarySwatch: ctx.watch().accentColor, visualDensity: VisualDensity.adaptivePlatformDensity, ), home: MyHomePage(title: 'Flutter hello world'), ), ); } class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State { int _counter = 0; void _incrementCounter() { setState(() { _counter++; }); } @override Widget build(BuildContext context) => Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text('You have pushed the button this many times:'), Text( '$_counter', style: Theme.of(context).textTheme.headline4, ), ], ), ), floatingActionButton: FloatingActionButton( onPressed: _incrementCounter, tooltip: 'Increment', child: Icon(Icons.add), ), ); }