Skip to content

Complete Dependency InjectorDependency injection for Dart and Flutter

Hierarchical scopes, async services and a boilerplate-free ViewModel pattern, in two small packages.

Two packages ​

PackageUse it for
complete_dependency_injectorThe injector itself. Pure Dart, works anywhere.
complete_dependency_injector_flutterWidgets that place injectors in the widget tree, plus the DependenciesBuilder ViewModel pattern.

At a glance ​

dart
// 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,
]);
dart
// 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!

Released under the MIT License.