plugins { kotlin("plugin.serialization") version "1.9.21" id("com.android.application") id("org.jetbrains.kotlin.android") id("kotlin-kapt") } android { namespace = "com.henryhiles.qweather" compileSdk = 34 signingConfigs { create("release") { storeFile = file("${rootDir}/keystore.jks") keyPassword = System.getenv("KEY_PASSWORD") keyAlias = "key0" storePassword = System.getenv("STORE_PASSWORD") } } defaultConfig { applicationId = "com.henryhiles.qweather" minSdk = 30 targetSdk = 34 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary = true } } buildTypes { named("release") { isMinifyEnabled = true isShrinkResources = true signingConfig = signingConfigs.getByName("release") setProguardFiles( listOf( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) ) } named("debug") { applicationIdSuffix = ".debug" } } compileOptions { isCoreLibraryDesugaringEnabled = true sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.5" } packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } } } dependencies { implementation("androidx.core:core-ktx:1.12.0") implementation("androidx.compose.material3:material3:1.1.2") implementation("androidx.activity:activity-compose:1.8.2") implementation("androidx.core:core-ktx:1.12.0") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2") implementation("com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.3") coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4") // Lifecycle val lifecycleVersion = "2.6.2" implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleVersion") implementation("androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleVersion") implementation("androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycleVersion") // Compose val composeVersion = "1.5.4" implementation("androidx.compose.ui:ui-tooling-preview:$composeVersion") implementation("androidx.compose.ui:ui:$composeVersion") implementation("androidx.compose.material:material-icons-extended:$composeVersion") debugImplementation("androidx.compose.ui:ui-tooling:$composeVersion") // Voyager val voyagerVersion = "1.0.0" implementation("cafe.adriel.voyager:voyager-navigator:$voyagerVersion") implementation("cafe.adriel.voyager:voyager-tab-navigator:$voyagerVersion") implementation("cafe.adriel.voyager:voyager-transitions:$voyagerVersion") implementation("cafe.adriel.voyager:voyager-koin:$voyagerVersion") // Koin val koinVersion = "3.5.3" implementation("io.insert-koin:koin-core:$koinVersion") implementation("io.insert-koin:koin-android:$koinVersion") implementation("io.insert-koin:koin-androidx-compose:$koinVersion") // Retrofit val retrofitVersion = "2.9.0" implementation("com.squareup.retrofit2:retrofit:$retrofitVersion") implementation("com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0") // Accompanist val accompanistVersion = "0.30.0" implementation("com.google.accompanist:accompanist-permissions:$accompanistVersion") }