Files
AndroidJetpack/spaceApps-android/app/build.gradle.kts
T
coco 723ce1af5c a
2026-07-03 15:12:48 +08:00

206 lines
6.6 KiB
Kotlin

plugins {
id("com.android.application")
kotlin("android")
kotlin("kapt")
id("kotlin-parcelize")
id("dagger.hilt.android.plugin")
id("com.google.gms.google-services")
id("com.google.firebase.crashlytics")
id(Ktlint.Plugin) version Ktlint.Version
id(Detekt.Plugin) version Detekt.Version
id(Jetbrains.Dokka.Plugin) version KotlinVersion
}
android {
compileSdk = 31
defaultConfig {
applicationId = "com.spaceapps.myapplication"
minSdk = 23
targetSdk = 31
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
debug {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
isCoreLibraryDesugaringEnabled = true
}
kotlinOptions {
jvmTarget = "1.8"
freeCompilerArgs = listOf("-Xopt-in=kotlin.RequiresOptIn", "-Xjvm-default=all")
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = ComposeVersion
}
lint {
abortOnError = false
}
testOptions {
unitTests.isReturnDefaultValues = true
}
packagingOptions {
resources {
excludes += listOf("/META-INF/{AL2.0,LGPL2.1}")
}
}
hilt {
enableAggregatingTask = true
}
}
configure<org.jlleitschuh.gradle.ktlint.KtlintExtension> {
verbose.set(true)
android.set(true)
outputToConsole.set(true)
outputColorName.set("RED")
ignoreFailures.set(false)
enableExperimentalRules.set(false)
disabledRules.set(setOf("no-wildcard-imports", "max-line-length", "import-ordering"))
filter {
exclude("**/generated/**")
include("**/kotlin/**")
}
}
detekt {
config = files("$rootDir/.detekt/config.yml")
}
dependencies {
// Kotlin
implementation(platform(Jetbrains.Kotlin.Bom))
implementation(Jetbrains.Kotlin.StdLib)
coreLibraryDesugaring(Android.Tools.Desugar)
implementation(project(":core"))
implementation(project(":navigation"))
implementation(project(":utils"))
// Accompanist
implementation(Google.Accompanist.DrawablePainter)
implementation(Google.Accompanist.Insets)
implementation(Google.Accompanist.NavigationMaterial)
implementation(Google.Accompanist.NavigationAnimation)
implementation(Google.Accompanist.Pager)
implementation(Google.Accompanist.PagerIndicators)
implementation(Google.Accompanist.PlaceholderMaterial)
implementation(Google.Accompanist.SwipeRefresh)
implementation(Google.Accompanist.SystemUiController)
implementation(Google.Accompanist.Permissions)
// Coil
implementation(Coil.Bom)
implementation(Coil.Coil)
implementation(Coil.Compose)
implementation(Coil.Gif)
implementation(Coil.Svg)
implementation(Coil.Video)
// Coroutines
implementation(platform(Jetbrains.KotlinX.Coroutines.Bom))
implementation(Jetbrains.KotlinX.Coroutines.Core)
implementation(Jetbrains.KotlinX.Coroutines.Android)
implementation(Jetbrains.KotlinX.Coroutines.PlayServices)
// Timber logging
implementation(Timber.Timber)
// Google play services
implementation(Google.Android.PlayServices.Location)
implementation(Google.Android.PlayServices.Auth)
implementation(Google.Android.PlayServices.Maps)
implementation(Google.Android.PlayServices.Wallet)
implementation(Google.Maps.Compose)
// AndroidX
implementation(AndroidX.Core.Ktx)
implementation(AndroidX.Emoji2.Emoji2)
implementation(AndroidX.AppCompat.AppCompat)
implementation(AndroidX.Activity.Ktx)
implementation(AndroidX.Activity.Compose)
implementation(AndroidX.StartUp.Runtime)
implementation(AndroidX.Browser.Browser)
implementation(AndroidX.Core.SplashScreen)
implementation(AndroidX.Lifecycle.ViewModelCompose)
implementation(AndroidX.Lifecycle.LiveData)
implementation(AndroidX.Lifecycle.Runtime)
implementation(AndroidX.ConstraintLayout.ConstraintLayout)
// Paging
implementation(AndroidX.Paging.Runtime)
implementation(AndroidX.Paging.Compose)
// WorkManager
implementation(AndroidX.Work.Runtime)
// Jetpack Compose
implementation(AndroidX.Compose.Ui)
implementation(AndroidX.Compose.UiUtil)
implementation(AndroidX.Compose.LiveData)
implementation(AndroidX.Compose.Material)
implementation(AndroidX.Compose.Material3)
implementation(AndroidX.Compose.Icons)
implementation(AndroidX.Compose.Foundation)
implementation(AndroidX.Navigation.Compose)
implementation(AndroidX.Compose.Runtime)
implementation(AndroidX.Compose.Compiler)
runtimeOnly(AndroidX.Compose.Animation)
// Dagger-Hilt
implementation(Google.Dagger.HiltAndroid)
kapt(Google.Dagger.HiltAndroidCompiler)
implementation(AndroidX.Hilt.ViewModel)
implementation(AndroidX.Hilt.NavigationCompose)
implementation(AndroidX.Hilt.Work)
kapt(AndroidX.Hilt.Compiler)
// Firebase
implementation(platform(Google.Firebase.Bom))
implementation(Google.Firebase.Crashlytics)
implementation(Google.Firebase.Analytics)
implementation(Google.Firebase.Messaging)
implementation(Google.Firebase.Installations)
implementation(Google.Firebase.DynamicLinks)
// Facebook SDK
implementation(Facebook.Android.Sdk)
// WW-geo
implementation(RgiCorp.GeoCords)
// SignalR
implementation(Microsoft.SignalR.SignalR)
// CameraX
implementation(AndroidX.CameraX.Core)
implementation(AndroidX.CameraX.Camera2)
implementation(AndroidX.CameraX.Lifecycle)
implementation(AndroidX.CameraX.View)
implementation(AndroidX.Media3.Ui)
implementation(AndroidX.Media3.ExoPlayer)
implementation(AndroidX.Media3.Sessions)
// Venom
debugImplementation(Venom.Debug)
releaseImplementation(Venom.NoOps)
debugImplementation(AndroidX.Compose.UiTooling)
debugImplementation(Jetbrains.Kotlin.Reflect)
// Test
androidTestImplementation(AndroidX.Test.Core)
androidTestImplementation(AndroidX.Test.Runner)
androidTestImplementation(AndroidX.Test.Rules)
androidTestImplementation(AndroidX.Compose.Test.JUnit4)
androidTestImplementation(AndroidX.Compose.Test.Test)
debugImplementation(AndroidX.Compose.Test.Manifest)
androidTestImplementation(Google.Truth.Truth)
}