Service Locator
GetIt registration
Overview
GetIt instance ('sl') registered in main.dart before runApp. Wires up Dio, secure storage, data sources, repositories and use cases as singletons / factories.
User Flow
- main() → await configureDependencies(sl).
- Registers Dio, FlutterSecureStorage as singletons.
- Registers AuthRemoteDataSource + AuthLocalDataSource (singleton).
- Registers AuthRepository → AuthRepositoryImpl (singleton).
- Registers Login/Register/Logout/Reset use cases (factory).
- AuthBinding later does Get.lazyPut(AuthController(sl(), sl(), sl(), sl())).
Cases & Edge Cases
- Test setup overrides registrations with mocks via sl.allowReassignment = true.
- Hot-reload reuses the existing registrations — guard with sl.isRegistered<T>() before re-register.
Code References
- lib/core/di/service_locator.dart
- lib/main.dart:14 // configureDependencies(sl)
API Calls
Empty — fill this in later. Open the manifest and add content here.
Notes
GetIt owns construction; GetX owns lifecycle for controllers. Don't put controllers in GetIt — bindings handle them.