Files
fluffytrix/app/build.gradle.kts
2026-02-20 13:46:31 +00:00

121 lines
3.5 KiB
Kotlin

plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.kotlin.serialization)
}
android {
namespace = "com.example.fluffytrix"
compileSdk {
version = release(36)
}
defaultConfig {
applicationId = "com.example.fluffytrix"
minSdk = 34
targetSdk = 36
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
debug {
// Compose is extremely slow in unoptimized debug builds.
// R8 with isDebuggable keeps debuggability but strips the massive
// material-icons-extended library and optimizes Compose codegen.
isMinifyEnabled = true
isShrinkResources = true
isDebuggable = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
release {
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
signingConfig = signingConfigs.getByName("debug")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
buildFeatures {
compose = true
}
packaging {
dex {
useLegacyPackaging = true
}
}
}
dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.material)
// Compose
implementation(platform(libs.compose.bom))
implementation(libs.compose.ui)
implementation(libs.compose.ui.tooling.preview)
implementation(libs.compose.material3)
implementation(libs.compose.icons.extended)
implementation(libs.compose.foundation)
implementation(libs.activity.compose)
implementation(libs.navigation.compose)
implementation(libs.lifecycle.viewmodel.compose)
implementation(libs.lifecycle.runtime.compose)
debugImplementation(libs.compose.ui.tooling)
// Koin
implementation(libs.koin.android)
implementation(libs.koin.compose)
// DataStore
implementation(libs.datastore.preferences)
// Coroutines
implementation(libs.coroutines.core)
implementation(libs.coroutines.android)
// Trixnity
implementation(libs.trixnity.client) {
exclude(group = "net.folivo", module = "trixnity-olm-jvm")
}
implementation(libs.trixnity.clientserverapi.client) {
exclude(group = "net.folivo", module = "trixnity-olm-jvm")
}
implementation(libs.trixnity.olm)
implementation(libs.trixnity.client.repository.room) {
exclude(group = "net.folivo", module = "trixnity-olm-jvm")
}
// Ktor engine for Trixnity
implementation(libs.ktor.client.okhttp)
// Coil (image loading)
implementation(libs.coil.compose)
implementation(libs.coil.network.okhttp)
// Media3 (video playback)
implementation(libs.media3.exoplayer)
implementation(libs.media3.ui)
// Markdown renderer
implementation(libs.markdown.renderer.core)
implementation(libs.markdown.renderer.m3)
implementation(libs.markdown.renderer.code)
implementation(libs.markdown.renderer.coil3)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
}