plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' } def signingPropsFile = rootProject.file('signing.properties') def hasSigningConfig = signingPropsFile.exists() android { namespace 'nl.eddydevink.sylda' // compileSdk/targetSdk stays on 34 (Android 14) by deliberate choice. The target audience // consists of physically disabled users who are very reluctant to update their phones. Staying // on API 34 maximises device compatibility. Re-evaluate when the user base has migrated. compileSdk 34 if (hasSigningConfig) { def props = new Properties() props.load(new FileInputStream(signingPropsFile)) signingConfigs { release { storeFile rootProject.file(props['KEYSTORE_PATH']) storePassword props['KEYSTORE_PASSWORD'] keyAlias props['KEY_ALIAS'] keyPassword props['KEY_PASSWORD'] } } } defaultConfig { applicationId "nl.eddydevink.sylda" minSdk 26 targetSdk 34 versionCode 1 versionName "1.0" buildConfigField "String", "BUILD_NUMBER", "\"${new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(new Date())}\"" } buildFeatures { buildConfig true } buildTypes { release { if (hasSigningConfig) { signingConfig signingConfigs.release } minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } } dependencies { implementation 'androidx.core:core-ktx:1.12.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'io.github.dkaukov:esp32-flash-lib:1.1.17' implementation 'com.eclipsesource.minimal-json:minimal-json:0.9.5' implementation 'org.slf4j:slf4j-nop:2.0.16' implementation 'androidx.security:security-crypto:1.1.0-alpha06' implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.7.0' }