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

Он поддерживает deeplinks, с помощью которых можно открыть приложение на необходимой странице: например ссылка в письме, ведущая на сделанный пользователем заказ. А также Route Guard, который создатели библиотеки сравнивают с интерсептором для навигации, но о нем чуть позже.

Для создание конфигурации роутера необходимо создать класс роутера:


@AutoRouterConfig()
class AppRouter extends $AppRouter {

@override
List<AutoRoute> get routes => [
AutoRoute(page: HomeRoute.page),
];
}


Для получения HomeRoute, необходимо пометить аннотацией RoutePage HomeScreen. Причем в стандартной настройке Screen и Page в названии страницы заменяются на Route.


@RoutePage()
class HomeScreen extends StatefulWidget {}


В роуты также можно передавать параметры, при этом сохраняются стандартные значения и учитывается наличие поля required.


context.router.push(BookRoute(bookId: id));


Для того, что бы им можно было пользоваться, необходимо добавить роутер в приложение:


final _appRouter = AppRouter();



@override
Widget build(BuildContext context){
return MaterialApp.router(
routerConfig: _appRouter.config(),
);
}


Далее с помощью extension над context можем получать router, имеющий такое же api как у navigator и так же использует навигацию через стек.

– maybePop — по возможности убирает последний роут из стека.
– push — добавляет в стек новый роут.
– replace — заменяет текущий роут на другой. При этом не меняет стек роутов.
– remove — убирает определенный роут из стека.
– navigate — если роут в стеке, убирает роуты до того, как попадется необходимый или добавляет роут в стек.

Большая часть остальных методов является просто комбинацией из этих 5-ти. Всем хорошего кода!

Делитесь в чате своим опытом работы с библиотекой.
  • 🔥 8
  • 👍 5
  • 👏 3
  • 👎 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 →