ark_di_flutter 0.1.0-dev.1 copy "ark_di_flutter: ^0.1.0-dev.1" to clipboard
ark_di_flutter: ^0.1.0-dev.1 copied to clipboard

Flutter scopes and BuildContext access for Ark DI dependency containers.

example/ark_di_flutter_example.dart

import 'package:ark_di/ark_di.dart';
import 'package:ark_di_flutter/ark_di_flutter.dart';
import 'package:flutter/widgets.dart';

void main() {
  final DiContainer application = DiContainer.build((final DiBinder binder) {
    binder.bindInstance<GreetingRepository>(const GreetingRepository());
  });

  runApp(
    DiRootScope(
      container: application,
      child: const Directionality(
        textDirection: TextDirection.ltr,
        child: GreetingFeature(),
      ),
    ),
  );
}

final class GreetingFeature extends StatelessWidget {
  const GreetingFeature({super.key});

  @override
  Widget build(final BuildContext context) => DiScope(
    configure: (final DiBinder binder) {
      binder.bindInstance<FeatureName>(const FeatureName('Ark DI Flutter'));
    },
    child: const GreetingView(),
  );
}

final class GreetingView extends StatelessWidget {
  const GreetingView({super.key});

  @override
  Widget build(final BuildContext context) {
    final GreetingRepository repository = context.di.get<GreetingRepository>();
    final FeatureName feature = context.di.get<FeatureName>();
    return Center(child: Text(repository.greetingFor(feature.value)));
  }
}

final class GreetingRepository {
  const GreetingRepository();

  String greetingFor(final String feature) => 'Hello from $feature.';
}

final class FeatureName {
  const FeatureName(this.value);

  final String value;
}
0
likes
160
points
--
downloads

Documentation

Documentation
API reference

Publisher

verified publisherarktelos.dev

Weekly Downloads

Flutter scopes and BuildContext access for Ark DI dependency containers.

Homepage
Repository (GitLab)
View/report issues

Topics

#architecture #dependency-injection #flutter #inversion-of-control

License

Apache-2.0 (license)

Dependencies

ark_di, flutter

More

Packages that depend on ark_di_flutter