diff --git a/app/build.gradle b/app/build.gradle index 661d820..6fe09c4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,19 +7,17 @@ plugins { id 'org.jetbrains.kotlin.plugin.serialization' id 'com.google.gms.google-services' id 'com.google.firebase.crashlytics' - // https://plugins.gradle.org/plugin/com.guardsquare.appsweep - id "com.guardsquare.appsweep" version "1.0.0" - // https://github.com/google/protobuf-gradle-plugin/releases - id "com.google.protobuf" version "0.8.18" + id "com.guardsquare.appsweep" version "$appsweep_version" + id "com.google.protobuf" version "$protobuf_plugin_version" } android { - compileSdk 32 + compileSdk compile_sdk_version defaultConfig { applicationId "gq.kirmanak.mealient" - minSdk 23 - targetSdk 32 + minSdk min_sdk_version + targetSdk target_sdk_version versionCode 12 versionName "0.2.3" @@ -97,27 +95,20 @@ tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { } dependencies { - // https://github.com/material-components/material-components-android - implementation "com.google.android.material:material:1.6.0" + implementation "com.google.android.material:material:$material_version" 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" + implementation "androidx.core:core-ktx:$core_ktx_version" - // https://developer.android.com/jetpack/androidx/releases/appcompat - implementation "androidx.appcompat:appcompat:1.4.1" + implementation "androidx.appcompat:appcompat:$appcompat_version" - // https://developer.android.com/jetpack/androidx/releases/constraintlayout - implementation "androidx.constraintlayout:constraintlayout:2.1.4" + implementation "androidx.constraintlayout:constraintlayout:$contraint_layout_version" - // https://developer.android.com/jetpack/androidx/releases/swiperefreshlayout - implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" + implementation "androidx.swiperefreshlayout:swiperefreshlayout:$swipe_refresh_layout_version" - // https://developer.android.com/jetpack/androidx/releases/lifecycle - def lifecycle_version = "2.4.1" implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" @@ -126,41 +117,29 @@ dependencies { 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" + implementation "com.squareup.retrofit2:retrofit:$retrofit_version" - // https://github.com/JakeWharton/retrofit2-kotlinx-serialization-converter/tags - implementation "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.8.0" + implementation "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:$retrofit_kotlinx_serialization_version" - // https://github.com/square/okhttp/tags - implementation platform("com.squareup.okhttp3:okhttp-bom:4.9.3") + implementation platform("com.squareup.okhttp3:okhttp-bom:$okhttp_version") implementation "com.squareup.okhttp3:okhttp" debugImplementation "com.squareup.okhttp3:logging-interceptor" - // https://github.com/Kotlin/kotlinx.serialization/releases - implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3" + implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinx_serialization_version" - // https://github.com/JakeWharton/timber/releases - implementation 'com.jakewharton.timber:timber:5.0.1' + implementation "com.jakewharton.timber:timber:$timber_version" - // https://developer.android.com/jetpack/androidx/releases/paging - def paging_version = "3.1.1" 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.2" 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.3" + implementation "org.jetbrains.kotlinx:kotlinx-datetime:$kotlinx_datetime_version" - // https://github.com/bumptech/glide/releases - def glide_version = "4.13.2" implementation "com.github.bumptech.glide:glide:$glide_version" implementation "com.github.bumptech.glide:okhttp3-integration:$glide_version" implementation("com.github.bumptech.glide:recyclerview-integration:$glide_version") { @@ -169,58 +148,42 @@ dependencies { } kapt "com.github.bumptech.glide:compiler:$glide_version" - // https://github.com/androidbroadcast/ViewBindingPropertyDelegate/releases - implementation "com.github.kirich1409:viewbindingpropertydelegate-noreflection:1.5.6" + implementation "com.github.kirich1409:viewbindingpropertydelegate-noreflection:$view_binding_delegate_version" - // https://developer.android.com/jetpack/androidx/releases/datastore - def datastore_version = "1.0.0" implementation "androidx.datastore:datastore-preferences:$datastore_version" implementation "androidx.datastore:datastore:$datastore_version" implementation "com.google.protobuf:protobuf-javalite:$protobuf_version" - // https://developer.android.com/jetpack/androidx/releases/security - implementation "androidx.security:security-crypto:1.0.0" + implementation "androidx.security:security-crypto:$security_version" - // https://mvnrepository.com/artifact/com.google.firebase/firebase-bom?repo=google - implementation platform("com.google.firebase:firebase-bom:30.0.2") + implementation platform("com.google.firebase:firebase-bom:$firebase_version") implementation "com.google.firebase:firebase-analytics-ktx" implementation "com.google.firebase:firebase-crashlytics-ktx" - // https://github.com/junit-team/junit4/releases - testImplementation "junit:junit:4.13.2" + testImplementation "junit:junit:$junit_version" - // https://github.com/Kotlin/kotlinx.coroutines/releases - def coroutines_version = "1.6.1" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version" testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines_version" - // https://github.com/robolectric/robolectric/releases - testImplementation "org.robolectric:robolectric:4.8.1" + testImplementation "org.robolectric:robolectric:$robolectric_version" - // https://developer.android.com/jetpack/androidx/releases/test - testImplementation "androidx.test.ext:junit-ktx:1.1.3" + testImplementation "androidx.test.ext:junit-ktx:$junit_ktx_version" - // https://mvnrepository.com/artifact/com.google.truth/truth - testImplementation "com.google.truth:truth:1.1.3" + testImplementation "com.google.truth:truth:$truth_version" - // https://mockk.io/ - testImplementation "io.mockk:mockk:1.12.4" + testImplementation "io.mockk:mockk:$mockk_version" - // https://github.com/facebook/flipper/releases - def flipper_version = "0.147.0" debugImplementation "com.facebook.flipper:flipper:$flipper_version" debugImplementation "com.facebook.flipper:flipper-leakcanary2-plugin:$flipper_version" debugImplementation "com.facebook.flipper:flipper-network-plugin:$flipper_version" - // https://github.com/facebook/SoLoader/releases - debugImplementation "com.facebook.soloader:soloader:0.10.3" + debugImplementation "com.facebook.soloader:soloader:$soloader_version" - // https://github.com/square/leakcanary/releases - debugImplementation "com.squareup.leakcanary:leakcanary-android:2.9.1" + debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakcanary_version" // https://github.com/ChuckerTeam/chucker/releases - debugImplementation "com.github.chuckerteam.chucker:library:3.5.2" + debugImplementation "com.github.chuckerteam.chucker:library:$chucker_version" } protobuf { diff --git a/build.gradle b/build.gradle index 100df38..6fbc4c8 100644 --- a/build.gradle +++ b/build.gradle @@ -1,14 +1,6 @@ buildscript { - ext { - // https://developer.android.com/jetpack/androidx/releases/navigation - nav_version = "2.4.2" - // https://dagger.dev/hilt/gradle-setup - hilt_version = "2.42" - - // https://kotlinlang.org/docs/gradle.html - kotlin_version = "1.6.21" - } + apply from: "./gradle/versions.gradle" repositories { google() @@ -16,12 +8,9 @@ buildscript { } dependencies { - // https://maven.google.com/web/index.html?q=com.android.tools.build#com.android.tools.build:gradle - classpath "com.android.tools.build:gradle:7.2.1" - // https://developers.google.com/android/guides/google-services-plugin - classpath "com.google.gms:google-services:4.3.10" - // https://mvnrepository.com/artifact/com.google.firebase/firebase-crashlytics-gradle - classpath "com.google.firebase:firebase-crashlytics-gradle:2.8.1" + classpath "com.android.tools.build:gradle:$android_plugin_version" + classpath "com.google.gms:google-services:$google_services_version" + classpath "com.google.firebase:firebase-crashlytics-gradle:$crashlytics_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" @@ -30,10 +19,8 @@ buildscript { } plugins { - // https://plugins.gradle.org/plugin/org.sonarqube - id "org.sonarqube" version "3.3" - // https://plugins.gradle.org/plugin/nl.neotech.plugin.rootcoverage - id "nl.neotech.plugin.rootcoverage" version "1.5.2" + id "org.sonarqube" version "$sonarqube_version" + id "nl.neotech.plugin.rootcoverage" version "$root_coverage_version" } task clean(type: Delete) { @@ -52,9 +39,4 @@ sonarqube { rootCoverage { generateXml true -} - -ext { - // https://github.com/protocolbuffers/protobuf/releases - protobuf_version = "3.21.1" } \ No newline at end of file diff --git a/gradle/versions.gradle b/gradle/versions.gradle new file mode 100644 index 0000000..26cf118 --- /dev/null +++ b/gradle/versions.gradle @@ -0,0 +1,120 @@ +ext { + // https://github.com/protocolbuffers/protobuf/releases + protobuf_version = "3.21.1" + // https://github.com/google/protobuf-gradle-plugin/releases + protobuf_plugin_version = "0.8.18" + + // https://developer.android.com/jetpack/androidx/releases/navigation + nav_version = "2.4.2" + + // https://dagger.dev/hilt/gradle-setup + hilt_version = "2.42" + + // https://kotlinlang.org/docs/gradle.html + kotlin_version = "1.6.21" + + // https://maven.google.com/web/index.html?q=com.android.tools.build#com.android.tools.build:gradle + android_plugin_version = "7.2.1" + + // https://developers.google.com/android/guides/google-services-plugin + google_services_version = "4.3.10" + + // https://mvnrepository.com/artifact/com.google.firebase/firebase-crashlytics-gradle + crashlytics_version = "2.8.1" + + // https://plugins.gradle.org/plugin/org.sonarqube + sonarqube_version = "3.3" + + // https://plugins.gradle.org/plugin/nl.neotech.plugin.rootcoverage + root_coverage_version = "1.5.2" + + // https://plugins.gradle.org/plugin/com.guardsquare.appsweep + appsweep_version = "1.0.0" + + compile_sdk_version = 32 + min_sdk_version = 32 + target_sdk_version = 32 + + // https://github.com/material-components/material-components-android + material_version = "1.6.0" + + // https://developer.android.com/kotlin/ktx#core + core_ktx_version = "1.7.0" + + // https://developer.android.com/jetpack/androidx/releases/appcompat + appcompat_version = "1.4.1" + + // https://developer.android.com/jetpack/androidx/releases/constraintlayout + contraint_layout_version = "2.1.4" + + // https://developer.android.com/jetpack/androidx/releases/swiperefreshlayout + swipe_refresh_layout_version = "1.1.0" + + // https://developer.android.com/jetpack/androidx/releases/lifecycle + lifecycle_version = "2.4.1" + + // https://github.com/square/retrofit/tags + retrofit_version = "2.9.0" + // https://github.com/JakeWharton/retrofit2-kotlinx-serialization-converter/tags + retrofit_kotlinx_serialization_version = "0.8.0" + // https://github.com/Kotlin/kotlinx.serialization/releases + kotlinx_serialization_version = "1.3.3" + + // https://github.com/square/okhttp/tags + okhttp_version = "4.9.3" + + // https://github.com/JakeWharton/timber/releases + timber_version = "5.0.1" + + // https://developer.android.com/jetpack/androidx/releases/paging + paging_version = "3.1.1" + + // https://developer.android.com/jetpack/androidx/releases/room + room_version = "2.4.2" + + // https://github.com/Kotlin/kotlinx-datetime/releases + kotlinx_datetime_version = "0.3.3" + + // https://github.com/bumptech/glide/releases + glide_version = "4.13.2" + + // https://github.com/androidbroadcast/ViewBindingPropertyDelegate/releases + view_binding_delegate_version = "1.5.6" + + // https://developer.android.com/jetpack/androidx/releases/datastore + datastore_version = "1.0.0" + + // https://developer.android.com/jetpack/androidx/releases/security + security_version = "1.0.0" + + // https://mvnrepository.com/artifact/com.google.firebase/firebase-bom?repo=google + firebase_version = "30.0.2" + + // https://github.com/junit-team/junit4/releases + junit_version = "4.13.2" + // https://developer.android.com/jetpack/androidx/releases/test + junit_ktx_version = "1.1.3" + + // https://github.com/Kotlin/kotlinx.coroutines/releases + coroutines_version = "1.6.1" + + // https://github.com/robolectric/robolectric/releases + robolectric_version = "1.6.1" + + // https://mvnrepository.com/artifact/com.google.truth/truth + truth_version = "1.1.3" + + // https://mockk.io/ + mockk_version = "1.12.4" + + // https://github.com/facebook/flipper/releases + flipper_version = "0.147.0" + // https://github.com/facebook/SoLoader/releases + soloader_version = "0.10.3" + + // https://github.com/square/leakcanary/releases + leakcanary_version = "2.9.1" + + // https://github.com/ChuckerTeam/chucker/releases + chucker_version = "3.5.2" +} \ No newline at end of file