plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) } android { namespace = "dev.dettmer.simplenotes" compileSdk { version = release(36) } defaultConfig { applicationId = "dev.dettmer.simplenotes" minSdk = 24 targetSdk = 36 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" // Enable multiple APKs per ABI for smaller downloads splits { abi { isEnable = true reset() include("armeabi-v7a", "arm64-v8a") isUniversalApk = true // Also generate universal APK } } } // Signing configuration for release builds signingConfigs { create("release") { // Load keystore configuration from key.properties file val keystorePropertiesFile = rootProject.file("key.properties") if (keystorePropertiesFile.exists()) { val keystoreProperties = java.util.Properties() keystoreProperties.load(java.io.FileInputStream(keystorePropertiesFile)) storeFile = file(keystoreProperties["storeFile"] as String) storePassword = keystoreProperties["storePassword"] as String keyAlias = keystoreProperties["keyAlias"] as String keyPassword = keystoreProperties["keyPassword"] as String } } } buildTypes { release { isMinifyEnabled = true isShrinkResources = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) // Use release signing config if available, otherwise debug signingConfig = if (rootProject.file("key.properties").exists()) { signingConfigs.getByName("release") } else { signingConfigs.getByName("debug") } } } buildFeatures { viewBinding = true buildConfig = true // Enable BuildConfig generation } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" } } dependencies { // Existing (bleiben so) implementation(libs.androidx.core.ktx) implementation(libs.androidx.appcompat) implementation(libs.material) implementation(libs.androidx.activity) implementation(libs.androidx.constraintlayout) // Unsere Dependencies (DIREKT mit Versionen - viel einfacher!) implementation("com.github.thegrizzlylabs:sardine-android:0.8") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3") implementation("com.google.code.gson:gson:2.10.1") implementation("androidx.work:work-runtime-ktx:2.9.0") implementation("androidx.recyclerview:recyclerview:1.3.2") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0") // LocalBroadcastManager für UI Refresh implementation("androidx.localbroadcastmanager:localbroadcastmanager:1.1.0") // Testing (bleiben so) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) }