Что это простыми словами
Hilt — это автоматический поставщик готовых деталей для Android-приложения.
Аналогия: представьте сборочный цех, где рабочий на каждом этапе сам бегает по складам за нужными деталями — ищет болты, гайки, микросхемы. Теперь представьте, что появился склад с умным роботом: вы говорите «мне нужен двигатель для модели X», и он сам приносит правильный двигатель, уже собранный и подключённый ко всем нужным проводам. Hilt — это такой робот-поставщик для кода.
В приложении одни части кода нуждаются в других: экран входа нуждается в модуле проверки пароля, модуль проверки — в базе данных пользователей. Hilt автоматически создаёт эти части и подаёт их туда, где нужно, избавляя разработчика от ручной сборки.
Официальное определение
Теперь, когда суть понятна, вот как Hilt описывают в вакансиях и документации. Эту формулировку вы встретите у заказчика и в резюме — и теперь будете понимать, что за ней стоит.
«Hilt — библиотека для dependency injection в Android, построенная поверх Dagger 2 и интегрированная с Android Jetpack».
Разберём по словам. «Dependency injection» (внедрение зависимостей) — это как раз та самая автоматическая доставка деталей: вместо того чтобы каждая часть кода сама создавала то, что ей нужно, система подаёт готовое. «Dagger 2» — это предшественник Hilt, более сложный и мощный инструмент для той же задачи; Hilt упрощает его для Android. «Android Jetpack» — официальный набор готовых модулей от Google для упрощения разработки под Android.
Какую задачу решает
Без Hilt разработчик вручную создаёт нужные объекты в каждом месте, где они понадобились. Это приводит к трём проблемам:
Много повторяющегося кода — одно и то же приходится писать в десятках мест.
Сложно тестировать — чтобы проверить один кусочек кода, нужно создать всю цепочку зависимостей.
Части кода слишком сильно связаны между собой — изменить одно становится трудно, не поломав другое.
Hilt решает эти проблемы: он сам создаёт объекты, следит за их жизненным циклом и подаёт туда, где нужно. Разработчик просто помечает, что и куда должно попасть, а Hilt делает остальное.
К какой экосистеме относится
Язык — Kotlin (и Java, но в современных проектах почти всегда Kotlin).
Платформа — Android. Hilt создан именно для Android-разработки.
Фреймворк — Android Jetpack, официальный набор библиотек от Google.
Специальность — Android-разработчик.
Hilt работает в связке с другими компонентами Jetpack: ViewModel (управление данными экрана), Room (работа с базой данных), Navigation Component (навигация между экранами). В резюме вы часто увидите Hilt рядом с этими названиями.
Чем заменяется
Ту же задачу — внедрение зависимостей — решают несколько инструментов:
Dagger 2 — предшественник Hilt, более мощный, но сложнее в настройке. Hilt построен поверх Dagger и упрощает его для Android.
Koin — лёгкая альтернатива, написанная специально для Kotlin. Проще в изучении, чем Hilt или Dagger.
Kodein — ещё одна библиотека для Kotlin, встречается реже.
Ручное внедрение зависимостей — когда разработчик сам создаёт и передаёт объекты без библиотек. Подходит для маленьких проектов.
Главное: переход между этими инструментами относительно дешёвый. Разработчик, который работал с Koin, освоит Hilt за пару недель — идея у них одна, различаются способы настройки. Это не разные профессии, а разные подходы к одной задаче.
Что не путать
Hilt ≠ Dagger 2. Хотя Hilt построен на основе Dagger, это разные библиотеки с разным синтаксисом. Hilt проще и заточен под Android, Dagger универсальнее.
Hilt ≠ Jetpack. Jetpack — это набор из десятков библиотек, Hilt — лишь одна из них.
Hilt ≠ ViewModel, Room или другие компоненты Jetpack. Это разные инструменты для разных задач, хотя они работают вместе.
Hilt — только для Android, не для бэкенда. Хотя язык Kotlin используется и на сервере, Hilt создан исключительно для мобильных Android-приложений.
Насколько это важно при отборе
Короткий ответ: обычно это НЕ повод отбраковывать кандидата.
Самая частая ошибка новичка-рекрутера — искать строго «Android + Hilt» и отсеивать сильного разработчика, у которого в резюме указан Koin или Dagger. Человек с опытом работы с любым DI-инструментом освоит Hilt за считаные недели, потому что задача одна и та же. Отсеивая по конкретной библиотеке, вы теряете хороших кандидатов и затягиваете поиск.
Правильный подход: смотрите, есть ли у кандидата опыт с любым инструментом для внедрения зависимостей — Hilt, Dagger, Koin, Kodein. Если есть — этого достаточно. Если в вакансии жёстко написано «только Hilt», уточните у нанимающего менеджера, действительно ли это критично: часто оказывается, что нет.
Когда стоит обратить внимание: если у кандидата вообще нигде не упомянут ни один DI-инструмент, а вакансия предполагает средний или большой проект — это повод спросить, как он управлял зависимостями. Для серьёзного Android-приложения опыт с dependency injection почти необходим.
Это общий ориентир. В разных компаниях требования отличаются, поэтому всегда сверяйтесь с текстом конкретной вакансии.