Что такое Android Jetpack и как быстро начать в Android Studio
Jetpack — это набор библиотек и инструментов от Google, упрощающих архитектуру, UI, работу с данными и жизненным циклом приложения. Ответ: чтобы начать, создайте проект в Android Studio (Kotlin), подключите базовые зависимости (Compose, Lifecycle/ViewModel, Room, Hilt), включите kapt и синхронизируйте Gradle — после этого можно писать UI в Compose и управлять данными через ViewModel/Room.
Что входит в Jetpack и почему это важно
Jetpack разделён на группы: UI (Compose), архитектура (ViewModel, LiveData, Paging), поведение (Navigation, WorkManager) и Foundation (Room, Security, Test). Ключевые преимущества:
- Меньше boilerplate — фокус на бизнес-логике.
- Совместимость с разными версиями Android.
- Интеграция с Kotlin (корутины, Flow) и Android Studio.
В 2026 году базовый стек для новых проектов: Compose (UI), Hilt (внедрение зависимостей), Room (локальная БД), Navigation Compose. Начните с этого набора — он покрывает 80% задач.
Для новых проектов соединение Compose + Hilt + ViewModel даёт быстрый и масштабируемый старт.
Быстрый старт: как подключить Jetpack в Android Studio
- Создайте проект: File → New → New Project → Empty Activity (Kotlin).
- Включите плагины в module build.gradle.kts:
plugins {
id("com.android.application")
kotlin("android")
kotlin("kapt")
id("dagger.hilt.android.plugin")
}
- Добавьте минимальные зависимости (обновляйте версии под актуальные):
// Compose
implementation("androidx.compose.ui:ui:1.6.4")
implementation("androidx.activity:activity-compose:1.9.0")
// ViewModel + Lifecycle
implementation("androidx.lifecycle:viewmodel-compose:2.8.3")
// Room
implementation("androidx.room:room-runtime:2.6.1")
kapt("androidx.room:room-compiler:2.6.1")
// Hilt
implementation("com.google.dagger:hilt-android:2.51")
kapt("com.google.dagger:hilt-compiler:2.51")
// Navigation для Compose
implementation("androidx.navigation:navigation-compose:2.8.0")
- В проектном build.gradle включите репозитории: google(), mavenCentral().
- Настройте Hilt: аннотация @HiltAndroidApp для Application и подключение плагина в Gradle.
- В Activity используйте setContent { /* Compose UI */ } и hiltViewModel() в композициях.
Не забудьте kotlin-kapt для Room и Hilt — без kapt кодогенерация не сработает и сборка упадёт.
Короткий пример: TODO-лист (суть, без полного кода)
Entity:
@Entity
data class Task(@PrimaryKey val id: Int, val title: String, val done: Boolean)
DAO:
@Dao
interface TaskDao {
@Query("SELECT * FROM task")
fun getAll(): Flow<List<Task>>
}
Database:
@Database(entities = [Task::class], version = 1)
abstract class AppDatabase : RoomDatabase() { abstract fun taskDao(): TaskDao }
ViewModel (Hilt):
@HiltViewModel
class TaskViewModel @Inject constructor(private val dao: TaskDao): ViewModel() {
val tasks = dao.getAll().stateIn(viewModelScope, SharingStarted.Lazily, emptyList())
}
Compose UI:
@Composable
fun MainScreen(vm: TaskViewModel = hiltViewModel()) {
val tasks by vm.tasks.collectAsState()
LazyColumn { items(tasks) { Text(it.title) } }
}
Запуск показывает список из базы; дальше можно добавить навигацию и пагинацию.
Лучшие практики и переход с XML
- Архитектура: MVVM + репозитории; ViewModel держит UI‑state, Repository — данные.
- Миграция: используйте Compose Interop (AndroidView) для поэтапного перехода.
- Тестирование: JUnit + ComposeTestRule для UI; протестируйте ViewModel и DAO отдельно.
- Производительность: профилируйте, следите за recomposition; используйте Lazy списки и оптимизации изображений.
- Планируйте миграцию к мультиплатформенному Compose, если нужна reuse логики между платформами.
Поддерживайте зависимости актуальными: проверяйте release notes и обновляйте версии библиотек.
Частые ошибки
- Забыт kapt — кодогенерация падает.
- Несоответствие версий Compose и activity-compose — конфликт сборки.
- Использование блокирующих операций в UI-потоке (нужны корутины/Flow).
- Хранение бизнес-логики во View/Activity вместо Repository/ViewModel.
FAQ
- Как быстро добавить Hilt? — Добавьте плагин, зависимости и аннотируйте Application как @HiltAndroidApp.
- Нужно ли переходить на Compose сразу? — Можно мигрировать по частям; Compose Interop помогает совмещать XML и Compose.
- Как хранить данные офлайн? — Room + Flow/Coroutines + Repository.
- Где мониторить обновления Jetpack? — В релиз-нотах AndroidX библиотек и анонсах Google: следите за версиями зависимостей.
Если нужно, подготовлю готовый рабочий проект с этими компонентами и файлами Gradle.