plugins { id 'kotlin-android' id 'kotlin-kapt' id 'com.android.application' id 'androidx.navigation.safeargs.kotlin' id 'dagger.hilt.android.plugin' id 'org.jetbrains.kotlin.plugin.serialization' } def keystorePropertiesFile = rootProject.file("keystore.properties") def keystoreProperties = new Properties() keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) android { compileSdk 31 defaultConfig { applicationId "gq.kirmanak.mealie" minSdk 21 targetSdk 31 versionCode 1 versionName "1.0" } signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] } } buildTypes { debug { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } buildFeatures { viewBinding true } lintOptions { disable 'ObsoleteLintCustomCheck' enable 'ConvertToWebp', 'DuplicateStrings', 'EasterEgg', 'ExpensiveAssertion', 'IconExpectedSize', 'ImplicitSamInstance', 'InvalidPackage', 'KotlinPropertyAccess', 'LambdaLast', 'MinSdkTooLow', 'NegativeMargin', 'NoHardKeywords', 'Registered', 'RequiredSize', 'UnknownNullness', 'WrongThreadInterprocedural' } testOptions { unitTests { includeAndroidResources = true } } } dependencies { // https://github.com/material-components/material-components-android implementation "com.google.android.material:material:1.4.0" implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-runtime-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" // https://developer.android.com/kotlin/ktx#core implementation "androidx.core:core-ktx:1.7.0" // https://developer.android.com/jetpack/androidx/releases/appcompat implementation "androidx.appcompat:appcompat:1.3.1" // https://developer.android.com/jetpack/androidx/releases/constraintlayout implementation "androidx.constraintlayout:constraintlayout:2.1.1" // https://developer.android.com/jetpack/androidx/releases/swiperefreshlayout implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" // https://developer.android.com/jetpack/androidx/releases/lifecycle def lifecycle_version = "2.4.0" implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" implementation "com.google.dagger:hilt-android:$hilt_version" kapt "com.google.dagger:hilt-compiler:$hilt_version" kaptTest "com.google.dagger:hilt-android-compiler:$hilt_version" testImplementation "com.google.dagger:hilt-android-testing:$hilt_version" // https://github.com/square/retrofit/tags implementation "com.squareup.retrofit2:retrofit:2.9.0" // https://github.com/JakeWharton/retrofit2-kotlinx-serialization-converter/tags implementation "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.8.0" // https://search.maven.org/artifact/com.squareup.okhttp3/okhttp def okhttp_version = "4.9.2" implementation "com.squareup.okhttp3:okhttp:$okhttp_version" implementation "com.squareup.okhttp3:logging-interceptor:$okhttp_version" testImplementation "com.squareup.okhttp3:mockwebserver:$okhttp_version" // https://github.com/Kotlin/kotlinx.serialization/releases implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.1" // https://developer.android.com/jetpack/androidx/releases/preference implementation "androidx.preference:preference-ktx:1.1.1" // https://github.com/JakeWharton/timber/releases implementation 'com.jakewharton.timber:timber:5.0.1' // https://developer.android.com/jetpack/androidx/releases/paging def paging_version = "3.1.0-rc01" implementation "androidx.paging:paging-runtime-ktx:$paging_version" testImplementation "androidx.paging:paging-common-ktx:$paging_version" // https://developer.android.com/jetpack/androidx/releases/room def room_version = "2.4.0-beta01" implementation "androidx.room:room-runtime:$room_version" implementation "androidx.room:room-ktx:$room_version" implementation "androidx.room:room-paging:$room_version" kapt "androidx.room:room-compiler:$room_version" testImplementation "androidx.room:room-testing:$room_version" // https://github.com/Kotlin/kotlinx-datetime/releases implementation "org.jetbrains.kotlinx:kotlinx-datetime:0.3.1" // https://github.com/bumptech/glide/releases def glide_version = "4.12.0" implementation "com.github.bumptech.glide:glide:$glide_version" kapt "com.github.bumptech.glide:compiler:$glide_version" // https://github.com/junit-team/junit4/releases testImplementation "junit:junit:4.13.2" // https://github.com/Kotlin/kotlinx.coroutines/releases testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.5.2" // https://github.com/robolectric/robolectric/releases testImplementation "org.robolectric:robolectric:4.7" // https://developer.android.com/jetpack/androidx/releases/test testImplementation "androidx.test.ext:junit-ktx:1.1.3" // https://mvnrepository.com/artifact/com.google.truth/truth testImplementation "com.google.truth:truth:1.1.3" }