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

Navigation Component — это дорожная карта внутри мобильного приложения. Она указывает, куда ведут кнопки и какие экраны следуют друг за другом.

Аналогия: представьте музей с десятками залов. Посетитель нажимает кнопку «Далее» — и ему нужно попасть в следующий зал, причём с правильными данными на табличке. Navigation Component — это схема музея, где прописано, из какого зала в какой ведёт дверь, что показывать на входе и как вернуться обратно. Без такой схемы разработчик вручную прописывает каждый переход, и это быстро превращается в путаницу.

Эта библиотека — часть набора инструментов Android Jetpack, который Google рекомендует для разработки Android-приложений.

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

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

«Navigation Component — библиотека для управления навигацией между destinations в Android-приложении, обеспечивающая type-safe передачу аргументов и централизованное описание navigation graph».

Разберём по словам. «Destinations» (дестинации) — это экраны или их части, между которыми перемещается пользователь. «Type-safe передача аргументов» значит, что данные из одного экрана на другой передаются с проверкой типа на этапе написания кода, а не в момент запуска — это ловит ошибки раньше. «Navigation graph» — визуальная схема всех экранов и связей между ними, которую можно посмотреть в редакторе, а не искать по коду.

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

Когда в приложении два-три экрана, переходы можно прописать вручную. Но чем больше экранов, тем сложнее держать в голове, кто куда ведёт. Navigation Component убирает эту боль: вся навигация в одном месте, в виде схемы.

Ещё одна задача — передача данных между экранами. Например, пользователь выбрал товар, нажал «Купить», и на следующий экран нужно передать ID этого товара. Navigation Component делает это безопасно: если разработчик попытается передать не тот тип данных, код просто не скомпилируется, и ошибка не доберётся до пользователя.

Третья польза — поддержка deep links, то есть возможность открыть конкретный экран приложения по ссылке извне, например из уведомления или email.

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

Рядом с Navigation Component в резюме часто встречаются другие библиотеки Jetpack: ViewModel (управление данными на экране), LiveData (отслеживание изменений данных), Room (локальная база данных), Hilt (внедрение зависимостей). Это признак того, что разработчик работает с современным Android-стеком.

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

Прямых аналогов у Navigation Component почти нет — это официальное решение от Google, и в новых проектах обычно используют именно его.

Альтернативы, которые встречаются реже:

Переход между способами навигации дешёвый: если разработчик работал с ручной навигацией или с Cicerone, он освоит Navigation Component за несколько дней. Задача одна, меняется только подход.

Что не путать

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

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

Navigation Component — это библиотека, а не фундаментальный навык. Если у кандидата есть опыт Android-разработки, но в резюме не указан Navigation Component, это не значит, что он не подходит. Возможно, он работал с более старыми проектами, где навигация была ручной, или использовал другие подходы. Освоить Navigation Component он сможет за считаные дни.

Правильный подход: смотрите на опыт с Android в целом. Если кандидат писал приложения и управлял переходами между экранами — неважно, каким способом, — он справится и с Navigation Component.

Когда всё же стоит обратить внимание: если вакансия требует работы с большим современным Android-проектом на Jetpack, а у кандидата вообще нет опыта с библиотеками Jetpack (ни Navigation Component, ни ViewModel, ни Room) — это повод спросить, с каким стеком он работал. Но отсутствие одной конкретной библиотеки — не причина отказывать.

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