0 purchases
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
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.