import 'package:itasmob/data/data_source/remote_data_source.dart'; import 'package:itasmob/data/network/app_api.dart'; import 'package:itasmob/data/network/dio_factory.dart'; import 'package:itasmob/data/network/network_info.dart'; import 'package:itasmob/data/repository/repository_impl.dart'; import 'package:itasmob/domain/repository/repository.dart'; import 'package:itasmob/domain/usecase/get_news_usecase.dart'; import 'package:itasmob/presentation/home/home_vm.dart'; import 'package:data_connection_checker_tv/data_connection_checker.dart'; import 'package:get_it/get_it.dart'; final instance = GetIt.instance; Future initAppModule() async { // network info instance.registerLazySingleton( () => NetworkInfoImpl(DataConnectionChecker())); // dio factory instance.registerLazySingleton(() => DioFactory()); // app service client final dio = await instance().getDio(); instance.registerLazySingleton(() => AppServiceClient(dio)); // remote data source instance.registerLazySingleton( () => RemoteDataSourceImplementer(instance())); // repository instance.registerLazySingleton( () => RepositoryImpl(instance(), instance(),)); } initHomeModule() { if (!GetIt.I.isRegistered()) { instance.registerFactory(() => GetNewsUseCase(instance())); instance.registerFactory(() => HomeViewModel(instance())); } } resetModules() { instance.reset(dispose: false); initAppModule(); initHomeModule(); }