apply plugin: 'com.android.application' apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'kotlin-kapt' def relStorePassword = System.getenv("RELEASE_STORE_PASSWORD") def relKeyPassword = System.getenv("RELEASE_KEY_PASSWORD") def relKeyAlias = System.getenv("RELEASE_KEY_ALIAS") def keystorePath = System.getenv('PWD') + "/app/keystore.jks" def keystore = file(keystorePath).exists() ? file(keystorePath) : null android { compileSdkVersion 31 defaultConfig { applicationId "com.appttude.h_mal.farmr" minSdkVersion 21 targetSdkVersion 31 versionCode 1 versionName "1.0" testInstrumentationRunner 'com.appttude.h_mal.farmr.application.TestRunner' vectorDrawables.useSupportLibrary = true } signingConfigs { release { storePassword relStorePassword keyPassword relKeyPassword keyAlias relKeyAlias storeFile keystore } } buildTypes { release { signingConfig signingConfigs.release minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } useLibrary 'android.test.mock' } dependencies { implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.vectordrawable:vectordrawable:1.0.0' implementation 'androidx.core:core-ktx:1.1.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' implementation 'androidx.appcompat:appcompat:1.0.0' implementation 'com.google.android.material:material:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.fragment:fragment-ktx:1.4.0' implementation 'androidx.activity:activity-ktx:1.4.0' implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1' implementation 'androidx.preference:preference:1.2.1' implementation 'com.ajts.androidmads.SQLite2Excel:library:1.0.2' / * Unit testing * / testImplementation 'junit:junit:4.13.2' androidTestImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version" testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version" androidTestImplementation 'androidx.test:core-ktx:1.4.0' androidTestImplementation 'androidx.test:rules:1.4.0' / * mockito and livedata testing * / testImplementation 'org.mockito:mockito-inline:2.13.0' testImplementation 'androidx.arch.core:core-testing:2.1.0' / * MockK * / def mockk_ver = "1.10.5" testImplementation "io.mockk:mockk:$mockk_ver" androidTestImplementation "io.mockk:mockk-android:$mockk_ver" / * Android Espresso * / def testJunitVersion = "1.1.5" def testRunnerVersion = "1.5.2" def espressoVersion = "3.5.1" androidTestImplementation "androidx.test.ext:junit:$testJunitVersion" androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" androidTestImplementation "androidx.test.espresso.idling:idling-concurrent:$espressoVersion" implementation "androidx.test.espresso:espresso-idling-resource:$espressoVersion" androidTestImplementation "androidx.test:runner:$testRunnerVersion" androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion" androidTestImplementation "org.hamcrest:hamcrest:2.2" / * Room database * / def room_version = "2.4.3" implementation "androidx.room:room-runtime:$room_version" kapt "androidx.room:room-compiler:$room_version" implementation "androidx.room:room-ktx:$room_version" / *Kodein Dependency Injection * / def kodein_version = "6.2.1" implementation "org.kodein.di:kodein-di-generic-jvm:$kodein_version" implementation "org.kodein.di:kodein-di-framework-android-x:$kodein_version" / * jxl * / implementation 'net.sourceforge.jexcelapi:jxl:2.6.12' }