TGViewer
Mobile Native ️️ Mobile Native ️️ @mobile_native · 5.38K subscribers
Post #543 4.3K
Управление зависимостями в Android

Иногда работаю на part time над разными проектами и всегда обращаю внимание на то, как устроена работа с gradle и зависимостями. Способов управлять зависимостями как вы знаете существует несколько, вот и решил набросать пост на эту тему.

Давайте вкратце обрисуем ситуации.

Если у вас приложение монолит, то по сути можно не заморачиваться, зависимости можно закинуть куда-нибудь в ext build.gradle проекта и использовать потом в модуле. Либо вообще руками прописывать все зависимости непосредственно в модуле. Самый простой и древний способ.

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

Способ 1 – Kotlin код + kts. Достаточно распространенный способ, который встречается во многих проектах. Есть некоторые проблемы c перформансом.

Как подрубить? В проект нужно добавить модуль buildSrc, подрубить к нему kotlin-dsl и можно объявлять зависимости в обычном, привычном Kotlin коде.

object Deps {
const val androidxAppCompat = "…"
}


А затем в
build.gradle.kts
можно обращаться вот так

dependencies {
implementation(Deps.androidxAppCompat)
}


Посмотреть пример можно тут, тут и здесь.

Способ 2 – Version Catalog. В Gradle 7.0 добавили новую фичу Version Catalog. С помощью Version Catalog можно подключать несколько зависимостей одной строкой, предварительно объявив нужные зависимости в одну группу/бандл.

Как подрубить? В gradle, которая лежит в корне проекта нужно добавить файлик libs.versions.toml, в котором и объявляются зависимости в определенном формате.

А затем в
build.gradle.kts
можно обращаться вот так

dependencies {
implementation(libs.compose)
}


Посмотреть пример можно тут, тут и здесь

Полезные ссылки

👉 Using Version Catalog on Android projects
👉 Clean Dependency Management in Multi Module Android Projects
👉 Gradle version catalogs for an awesome dependency management
👉 Migrate from Groovy to Kotlin DSL
👉 The New Way of Writing Build Gradle with Kotlin DSL
👉 Kotlin DSL: Gradle scripts in Android made easy
👉 Stop using Gradle buildSrc. Use composite builds instead
👉 GitHub – Android-Starter-2022
👉 GitHub – Now in Android App
👉 GitHub – RefreshVersions
  • 👍 34
  • 🔥 4
  • ❤‍🔥 1
More from @mobile_native
  1. Sep 9, 2026🤳 Как работает мобильная разработка с AI под капотом — интенсивы от Podlodka Crew Конфере…
  2. Jul 22, 2026Всем привет! Давненько меня не было в тг, давно уже ничего не публиковал в каналах – вот р…
  3. Jul 22, 2026Привет! Ну ты как там? Как дела, что нового? 😃
  4. Apr 19, 2026Kotlin Coroutine bridges: converting any callback-based Android API to suspend functions П…
  5. Apr 19, 2026Маяк в пустыне: Kotlin DSL для Android-шейдеров В статье автор рассказывает про сложности…
  6. Apr 8, 2026Разбираем Remote Compose: как Google предлагает строить BDUI Обзорная статья от ребят из А…
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 →