TGViewer
Flutter. Много Flutter. Много @flutter_amiga · 2.96K subscribers
Post #283 2.1K
Hola, Amigos! На связи Михаил Чернецов, Flutter dev в Amiga. Сегодня поговорим про Injectable — мощный пакет для управления зависимостями в приложении.

Injectable является оберткой над GetIt и помогает создавать Dependency Injection (DI) с помощью кодогенерации, избавляя от необходимости вручную редактировать файл с зависимостями ⚙️

GetIt — это популярный service locator, который позволяет централизованно управлять зависимостями в приложении. Однако, некоторые считают service locator антипаттерном, так как он может нарушать принципы SOLID и инкапсуляции.

Основные возможности Injectable

Injectable создает файл, который автоматически регистрирует сервисы, синглтоны и модули. Для добавления модуля достаточно пометить класс аннотацией @injectable. Этот класс затем будет доступен через GetIt.instance<YourService>(). Вы также можете объявить синглтоны с помощью аннотаций @singleton и @lazysingleton.

Пример использования

Чтобы подключить сторонние зависимости, такие как dio или shared_preferences, создайте класс ServicesInjectionModule и пометьте его аннотацией @module. Если вам нужно дождаться завершения фабрики, возвращающей future, используйте аннотацию @preResolve:


@preResolve
Future<SharedPreferences> get sharedPreferences => SharedPreferences.getInstance();


Многомодульность

Injectable поддерживает многомодульность. Чтобы создать файл в модуле, используйте:


@InjectableInit.microPackage()
void initMicroPackage() {}


Это создаст FeaturePackageModule, который нужно будет добавить в externalPackageModules приложения.

Injectable предлагает гибкие настройки, позволяя управлять последовательностью создания зависимостей в случае необходимости ⚙️

Будем рады вашим вопросам и обсуждениям в чате!
  • 🔥 5
  • 👍 3
  • ❤ 2
  • 💩 2
  • 👎 1
  • 👏 1
More from @flutter_amiga
  1. Sep 9, 2026AI BOOST’26: выручка падает — что делают крупные digital-агентства и при чем здесь AI 22–2…
  2. Aug 18, 2026Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead в Amiga. Сегодня посмотрим на чек-…
  3. Aug 13, 2026Hola, Amigos! Сегодня вышли Flutter 3.47 и Dart 3.13. Давайте вместе разберемся, что в них…
  4. Jul 31, 2026Дайджест июля Hola, Amigos! Собрали в одну подборку все полезные посты июля, которые вы мо…
  5. Jul 28, 2026Hola, Amigos! Сегодня посмотрим на один пакет, который может быть полезен в разработке - p…
  6. Jul 24, 2026Hola, Amigos! Сегодня мы вводим новую рубрику - обзоры правил для статического анализатора…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →