android-project-template/app/build.gradle.kts

99 lines
2.6 KiB
Plaintext

plugins {
id(libs.plugins.android.app.get().pluginId)
alias(libs.plugins.firebase.crashlytics)
alias(libs.plugins.firebase.perf)
id(libs.plugins.google.oss.licenses.plugin.get().pluginId)
}
val customEndpoint: String? = Environment.ENDPOINT.getenv()?.takeIf(String::isNotBlank)
android {
namespace = "ru.touchin.template"
configureSigningConfig(this@Build_gradle::file)
with(defaultConfig) {
addResourceConfigurations("ru")
}
addBuildType(type = BuildType.Develop, project = rootProject)
addBuildType(type = BuildType.Debug, project = rootProject)
addBuildType(type = BuildType.Customer, project = rootProject)
addBuildType(type = BuildType.Release, project = rootProject)
addMobileServicesFlavor()
ext["languageMap"] = mapOf("ru" to "${rootProject.projectDir}/${AndroidConfig.COMMON_FOLDER}/strings/default_common_strings.json")
}
dependencies {
// AndroidX
implementation(libs.bundles.androidX)
// KotlinX
implementation(libs.coroutines)
// UI
implementation(libs.bundles.ui)
// Lifecycle
implementation(libs.bundles.lifecycle)
kapt(libs.androidx.lifecycle.compiler)
// Dagger
implementation(libs.bundles.dagger)
kapt(libs.dagger.compiler)
kapt(libs.dagger.assisted.inject.processor)
// Glide
implementation(libs.glide)
implementation(libs.glide.okhttp3)
kapt(libs.glide.compiler)
// Retrofit2, OkHttp3
implementation(libs.retrofit)
implementation(libs.retrofit.converter.moshi)
implementation(libs.okhttp)
implementation(libs.okhttp.logging.interceptor)
// Moshi
implementation(libs.moshi)
implementation(libs.moshi.kotlin)
kapt(libs.moshi.codegen)
// Room
implementation(libs.room)
implementation(libs.room.ktx)
kapt(libs.room.compiler)
// LeakCanary
implementation(libs.leakcanary)
// Chucker
debugImplementation(libs.chucker.debug)
releaseImplementation(libs.chucker.release)
// GMS
implementation(platform(libs.firebase.bom))
implementation(libs.bundles.firebase)
implementation(libs.google.oss.licenses)
// Security
implementation(libs.androidx.security.crypto)
// Biometric
implementation(libs.androidx.biometric)
// Groupie
implementation(libs.groupie)
implementation(libs.groupie.viewbinding)
// Cicecrone
implementation(libs.cicerone)
}
apply(from = "${rootProject.ext["buildScriptsDir"]}/gradle/scripts/stringGenerator.gradle")
val Project.buildScriptDir: String
get() = rootProject.ext["buildScriptsDir"] as String