simple_injector 0.1.2 copy "simple_injector: ^0.1.2" to clipboard
simple_injector: ^0.1.2 copied to clipboard

discontinued
outdated

Inject your dependencies simply and quickly. The dependency is created in the measure that it is injected.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:simple_injector/simple_injector.dart';
import 'package:simple_injector_demo/bloc_modulo.dart';
import 'package:simple_injector_demo/repository_modulo.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  MyApp() {
    SimpleInjector.configure(Flavor.PROD, showDebug: true);
    SimpleInjector().registerModule(RepositoryModulo());
    SimpleInjector().registerModule(BlocModulo());
  }
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  RepositoryTest repository = SimpleInjector().inject();
  RepositoryTest2 repository2 = SimpleInjector().inject();

  Bloc1 bloc1 = SimpleInjector().inject();
  Bloc2 bloc2 = SimpleInjector().inject();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            Text(repository.getTest()),
            Text(repository2.getTest2()),
            Container(
              height: 20.0,
            ),
            Text(bloc1.teste()),
            Text(bloc2.teste())
          ],
        ),
      ),
    );
  }
}

///RepositoryTest
abstract class RepositoryTest {
  String getTest();
}

class RepositoryTestImpl implements RepositoryTest {
  @override
  String getTest() {
    return "Call RepositoryTest!!!";
  }
}

///RepositoryTest2
abstract class RepositoryTest2 {
  String getTest2();
}

class RepositoryTest2Impl implements RepositoryTest2 {
  final RepositoryTest r;

  RepositoryTest2Impl(this.r);

  @override
  String getTest2() {
    return "Call RepositoryTest2!!!\n${r.getTest()}";
  }
}

///Bloc1
class Bloc1 {
  final RepositoryTest repo;

  Bloc1(this.repo);

  String teste() {
    return "BLOC1: ${repo.getTest()}";
  }
}

///Bloc2
class Bloc2 {
  final RepositoryTest2 repo;

  Bloc2(this.repo);

  String teste() {
    return "BLOC2: ${repo.getTest2()}";
  }
}
0
likes
40
pub points
0%
popularity

Publisher

unverified uploader

Inject your dependencies simply and quickly. The dependency is created in the measure that it is injected.

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

flutter

More

Packages that depend on simple_injector