osam 4.3.5 copy "osam: ^4.3.5" to clipboard
osam: ^4.3.5 copied to clipboard

discontinued
outdated

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());
  runApp(
    StoreProvider(
      store: store,
      child: MaterialApp(
        home: PresenterExample(),
      ),
    ),
  );
}

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(
      key: const ValueKey('ex_presenter'),
      presenter: ExamplePresenter(),
      child: Body(),
    ));
  }
}

// ignore: must_be_immutable
class AppState extends BaseState<AppState> {
  var count = 0;

  @override
  List<Object> get props => [count];
}
9
likes
0
points
15
downloads

Publisher

verified publisherrenesanse.net

Weekly Downloads

State management library inspired redux, bloc and SOLID prenciples. It is null safety and very stable solution to avoid red screens and bad code.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

after_layout, equatable, flutter, hive, hive_flutter, meta, path_provider, provider, stream_transform

More

Packages that depend on osam