dart_ddi 0.6.3 copy "dart_ddi: ^0.6.3" to clipboard
dart_ddi: ^0.6.3 copied to clipboard

A Dependency Injection package, with Qualifier, Decorators, Interceptors, Events and more. Inspired by Java CDI and get_it.

example/lib/main.dart

import 'dart:io';

import 'package:dart_ddi/dart_ddi.dart';
import 'package:dio_cache_interceptor/dio_cache_interceptor.dart';
import 'package:dio_cache_interceptor_objectbox_store/dio_cache_interceptor_objectbox_store.dart';
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart' as pp;
import 'package:perfumei/common/constants/injection_constants.dart';
import 'package:perfumei/config/theme/dark.dart';
import 'package:perfumei/config/theme/light.dart';
import 'package:perfumei/pages/home/cubit/home_cubit.dart';
import 'package:perfumei/pages/home/view/home_page.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  //unawaited(WakelockPlus.enable());

  //Injection.start();

  ddi.registerObject<String>('https://fgvi612dfz-dsn.algolia.net',
      qualifier: InjectionConstants.url);

  ddi.registerSingleton<GlobalKey<NavigatorState>>(
      () => GlobalKey<NavigatorState>());

  ddi.registerObject<bool>(
      WidgetsBinding.instance.platformDispatcher.platformBrightness ==
          Brightness.dark,
      qualifier: InjectionConstants.darkMode);

  ddi.registerDependent<HomeCubit>(HomeCubit.new);

  await ddi.registerSingleton<CacheStore>(() async {
    final Directory dir = await pp.getTemporaryDirectory();
    return ObjectBoxCacheStore(storePath: dir.path);
  });

  runApp(const MyApp());
}

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

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Perfumei',
      navigatorKey: ddi(),
      debugShowCheckedModeBanner: false,
      //Git Request to make it default
      theme: LigthTheme.getTheme(),
      darkTheme: DarkTheme.getTheme(),
      // If you do not have a themeMode switch, uncomment this line
      // to let the device system mode control the theme mode:
      //themeMode: ThemeMode.system,
      home: const HomePage(),
    );
  }
}
0
likes
0
pub points
16%
popularity

Publisher

unverified uploader

A Dependency Injection package, with Qualifier, Decorators, Interceptors, Events and more. Inspired by Java CDI and get_it.

Repository (GitHub)
View/report issues

Topics

#dependency-injection #di #injection #java #cdi

License

unknown (license)

More

Packages that depend on dart_ddi