dartin

Creator: coderz1093

Last updated:

Add to Cart

Description:

dartin

dartin #

A pragmatic lightweight dependency injection framework for Flutter developers.
A light container inspired by flutter-provide and koin.
more examples see mvvm_flutter.
Setup #
dependencies:
dartin: ^0.1.0

copied to clipboard
Key methods #


single:Creates a provider which will initialize using the [_DartInFunction]
the first time the value is requested.


factory:Creates a provider that provides a new value using the [_DartInFunction] for each
requestor of the value.


inject:get T from dartIns by T.runtimeType and params


more informations see dartin.dart.
Getting Started #


declare dartin modules


//scope should always be initialized as a static const and passed around.
const test = DartInScope('test');

final viewModelModule = Module([
factory<HomeProvide>(({params}) => HomeProvide(params.get(0), get<GithubRepo>())),
])
..withScope(test , [
///other scope
factory<HomeProvide>(({params}) => HomeProvide(params.get(0), get<GithubRepo>())),
]);

final repoModule = Module([
single<GithubRepo>(({params}) => GithubRepo(get<GithubService>())),
]);

final remoteModule = Module([
single<GithubService>(({params}) => GithubService()),
]);

final appModule = [viewModelModule, repoModule, remoteModule];

copied to clipboard


Start dartin


void main() {
startDartIn(appModule);
runApp(MyApp());
}
copied to clipboard


inject


//default
final service = inject<GithubService>();
//pass parameters
final test = inject<HomeProvide>(params: ['title']);
//different scope
final test = inject<HomeProvide>(scope:test,params: ['title']);

copied to clipboard
DartIn is easy to use, and still improving.
🍺 welcome to fork and pull request。
Article #
【Medium】:DartIn:A pragmatic lightweight dependency injection framework for Flutter developers
【简书】:为Flutter而生的轻量级依赖检索容器—DartIn
【掘金】:为Flutter而生的轻量级依赖检索容器—DartIn
Licence #
BSD

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files:

Customer Reviews

There are no reviews.