resolve 0.1.1 resolve: ^0.1.1 copied to clipboard
Managing dependencies with simple Widgets.
Resolve #
Managing dependencies with simple Widgets.
Features:
- Inversion of control, you define how to instantiate objects from outside
- Really integrated with the Flutter widget composability approach
- Scoped resolution since
Resolvers
andConfigurators
can be overriden wherever in the tree - Generic widgets so you can use the configuration and instances you want
Examples #
Quickstart #
enum Configuration {
development,
production,
}
class Bootstrapper extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Configurator<Configuration>(
configuration: Configuration.production,
child: Resolver<String, Configuration>(
creator: ((context,config) => config == Configuration.development ? "Debug now" : "Online"),
child: );
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final label = Resolver.of<String>(context);
return Text(label);
}
}
FAQ #
Can I use it with the BLoC pattern ?
Absolutely, I created it first for it, but wanted a more generic approach combined with dependency configuration. The solution is just an extended part of a typical bloc provider.
Don't forget to add a disposer
for your blocs when registering them into the Resolver
to close all exposed streams!
What if I have a pure Dart project ?
You can still use dioc which is a more traditionnal approach to inversion of control.