arch-atlas

Service Locator

GetIt registration

di

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

  1. main() → await configureDependencies(sl).
  2. Registers Dio, FlutterSecureStorage as singletons.
  3. Registers AuthRemoteDataSource + AuthLocalDataSource (singleton).
  4. Registers AuthRepository → AuthRepositoryImpl (singleton).
  5. Registers Login/Register/Logout/Reset use cases (factory).
  6. 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.