Hierarchical injection
Nest injectors to match your app's structure. Children inherit their parent's services and can override or add their own.
Hierarchical scopes, async services and a boilerplate-free ViewModel pattern, in two small packages.
| Package | Use it for |
|---|---|
complete_dependency_injector | The injector itself. Pure Dart, works anywhere. |
complete_dependency_injector_flutter | Widgets that place injectors in the widget tree, plus the DependenciesBuilder ViewModel pattern. |
// 1. Say which services this injector makes available.
final injector = Injector([
Logger.DefaultProvider,
GreetingService.DefaultProvider,
]);
// 2. Register how to build each one.
injector.registerFactories([
Logger.Factory,
GreetingService.Factory,
]);// 3. Ask for a service. Its dependencies are built first.
final greeter = await injector.getService<GreetingService>();
final message = greeter.greet('Dart');
print(message); // Hello, Dart!