mitbringsl/android/app/build.gradle.kts
Tronax 85c790ed23
Build: make Android build work behind restrictive proxies
- settings.gradle.kts: comment out the foojay-resolver-convention plugin.
  It tries to auto-download JDK toolchains from api.foojay.io, which fails
  with 503 behind restrictive proxies. Re-enable at home if you want
  auto-provisioning.
- app/build.gradle.kts: comment out jvmToolchain(17) for the same reason
  (triggers toolchain resolution -> foojay download). The build JDK 21
  plus compileOptions(source/target 17) achieves the same result locally.
- gradle-wrapper.properties: bump to gradle-9.6.1-all (matches the
  manually provided distribution).
- .gitignore: ignore .ssl-work/ (local corporate-CA truststore).
2026-08-06 11:43:03 +02:00

129 lines
3.6 KiB
Kotlin
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.hilt)
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.ksp)
alias(libs.plugins.room)
}
android {
namespace = "com.example.mitbringsl"
compileSdk = 36
defaultConfig {
applicationId = "com.example.mitbringsl"
minSdk = 26
targetSdk = 36
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
// Backend base URL override in release build or via local.properties
buildConfigField("String", "BASE_URL", "\"http://10.0.2.2:8080/\"")
}
buildTypes {
release {
isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
// Override BASE_URL for production
buildConfigField("String", "BASE_URL", "\"https://mitbringsl.example.com/\"")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
buildFeatures {
compose = true
buildConfig = true // needed for BASE_URL injection
aidl = false
shaders = false
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}
// Room schema export directory
room {
schemaDirectory("$projectDir/schemas")
}
kotlin {
// Use the JDK running Gradle instead of resolving a toolchain (avoids
// foojay-resolver downloads behind restrictive proxies). compileOptions
// above pins source/target to 17.
// jvmToolchain(17)
}
dependencies {
val composeBom = platform(libs.androidx.compose.bom)
implementation(composeBom)
androidTestImplementation(composeBom)
// Core Android
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
// Lifecycle / ViewModel
implementation(libs.androidx.lifecycle.runtime.compose)
implementation(libs.androidx.lifecycle.viewmodel.compose)
// Compose UI + Material3
implementation(libs.androidx.compose.ui)
implementation(libs.androidx.compose.ui.tooling.preview)
implementation(libs.androidx.compose.material3)
implementation(libs.androidx.compose.material.icons.extended)
debugImplementation(libs.androidx.compose.ui.tooling)
// Navigation 3
implementation(libs.androidx.navigation3.ui)
implementation(libs.androidx.navigation3.runtime)
implementation(libs.androidx.lifecycle.viewmodel.navigation3)
// Hilt (DI)
implementation(libs.hilt.android)
ksp(libs.hilt.android.compiler)
implementation(libs.hilt.navigation.compose)
// Room (local DB source of truth)
implementation(libs.room.runtime)
implementation(libs.room.ktx)
ksp(libs.room.compiler)
// Retrofit + OkHttp (network)
implementation(libs.retrofit)
implementation(libs.retrofit.serialization)
implementation(libs.okhttp)
implementation(libs.okhttp.logging)
// Kotlinx Serialization (JSON)
implementation(libs.kotlinx.serialization.json)
// Coroutines
implementation(libs.kotlinx.coroutines.android)
// WorkManager (background sync)
implementation(libs.workmanager.ktx)
implementation(libs.hilt.work)
ksp(libs.hilt.work.compiler)
// Tests
testImplementation(libs.junit)
testImplementation(libs.kotlinx.coroutines.test)
androidTestImplementation(libs.androidx.test.core)
androidTestImplementation(libs.androidx.test.ext.junit)
androidTestImplementation(libs.androidx.test.runner)
androidTestImplementation(libs.androidx.test.espresso.core)
androidTestImplementation(libs.androidx.compose.ui.test.junit4)
debugImplementation(libs.androidx.compose.ui.test.manifest)
}