build.gradle.kts — это файл конфигурации сборки для проектов на Kotlin
.
Он заменяет традиционный build.gradle
(на Groovy
) и использует Kotlin DSL
(Domain Specific Language
) для настройки проекта.
Kotlin DSL
предоставляет более строгую типизацию и лучшую поддержку IDE
.
- plugins - Подключает плагины (например,
android
,kotlin
,ksp
). - android - Настройка Android-приложения (например,
compileSdk
,defaultConfig
). - dependencies - Подключает зависимости (библиотеки).
- repositories - Указывает репозитории для загрузки зависимостей.
Блок android содержит настройки, специфичные для Android
-приложений.
- compileSdk - Версия
SDK
, используемая для компиляции. - defaultConfig - Настройки по умолчанию для приложения.
- applicationId - Уникальный идентификатор приложения.
- minSdk - Минимальная версия
SDK
, на которой может работать приложение. - targetSdk - Версия
SDK
, на которую ориентировано приложение. - versionCode - Внутренний номер версии приложения.
- versionName - Публичное имя версии приложения.
- buildTypes - Настройки для разных типов сборки (например,
release
иdebug
). - isMinifyEnabled - Включает минификацию кода.
- proguardFiles - Указывает файлы с правилами
ProGuard
/R8
.
Плагины — это модули, которые добавляют функциональность в проект. Они могут настраивать сборку, добавлять задачи или интегрировать сторонние инструменты.
- com.android.application - Плагин для сборки
Android
-приложений. - kotlin-android - Поддержка
Kotlin
вAndroid
. - ksp - Плагин для
Kotlin Symbol Processing
(KSP
).
Блок dependencies подключает библиотеки и другие зависимости, необходимые для проекта.
Блок repositories указывает, откуда загружать зависимости.
По умолчанию используется Maven Central
и Google Maven Repository
.
KSP — это замена kapt
(Kotlin Annotation Processing Tool
).
Он работает быстрее и поддерживает больше возможностей Kotlin
.
secrets.properties — это файл для хранения конфиденциальных данных (например, API
-ключей).
Он не добавляется в систему контроля версий (например, Git
), чтобы избежать утечки данных.
// file("secrets.properties")
val secretsProperties = rootDir.resolve("secrets.properties")
.bufferedReader()
.use { buffer: BufferedReader ->
Properties().apply {
load(buffer)
}
}
buildConfigField("String", "API_KEY", secretsProperties.getProperty("API_KEY"))
buildConfigField("String", "URL_SERVER", secretsProperties.getProperty("URL_SERVER"))
BuildConfig — это класс, который генерируется автоматически во время сборки.
Он содержит константы, определенные в build.gradle.kts
.