osam 5.0.2
osam: ^5.0.2 copied to clipboard
State management library inspired redux, bloc and SOLID prenciples. It is null safety and very stable solution to avoid red screens and bad code.
example/lib/main.dart
//import 'package:flutter/cupertino.dart';
//import 'package:flutter/material.dart';
//import 'package:osam/osam.dart';
//
//import 'presenter.dart';
//
//void main() async {
// WidgetsFlutterBinding.ensureInitialized();
// final store = Store(AppState());
// final pers = PersistRepository();
// await pers.initPersist('123');
// runApp(
// StoreProvider(
// persist: pers,
// store: store,
// child: MaterialApp(
// home: PresenterExample(),
// ),
// presenters: [Test()]),
// );
//}
//
//class Body extends StatefulWidget {
// @override
// _BodyState createState() => _BodyState();
//}
//
//class _BodyState extends State<Body> {
// var c = 0;
//
// @override
// Widget build(BuildContext context) {
// return Scaffold(
// body: Center(
// child: OsamBuilder<int>(
// stream: context.presenter<ExamplePresenter>().count,
// builder: (ctx, snap) => Text(snap.data.toString()),
// ),
// ),
// floatingActionButton: FloatingActionButton(
// child: Icon(Icons.plus_one),
// onPressed: () {
// setState(() {
// context.presenter<ExamplePresenter>().inc();
// });
// },
// ),
// );
// }
//}
//
//class PresenterExample extends StatefulWidget {
// @override
// _PresenterExampleState createState() => _PresenterExampleState();
//}
//
//class _PresenterExampleState extends State<PresenterExample> {
// @override
// Widget build(BuildContext context) {
// return Scaffold(
// body: PresenterProvider<ExamplePresenter>(
// key: const ValueKey('ex_presenter'),
// child: Body(),
// ));
// }
//}