get-it-expert
Expert guidance on get_it service locator and dependency injection for Flutter/Dart. Covers registration (singleton, factory, lazy, async), scopes with shadowing, async initialization with init() pattern, retrieval, testing with scope-based mocking, and production patterns. Use
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Expert guidance on get_it service locator and dependency injection for Flutter/Dart. Covers registration (singleton, factory, lazy, async), scopes with shadowing, async initialization with init() pattern, retrieval, testing with scope-based mocking, and production patterns. Use when working with get_it, dependency injection, service registration, scopes, or async initialization.
How to use
Zainstaluj umiejętność get-it-expert w swoim środowisku agenta lub IDE obsługującym MCP skills. Umiejętność będzie dostępna jako asystent ekspertowy do pytań o get_it.
Przed rozpoczęciem pracy zarejestruj wszystkie usługi w funkcji configureDependencies() i wywołaj ją PRZED runApp(). Użyj registerSingleton() dla obiektów tworzonych od razu, registerLazySingleton() dla leniwego ładowania, registerFactory() dla nowych instancji przy każdym dostępie.
Gdy potrzebujesz asynchronicznej inicjalizacji, użyj pushNewScopeAsync() zamiast synchronicznego pushNewScope(). Pamiętaj, że popScope() zwraca Future i wymaga await.
Po zarejestrowaniu async singletonów czekaj na allReady() (zwraca Future), aby upewnić się, że wszystkie usługi są gotowe. Po tym dostęp do nich odbywa się normalnym getIt
() bez getAsync(). Podczas testowania wykorzystaj scope-based mocking – pushNewScope() pozwala na tymczasowe przesłonięcie usług bez wpływu na globalny stan. Pamiętaj, że dispose callbacki są parametrem metod rejestracji, nie osobnymi metodami.
Pytaj umiejętność o konkretne scenariusze: rejestrację z parametrami, obsługę StreamControllera z dispose, wzorce produkcyjne lub rozwiązywanie problemów z zakresami i asynchroniczną inicjalizacją.