dependencies_flutter 0.1.6 copy "dependencies_flutter: ^0.1.6" to clipboard
dependencies_flutter: ^0.1.6 copied to clipboard

A simple and modular dependency injection system for Flutter.

pub package

Simple package to ease the use of the dependencies with Flutter leveraging the power of InheritedWidget.

Usage #

class SomeRootWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return InjectorWidget.bind(
      bindFunc: (binder) {
        binder
          ..install(MyModule())
          ..bindSingleton("api123", name: "api_key");
      },
      child: SomeWidget()
    );
  }
}

You can also extend BindingInjectorWidget to configure your dependencies:

class MyBinder extends ModuleWidget {
  MyBinder({Key key, @required Widget child}): super(key: key, child: child);
  @override
  void configure(Binder binder) {
    binder
      ..bindSingleton(Object());
  }
}

You can later refer to the injector like any other InheritedWidget.

class SomeWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final injector = InjectorWidget.of(context);
    final apiKey = injector.get(name: "api_key");
    return SomeContainerNeedingTheKey(apiKey);
  }
}

Or using the InjectorWidgetMixin:

class SomeWidget extends StatelessWidget with InjectorWidgetMixin {
  @override
  Widget buildWithInjector(BuildContext context, Injector injector) {
    final object = injector.get<Object>();
    print(object);
    return Container();
  }
}
2
likes
40
pub points
29%
popularity

Publisher

unverified uploader

A simple and modular dependency injection system for Flutter.

Repository (GitHub)
View/report issues

License

Apache-2.0, BSD-3-Clause (license)

Dependencies

dependencies, flutter, quiver

More

Packages that depend on dependencies_flutter