这是CaiYouHui前端,一个关于flutter的安卓app,前端使用flutter实现

injection_container.dart 1.2KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import 'package:get_it/get_it.dart';
  2. import 'package:shared_preferences/shared_preferences.dart';
  3. import 'package:http/http.dart' as http;
  4. import 'data/datasources/local/shared_prefs.dart';
  5. import 'data/datasources/remote/api_client.dart';
  6. import 'data/repositories/auth_repository.dart';
  7. import 'data/repositories/user_repository.dart';
  8. import 'presentation/providers/auth_provider.dart';
  9. import 'presentation/providers/user_provider.dart';
  10. final GetIt sl = GetIt.instance;
  11. Future<void> init() async {
  12. // External dependencies
  13. final sharedPreferences = await SharedPreferences.getInstance();
  14. sl.registerLazySingleton(() => sharedPreferences);
  15. // HTTP Client
  16. sl.registerLazySingleton(() => http.Client());
  17. // Data sources
  18. sl.registerLazySingleton(() => SharedPrefs(sl()));
  19. sl.registerLazySingleton(() => ApiClient(sl()));
  20. // Repositories
  21. sl.registerLazySingleton(() => AuthRepository(
  22. apiClient: sl(),
  23. prefs: sl(),
  24. ));
  25. sl.registerLazySingleton(() => UserRepository(
  26. apiClient: sl(),
  27. ));
  28. // Providers
  29. sl.registerFactory(() => AuthProvider(authRepository: sl()));
  30. sl.registerFactory(() => UserProvider(userRepository: sl()));
  31. }