Files

132 lines
3.7 KiB
Kotlin
Raw Permalink Normal View History

2026-04-30 19:49:10 +02:00
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import java.util.Properties
import java.io.FileInputStream
plugins {
id("com.android.application")
kotlin("android")
2026-04-30 19:49:10 +02:00
kotlin("kapt")
id("com.google.devtools.ksp") version "2.2.0-2.0.2"
alias(libs.plugins.compose.compiler)
}
val keystoreProperties = Properties()
val keystorePropertiesFile = rootProject.file("keystore.properties")
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
}
android {
namespace = "com.illusionware.npsbrowser"
2026-04-30 19:49:10 +02:00
compileSdk = 36
defaultConfig {
applicationId = "com.illusionware.npsbrowser"
2026-04-30 19:49:10 +02:00
// TODO: Network Security Config needs 24+ API level, don't know if I want to raise the min
// just for that
minSdk = 23
2026-04-30 19:49:10 +02:00
targetSdk = 36
versionCode = 1
versionName = "0.1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
2026-04-30 19:49:10 +02:00
ksp {
arg("room.schemaLocation", "$projectDir/schemas")
}
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.2"
}
buildFeatures {
compose = true
aidl = false
renderScript = false
shaders = false
}
signingConfigs {
create("release") {
keyAlias = keystoreProperties["keyAlias"] as String?
keyPassword = keystoreProperties["keyPassword"] as String?
storeFile = keystoreProperties["storeFile"]?.let { file(it) }
storePassword = keystoreProperties["storePassword"] as String?
}
}
buildTypes {
named("release") {
signingConfig = signingConfigs.getByName("release")
isMinifyEnabled = true
isShrinkResources = true
proguardFiles("proguard-android-optimize.txt", "proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
2026-04-30 19:49:10 +02:00
buildToolsVersion = "36.0.0"
kotlin {
compilerOptions {
jvmTarget = JvmTarget.JVM_17
}
}
}
repositories {
google()
mavenCentral()
}
dependencies {
2026-04-30 19:49:10 +02:00
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.lifecycle.runtime.compose)
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.core.ktx)
// Jetpack Compose
2026-04-30 19:49:10 +02:00
implementation(platform(libs.androidx.compose.bom))
// Room database
implementation(libs.androidx.room.runtime)
// To use Kotlin Symbol Processing (KSP)
ksp(libs.androidx.room.compiler)
// optional - Kotlin Extensions and Coroutines support for Room
implementation(libs.androidx.room.ktx)
// Material 3
2026-04-30 19:49:10 +02:00
implementation(libs.androidx.material3)
implementation(libs.androidx.material.icons.extended)
// Android Studio Preview support
2026-04-30 19:49:10 +02:00
implementation(libs.androidx.ui.tooling.preview)
debugImplementation(libs.androidx.ui.tooling)
// Preferences DataStore (alternative to SharedPreferences)
2026-04-30 19:49:10 +02:00
implementation(libs.androidx.datastore.preferences)
implementation(libs.androidx.core.splashscreen)
implementation(libs.androidx.navigation.compose)
implementation(libs.coil)
implementation(libs.coil.compose)
implementation(libs.rxjava)
implementation(libs.okio)
implementation(libs.flowreactivenetwork)
implementation(libs.kotlin.csv)
implementation(libs.material)
}