Обложка канала

Mobile Native

Полезные материалы по мобильной разработке. Статьи, подборки, нововведения, анонсы.

Mobile Native

4 года назад
Открыть в
Управление зависимостями в 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