TGViewer
Flutter. Много Flutter. Много @flutter_amiga · 2.96K subscribers
Post #258 2.65K
Hola, Amigos! На связи Саша Чаплыгин, Flutter dev Amiga. Сегодня расскажу про пакет get_it для управления зависимостями в приложении. Он основан на паттерне «Service Locator», что позволяет создавать и регистрировать зависимости в централизованном контейнере и получать доступ к ним из любой части приложения.

Покажу, как использовать пакет на примере регистрации синглтона.


/// code above
runApp(const VnApp());
}, (e, s) async {});
}

class VnApp extends StatefulWidget {
const VnApp({super.key});

@override
State<VnApp> createState() => _VnAppState();
}

class _VnAppState extends State<VnApp> {
GetIt getIt = GetIt.instance;


Затем используем MultiRepositoryProvider и RepositoryProvider из пакета flutter_bloc для того, чтобы мы смогли обратиться к синглтону из любой части приложения. Переменная router у нас отвечает за навигацию с пакетом go_router.


MultiRepositoryProvider(
providers: [
RepositoryProvider(create: (context) => getIt),
RepositoryProvider(create: (context) => router),
],


И в initState «регистрируем» синглтон.


getIt.registerSingleton(router);
var storage = StorageRepository();
getIt.registerSingleton<StorageRepository>(storage);


Теперь, находясь на любой странице приложения, мы можем обратиться к нужному нам репозиторию с помощью context.read<GetIt>().get<…>().


class MainPage extends StatelessWidget {
const MainPage({super.key});

@override
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => MainBloc(
pageState: PageState(),
mainRepository: context.read<GetIt>().get<MainRepository>(),
profileRepository: context.read<GetIt>().get<ProfileRepository>(),
),


Get It — надежный инструмент для управления зависимостями в ваших приложениях Flutter, обеспечивая удобство, эффективность и чистоту кода.

Пишите о вашем опыте с Get It в чате!
  • 👎 30
  • ❤ 9
  • 👍 8
  • 🔥 3
  • 💩 3
  • 🥰 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 →