Что это простыми словами

GoRouter — это система переходов между экранами в мобильном приложении на Flutter.

Аналогия: представьте многоэтажное здание без указателей и карты. Чтобы попасть из комнаты в комнату, каждый раз нужно запоминать путь, а кнопка «назад» не работает — непонятно, куда возвращаться. GoRouter — это дорожные указатели и умный лифт: вы задаёте карту здания один раз, а дальше система сама ведёт пользователя, запоминает маршрут и знает, куда вернуться по кнопке «назад».

В приложении десятки экранов, и пользователь постоянно между ними перемещается. GoRouter организует эти переходы так, чтобы разработчику не приходилось каждый раз писать одинаковый код.

Официальное определение

Теперь, когда суть понятна, вот как GoRouter описывают в вакансиях и документации. Эту формулировку вы встретите у заказчика и в резюме — и теперь будете понимать, что за ней стоит.

«GoRouter — декларативная библиотека маршрутизации для Flutter, реализующая URL-based навигацию с поддержкой deep linking и навигационного стека».

Разберём по словам. «Декларативная» означает, что вы заранее описываете карту переходов, а не пишете команды «перейди туда-то» в каждом месте кода. «Маршрутизация» — организация переходов между экранами. «URL-based навигация» — адреса экранов задаются как ссылки, например /profile или /orders/123. «Deep linking» — возможность открыть нужный экран приложения сразу по ссылке извне, минуя главный экран. «Навигационный стек» — «стопка» экранов, по которой можно вернуться назад кнопкой.

Какую задачу решает

Навигация — обязательная часть любого приложения с несколькими экранами. Без библиотеки вроде GoRouter разработчику приходится каждый переход писать вручную: открыть корзину, открыть детали товара, вернуться назад. Это скучно, однообразно и легко запутаться.

GoRouter берёт эту рутину на себя: вы один раз описываете, какие экраны есть и как они связаны, а дальше просто указываете адрес — библиотека сама откроет нужный экран, запомнит путь и обработает кнопку «назад». Плюс она умеет открывать экран по ссылке извне — например, когда пользователь кликнул на уведомление.

К какой экосистеме относится

GoRouter — официально рекомендуемая командой Flutter библиотека для навигации. Это не значит, что она единственная, но если в резюме вы видите Flutter-разработчика с GoRouter — это актуальный подход.

Чем заменяется

GoRouter — не единственный способ организовать переходы во Flutter. Ту же задачу решают:

Главное: переход между библиотеками навигации дешёвый. Разработчик, который работал с GoRouter, разберётся в auto_route за считаные дни — задача одна, меняется лишь способ её описания.

Что не путать

Насколько это важно при отборе

Короткий ответ: обычно это НЕ повод отбраковывать кандидата.

Навигация — обязательная часть любого приложения, и каждый Flutter-разработчик с ней работал. Но требовать именно GoRouter, если у кандидата в резюме auto_route или опыт с Navigator, — ошибка. Он освоит GoRouter за несколько дней, потому что задача та же.

Правильный подход: смотрите, есть ли у кандидата опыт с любой системой навигации во Flutter. Если есть — этого достаточно. Если в вакансии жёстко написано «только GoRouter», уточните у нанимающего менеджера, действительно ли это принципиально.

Когда всё же стоит обратить внимание: если кандидат пишет, что у него Flutter, но нигде не упоминает навигацию вообще — это повод спросить, как он организовывал переходы между экранами в проектах. Отсутствие опыта с навигацией в принципе — странно для мобильного разработчика.

Это общий ориентир. В разных компаниях требования отличаются, поэтому всегда сверяйтесь с текстом конкретной вакансии.