From f63ad611baf03d087df4c197bba025863caa6bcf Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Sat, 30 Jul 2022 23:04:45 +0200 Subject: [PATCH 1/6] Use version catalog for root plugins --- build.gradle.kts | 14 +++++++------- buildSrc/src/main/kotlin/Dependencies.kt | 12 ------------ gradle/libs.versions.toml | 22 ++++++++++++++++++++++ 3 files changed, 29 insertions(+), 19 deletions(-) create mode 100644 gradle/libs.versions.toml diff --git a/build.gradle.kts b/build.gradle.kts index 5dde6f6..909367e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,13 +6,13 @@ buildscript { } dependencies { - classpath("com.android.tools.build:gradle:${Dependencies.androidPluginVersion}") - classpath("com.google.gms:google-services:${Dependencies.googleServicesVersion}") - classpath("com.google.firebase:firebase-crashlytics-gradle:${Dependencies.crashlyticsVersion}") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${Dependencies.kotlinVersion}") - classpath("org.jetbrains.kotlin:kotlin-serialization:${Dependencies.kotlinVersion}") - classpath("androidx.navigation:navigation-safe-args-gradle-plugin:${Dependencies.navVersion}") - classpath("com.google.dagger:hilt-android-gradle-plugin:${Dependencies.hiltVersion}") + classpath(libs.android.gradlePlugin) + classpath(libs.google.servicesPlugin) + classpath(libs.firebase.crashlyticsPlugin) + classpath(libs.jetbrains.kotlinPlugin) + classpath(libs.jetbrains.serializationPlugin) + classpath(libs.navigation.safeArgsPlugin) + classpath(libs.dagger.hiltPlugin) } } diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index 91842ec..457faa2 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -15,18 +15,6 @@ object Dependencies { // https://dagger.dev/hilt/gradle-setup const val hiltVersion = "2.43.1" - // https://kotlinlang.org/docs/gradle.html - const val kotlinVersion = "1.7.10" - - // https://maven.google.com/web/index.html?q=com.android.tools.build#com.android.tools.build:gradle - const val androidPluginVersion = "7.2.1" - - // https://developers.google.com/android/guides/google-services-plugin - const val googleServicesVersion = "4.3.13" - - // https://mvnrepository.com/artifact/com.google.firebase/firebase-crashlytics-gradle - const val crashlyticsVersion = "2.9.1" - // https://plugins.gradle.org/plugin/org.sonarqube const val sonarqubeVersion = "3.4.0.2513" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..630f7ac --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,22 @@ +[versions] +# https://maven.google.com/web/index.html?q=com.android.tools.build#com.android.tools.build:gradle +androidGradlePlugin = "7.2.1" +# https://developers.google.com/android/guides/google-services-plugin +googleServicesPlugin = "4.3.13" +# https://mvnrepository.com/artifact/com.google.firebase/firebase-crashlytics-gradle +firebaseCrashlytics = "2.9.1" +# https://kotlinlang.org/docs/gradle.html +kotlin = "1.7.10" +# https://developer.android.com/jetpack/androidx/releases/navigation +googleNavigation = "2.5.1" +# https://dagger.dev/hilt/gradle-setup +hilt = "2.43.1" + +[libraries] +android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" } +google-servicesPlugin = { group = "com.google.gms", name = "google-services", version.ref = "googleServicesPlugin" } +firebase-crashlyticsPlugin = { group = "com.google.firebase", name = "firebase-crashlytics-gradle", version.ref = "firebaseCrashlytics" } +jetbrains-kotlinPlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" } +jetbrains-serializationPlugin = { group = "org.jetbrains.kotlin", name = "kotlin-serialization", version.ref = "kotlin" } +navigation-safeArgsPlugin = { group = "androidx.navigation", name = "navigation-safe-args-gradle-plugin", version.ref = "googleNavigation" } +dagger-hiltPlugin = { group = "com.google.dagger", name = "hilt-android-gradle-plugin", version.ref = "hilt" } From 51687437c0364489bcbb64ed4179930ddb44fd16 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Mon, 1 Aug 2022 21:14:54 +0200 Subject: [PATCH 2/6] Start working on extraction of versions --- app/build.gradle.kts | 12 +++--- build.gradle.kts | 6 +-- gradle/libs.versions.toml | 84 +++++++++++++++++++++++++++++++++++++-- 3 files changed, 90 insertions(+), 12 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c205938..89bb423 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -130,15 +130,15 @@ tasks.withType { } dependencies { - coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:${Dependencies.desugarVersion}") + coreLibraryDesugaring(libs.android.tools.desugar) - implementation("com.google.android.material:material:${Dependencies.materialVersion}") + implementation(libs.android.material.material) - implementation("androidx.navigation:navigation-fragment-ktx:${Dependencies.navVersion}") - implementation("androidx.navigation:navigation-runtime-ktx:${Dependencies.navVersion}") - implementation("androidx.navigation:navigation-ui-ktx:${Dependencies.navVersion}") + implementation(libs.androidx.navigation.fragmentKtx) + implementation(libs.androidx.navigation.runtimeKtx) + implementation(libs.androidx.navigation.uiKtx) - implementation("androidx.core:core-ktx:${Dependencies.coreKtxVersion}") + implementation(libs.androidx.coreKtx) implementation("androidx.appcompat:appcompat:${Dependencies.appcompatVersion}") diff --git a/build.gradle.kts b/build.gradle.kts index 909367e..3f735b7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,11 +8,11 @@ buildscript { dependencies { classpath(libs.android.gradlePlugin) classpath(libs.google.servicesPlugin) - classpath(libs.firebase.crashlyticsPlugin) + classpath(libs.google.firebase.crashlyticsPlugin) + classpath(libs.google.dagger.hiltPlugin) classpath(libs.jetbrains.kotlinPlugin) classpath(libs.jetbrains.serializationPlugin) - classpath(libs.navigation.safeArgsPlugin) - classpath(libs.dagger.hiltPlugin) + classpath(libs.androidx.navigation.safeArgsPlugin) } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 630f7ac..1a74cf8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,12 +11,90 @@ kotlin = "1.7.10" googleNavigation = "2.5.1" # https://dagger.dev/hilt/gradle-setup hilt = "2.43.1" +# https://github.com/protocolbuffers/protobuf/releases +protobuf = "3.21.4" +# https://github.com/google/protobuf-gradle-plugin/releases +protobufPlugin = "0.8.19" +# https://plugins.gradle.org/plugin/org.sonarqube +sonarqube = "3.4.0.2513" +# https://plugins.gradle.org/plugin/nl.neotech.plugin.rootcoverage +rootCoverage = "1.5.3" +# https://plugins.gradle.org/plugin/com.guardsquare.appsweep +appsweep = "1.1.0" +# https://github.com/material-components/material-components-android/releases +material = "1.6.1" +# https://developer.android.com/kotlin/ktx#core +coreKtx = "1.8.0" +# https://developer.android.com/jetpack/androidx/releases/appcompat +appcompat = "1.4.2" +# https://developer.android.com/jetpack/androidx/releases/constraintlayout +contraintLayout = "2.1.4" +# https://developer.android.com/jetpack/androidx/releases/swiperefreshlayout +swipeRefreshLayout = "1.1.0" +# https://developer.android.com/jetpack/androidx/releases/lifecycle +lifecycle = "2.5.1" +# https://github.com/square/retrofit/tags +retrofit = "2.9.0" +# https://github.com/JakeWharton/retrofit2-kotlinx-serialization-converter/tags +retrofitKotlinxSerialization = "0.8.0" +# https://github.com/Kotlin/kotlinx.serialization/releases +kotlinxSerialization = "1.3.3" +# https://github.com/square/okhttp/tags +okhttp = "4.10.0" +# https://github.com/JakeWharton/timber/releases +timber = "5.0.1" +# https://developer.android.com/jetpack/androidx/releases/paging +paging = "3.1.1" +# https://developer.android.com/jetpack/androidx/releases/room +room = "2.4.3" +# https://github.com/Kotlin/kotlinx-datetime/releases +kotlinxDatetime = "0.4.0" +# https://github.com/bumptech/glide/releases +glide = "4.13.2" +# https://github.com/androidbroadcast/ViewBindingPropertyDelegate/releases +viewBindingDelegate = "1.5.6" +# https://developer.android.com/jetpack/androidx/releases/datastore +datastore = "1.0.0" +# https://developer.android.com/jetpack/androidx/releases/security +security = "1.0.0" +# https://mvnrepository.com/artifact/com.google.firebase/firebase-bom?repo=google +firebase = "30.3.1" +# https://github.com/junit-team/junit4/releases +junit = "4.13.2" +# https://developer.android.com/jetpack/androidx/releases/test +junitKtx = "1.1.3" +# https://github.com/Kotlin/kotlinx.coroutines/releases +coroutines = "1.6.4" +# https://github.com/robolectric/robolectric/releases +robolectric = "4.8.1" +# https://mvnrepository.com/artifact/com.google.truth/truth +truth = "1.1.3" +# https://mockk.io/ +mockk = "1.12.5" +# https://github.com/square/leakcanary/releases +leakcanary = "2.9.1" +# https://github.com/ChuckerTeam/chucker/releases +chucker = "3.5.2" +# https://developer.android.com/studio/write/java8-support#library-desugaring +desugar = "1.1.5" +# https://github.com/google/ksp/releases +kspPlugin = "1.7.10-1.0.6" [libraries] android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" } +android-tools-desugar = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "desugar" } +android-material-material = { group = "com.google.android.material", name = "material", version.ref = "material" } + google-servicesPlugin = { group = "com.google.gms", name = "google-services", version.ref = "googleServicesPlugin" } -firebase-crashlyticsPlugin = { group = "com.google.firebase", name = "firebase-crashlytics-gradle", version.ref = "firebaseCrashlytics" } +google-firebase-crashlyticsPlugin = { group = "com.google.firebase", name = "firebase-crashlytics-gradle", version.ref = "firebaseCrashlytics" } +google-dagger-hiltPlugin = { group = "com.google.dagger", name = "hilt-android-gradle-plugin", version.ref = "hilt" } + jetbrains-kotlinPlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" } jetbrains-serializationPlugin = { group = "org.jetbrains.kotlin", name = "kotlin-serialization", version.ref = "kotlin" } -navigation-safeArgsPlugin = { group = "androidx.navigation", name = "navigation-safe-args-gradle-plugin", version.ref = "googleNavigation" } -dagger-hiltPlugin = { group = "com.google.dagger", name = "hilt-android-gradle-plugin", version.ref = "hilt" } + +androidx-navigation-safeArgsPlugin = { group = "androidx.navigation", name = "navigation-safe-args-gradle-plugin", version.ref = "googleNavigation" } +androidx-navigation-fragmentKtx = { group = "androidx.navigation", name = "navigation-fragment-ktx", version.ref = "googleNavigation" } +androidx-navigation-runtimeKtx = { group = "androidx.navigation", name = "navigation-runtime-ktx", version.ref = "googleNavigation" } +androidx-navigation-uiKtx = { group = "androidx.navigation", name = "navigation-ui-ktx", version.ref = "googleNavigation" } + +androidx-coreKtx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } From 7601702235521cfba5915c1ca791c50d29966a32 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Mon, 1 Aug 2022 22:14:17 +0200 Subject: [PATCH 3/6] Move libraries versions to version catalog --- app/build.gradle.kts | 93 +++++++++++++++++++-------------------- gradle/libs.versions.toml | 68 +++++++++++++++++++++++++++- 2 files changed, 113 insertions(+), 48 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 89bb423..9714b6a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -140,86 +140,85 @@ dependencies { implementation(libs.androidx.coreKtx) - implementation("androidx.appcompat:appcompat:${Dependencies.appcompatVersion}") + implementation(libs.androidx.appcompat) - implementation("androidx.constraintlayout:constraintlayout:${Dependencies.contraintLayoutVersion}") + implementation(libs.androidx.constraintLayout) - implementation("androidx.swiperefreshlayout:swiperefreshlayout:${Dependencies.swipeRefreshLayoutVersion}") + implementation(libs.androidx.swipeRefreshLayout) - implementation("androidx.lifecycle:lifecycle-livedata-ktx:${Dependencies.lifecycleVersion}") - implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:${Dependencies.lifecycleVersion}") + implementation(libs.androidx.lifecycle.livedataKtx) + implementation(libs.androidx.lifecycle.viewmodelKtx) - implementation("com.google.dagger:hilt-android:${Dependencies.hiltVersion}") - kapt("com.google.dagger:hilt-compiler:${Dependencies.hiltVersion}") - kaptTest("com.google.dagger:hilt-android-compiler:${Dependencies.hiltVersion}") - testImplementation("com.google.dagger:hilt-android-testing:${Dependencies.hiltVersion}") + implementation(libs.google.dagger.hiltAndroid) + kapt(libs.google.dagger.hiltCompiler) + kaptTest(libs.google.dagger.hiltAndroidCompiler) + testImplementation(libs.google.dagger.hiltAndroidTesting) - implementation("com.squareup.retrofit2:retrofit:${Dependencies.retrofitVersion}") + implementation(libs.squareup.retrofit) - implementation("com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:${Dependencies.retrofitKotlinxSerializationVersion}") + implementation(libs.jakewharton.retrofitSerialization) - implementation(platform("com.squareup.okhttp3:okhttp-bom:${Dependencies.okhttpVersion}")) - implementation("com.squareup.okhttp3:okhttp") - debugImplementation("com.squareup.okhttp3:logging-interceptor") + implementation(platform(libs.okhttp3.bom)) + implementation(libs.okhttp3.okhttp) + debugImplementation(libs.okhttp3.loggingInterceptor) - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:${Dependencies.kotlinxSerializationVersion}") + implementation(libs.jetbrains.kotlinx.serialization) - implementation("com.jakewharton.timber:timber:${Dependencies.timberVersion}") + implementation(libs.jakewharton.timber) - implementation("androidx.paging:paging-runtime-ktx:${Dependencies.pagingVersion}") - testImplementation("androidx.paging:paging-common-ktx:${Dependencies.pagingVersion}") + implementation(libs.androidx.paging.runtimeKtx) + testImplementation(libs.androidx.paging.commonKtx) - implementation("androidx.room:room-runtime:${Dependencies.roomVersion}") - implementation("androidx.room:room-ktx:${Dependencies.roomVersion}") - implementation("androidx.room:room-paging:${Dependencies.roomVersion}") - ksp("androidx.room:room-compiler:${Dependencies.roomVersion}") - testImplementation("androidx.room:room-testing:${Dependencies.roomVersion}") + implementation(libs.androidx.room.runtime) + implementation(libs.androidx.room.ktx) + implementation(libs.androidx.room.paging) + ksp(libs.androidx.room.compiler) + testImplementation(libs.androidx.room.testing) - implementation("org.jetbrains.kotlinx:kotlinx-datetime:${Dependencies.kotlinxDatetimeVersion}") + implementation(libs.jetbrains.kotlinx.datetime) - implementation("com.github.bumptech.glide:glide:${Dependencies.glideVersion}") - implementation("com.github.bumptech.glide:okhttp3-integration:${Dependencies.glideVersion}") - implementation("com.github.bumptech.glide:recyclerview-integration:${Dependencies.glideVersion}") { + implementation(libs.bumptech.glide.glide) + implementation(libs.bumptech.glide.okhttp3) + implementation(libs.bumptech.glide.recyclerview) { // Excludes the support library because it's already included by Glide. isTransitive = false } - kapt("com.github.bumptech.glide:compiler:${Dependencies.glideVersion}") + kapt(libs.bumptech.glide.compiler) - implementation("com.github.kirich1409:viewbindingpropertydelegate-noreflection:${Dependencies.viewBindingDelegateVersion}") + implementation(libs.kirich1409.viewBinding) - implementation("androidx.datastore:datastore-preferences:${Dependencies.datastoreVersion}") - implementation("androidx.datastore:datastore:${Dependencies.datastoreVersion}") + implementation(libs.androidx.datastore.preferences) + implementation(libs.androidx.datastore.datastore) - implementation("com.google.protobuf:protobuf-javalite:${Dependencies.protobufVersion}") + implementation(libs.google.protobuf.javalite) - implementation("androidx.security:security-crypto:${Dependencies.securityVersion}") + implementation(libs.androidx.security.crypto) - implementation(platform("com.google.firebase:firebase-bom:${Dependencies.firebaseVersion}")) - implementation("com.google.firebase:firebase-analytics-ktx") - implementation("com.google.firebase:firebase-crashlytics-ktx") + implementation(platform(libs.google.firebase.bom)) + implementation(libs.google.firebase.analyticsKtx) + implementation(libs.google.firebase.crashlyticsKtx) - testImplementation("junit:junit:${Dependencies.junitVersion}") + testImplementation(libs.junit) - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:${Dependencies.coroutinesVersion}") - testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:${Dependencies.coroutinesVersion}") + implementation(libs.jetbrains.kotlinx.coroutinesAndroid) + testImplementation(libs.jetbrains.kotlinx.coroutinesTest) - testImplementation("org.robolectric:robolectric:${Dependencies.robolectricVersion}") + testImplementation(libs.robolectric) - testImplementation("androidx.test.ext:junit-ktx:${Dependencies.junitKtxVersion}") + testImplementation(libs.androidx.test.junit) - testImplementation("com.google.truth:truth:${Dependencies.truthVersion}") + testImplementation(libs.google.truth) - testImplementation("io.mockk:mockk:${Dependencies.mockkVersion}") + testImplementation(libs.io.mockk) - debugImplementation("com.squareup.leakcanary:leakcanary-android:${Dependencies.leakcanaryVersion}") + debugImplementation(libs.squareup.leakcanary) - // https://github.com/ChuckerTeam/chucker/releases - debugImplementation("com.github.chuckerteam.chucker:library:${Dependencies.chuckerVersion}") + debugImplementation(libs.chuckerteam.chucker) } protobuf { protoc { - artifact = "com.google.protobuf:protoc:${Dependencies.protobufVersion}" + artifact = libs.google.protobuf.protoc.get().toString() } generateProtoTasks { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1a74cf8..9f0b48d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -86,15 +86,81 @@ android-tools-desugar = { group = "com.android.tools", name = "desugar_jdk_libs" android-material-material = { group = "com.google.android.material", name = "material", version.ref = "material" } google-servicesPlugin = { group = "com.google.gms", name = "google-services", version.ref = "googleServicesPlugin" } -google-firebase-crashlyticsPlugin = { group = "com.google.firebase", name = "firebase-crashlytics-gradle", version.ref = "firebaseCrashlytics" } + google-dagger-hiltPlugin = { group = "com.google.dagger", name = "hilt-android-gradle-plugin", version.ref = "hilt" } +google-dagger-hiltAndroid = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" } +google-dagger-hiltCompiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "hilt" } +google-dagger-hiltAndroidCompiler = { group = "com.google.dagger", name = "hilt-android-compiler", version.ref = "hilt" } +google-dagger-hiltAndroidTesting = { group = "com.google.dagger", name = "hilt-android-testing", version.ref = "hilt" } + +google-protobuf-javalite = { group = "com.google.protobuf", name = "protobuf-javalite", version.ref = "protobuf" } +google-protobuf-protoc = { group = "com.google.protobuf", name = "protoc", version.ref = "protobuf" } + +google-firebase-crashlyticsPlugin = { group = "com.google.firebase", name = "firebase-crashlytics-gradle", version.ref = "firebaseCrashlytics" } +google-firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebase" } +google-firebase-analyticsKtx = { group = "com.google.firebase", name = "firebase-analytics-ktx" } +google-firebase-crashlyticsKtx = { group = "com.google.firebase", name = "firebase-crashlytics-ktx" } + +google-truth = { group = "com.google.truth", name = "truth", version.ref = "truth" } jetbrains-kotlinPlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" } jetbrains-serializationPlugin = { group = "org.jetbrains.kotlin", name = "kotlin-serialization", version.ref = "kotlin" } +jetbrains-kotlinx-serialization = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerialization" } +jetbrains-kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinxDatetime" } +jetbrains-kotlinx-coroutinesAndroid = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "coroutines" } +jetbrains-kotlinx-coroutinesTest = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "coroutines" } + androidx-navigation-safeArgsPlugin = { group = "androidx.navigation", name = "navigation-safe-args-gradle-plugin", version.ref = "googleNavigation" } androidx-navigation-fragmentKtx = { group = "androidx.navigation", name = "navigation-fragment-ktx", version.ref = "googleNavigation" } androidx-navigation-runtimeKtx = { group = "androidx.navigation", name = "navigation-runtime-ktx", version.ref = "googleNavigation" } androidx-navigation-uiKtx = { group = "androidx.navigation", name = "navigation-ui-ktx", version.ref = "googleNavigation" } androidx-coreKtx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } +androidx-constraintLayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "contraintLayout" } +androidx-swipeRefreshLayout = { group = "androidx.swiperefreshlayout", name = "swiperefreshlayout", version.ref = "swipeRefreshLayout" } + +androidx-paging-runtimeKtx = { group = "androidx.paging", name = "paging-runtime-ktx", version.ref = "paging" } +androidx-paging-commonKtx = { group = "androidx.paging", name = "paging-common-ktx", version.ref = "paging" } + +androidx-lifecycle-livedataKtx = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "lifecycle" } +androidx-lifecycle-viewmodelKtx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "lifecycle" } + +androidx-datastore-preferences = { group = "androidx.datastore", name = "datastore-preferences", version.ref = "datastore" } +androidx-datastore-datastore = { group = "androidx.datastore", name = "datastore", version.ref = "datastore" } + +androidx-room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" } +androidx-room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" } +androidx-room-paging = { group = "androidx.room", name = "room-paging", version.ref = "room" } +androidx-room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" } +androidx-room-testing = { group = "androidx.room", name = "room-testing", version.ref = "room" } + +androidx-test-junit = { group = "androidx.test.ext", name = "junit-ktx", version.ref = "junitKtx" } +androidx-security-crypto = { group = "androidx.security", name = "security-crypto", version.ref = "security" } + +jakewharton-retrofitSerialization = { group = "com.jakewharton.retrofit", name = "retrofit2-kotlinx-serialization-converter", version.ref = "retrofitKotlinxSerialization" } +jakewharton-timber = { group = "com.jakewharton.timber", name = "timber", version.ref = "timber" } + +squareup-retrofit = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" } + +squareup-leakcanary = { group = "com.squareup.leakcanary", name = "leakcanary-android", version.ref = "leakcanary" } + +okhttp3-bom = { group = "com.squareup.okhttp3", name = "okhttp-bom", version.ref = "okhttp" } +okhttp3-okhttp = { group = "com.squareup.okhttp3", name = "okhttp" } +okhttp3-loggingInterceptor = { group = "com.squareup.okhttp3", name = "logging-interceptor" } + +bumptech-glide-glide = { group = "com.github.bumptech.glide", name = "glide", version.ref = "glide" } +bumptech-glide-okhttp3 = { group = "com.github.bumptech.glide", name = "okhttp3-integration", version.ref = "glide" } +bumptech-glide-recyclerview = { group = "com.github.bumptech.glide", name = "recyclerview-integration", version.ref = "glide" } +bumptech-glide-compiler = { group = "com.github.bumptech.glide", name = "compiler", version.ref = "glide" } + +kirich1409-viewBinding = { group = "com.github.kirich1409", name = "viewbindingpropertydelegate-noreflection", version.ref = "viewBindingDelegate" } + +junit = { group = "junit", name = "junit", version.ref = "junit" } + +robolectric = { group = "org.robolectric", name = "robolectric", version.ref = "robolectric" } + +io-mockk = { group = "io.mockk", name = "mockk", version.ref = "mockk" } + +chuckerteam-chucker = { group = "com.github.chuckerteam.chucker", name = "library", version.ref = "chucker" } \ No newline at end of file From d80ae83c7d39e90f574511561e594ec8e28cf812 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Mon, 1 Aug 2022 22:23:12 +0200 Subject: [PATCH 4/6] Move plugin versions to version catalog --- app/build.gradle.kts | 6 +++--- build.gradle.kts | 4 ++-- gradle/libs.versions.toml | 9 ++++++++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9714b6a..c220527 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -17,9 +17,9 @@ plugins { id("org.jetbrains.kotlin.plugin.serialization") id("com.google.gms.google-services") id("com.google.firebase.crashlytics") - id("com.guardsquare.appsweep") version Dependencies.appsweepVersion - id("com.google.protobuf") version Dependencies.protobufPluginVersion - id("com.google.devtools.ksp") version Dependencies.kspPluginVersion + alias(libs.plugins.appsweep) + alias(libs.plugins.protobuf) + alias(libs.plugins.ksp) } android { diff --git a/build.gradle.kts b/build.gradle.kts index 3f735b7..9353a6a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,8 +17,8 @@ buildscript { } plugins { - id("org.sonarqube") version Dependencies.sonarqubeVersion - id("nl.neotech.plugin.rootcoverage") version Dependencies.rootCoverageVersion + alias(libs.plugins.sonarqube) + alias(libs.plugins.rootcoverage) } sonarqube { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9f0b48d..c723c46 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -163,4 +163,11 @@ robolectric = { group = "org.robolectric", name = "robolectric", version.ref = " io-mockk = { group = "io.mockk", name = "mockk", version.ref = "mockk" } -chuckerteam-chucker = { group = "com.github.chuckerteam.chucker", name = "library", version.ref = "chucker" } \ No newline at end of file +chuckerteam-chucker = { group = "com.github.chuckerteam.chucker", name = "library", version.ref = "chucker" } + +[plugins] +sonarqube = { id = "org.sonarqube", version.ref = "sonarqube" } +rootcoverage = { id = "nl.neotech.plugin.rootcoverage", version.ref = "rootCoverage" } +appsweep = { id = "com.guardsquare.appsweep", version.ref = "appsweep" } +ksp = { id = "com.google.devtools.ksp", version.ref = "kspPlugin" } +protobuf = { id = "com.google.protobuf", version.ref = "protobufPlugin" } From e53efc03075b0b7e79a02c4c72a52e98a1600ec4 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Mon, 1 Aug 2022 22:26:35 +0200 Subject: [PATCH 5/6] Move SDK versions to version catalog --- app/build.gradle.kts | 6 +++--- gradle/libs.versions.toml | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c220527..af388a3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -23,12 +23,12 @@ plugins { } android { - compileSdk = Dependencies.compileSdkVersion + compileSdk = libs.versions.compileSdk.get().toInt() defaultConfig { applicationId = "gq.kirmanak.mealient" - minSdk = Dependencies.minSdkVersion - targetSdk = Dependencies.targetSdkVersion + minSdk = libs.versions.minSdk.get().toInt() + targetSdk = libs.versions.targetSdk.get().toInt() versionCode = 13 versionName = "0.2.4" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c723c46..575762d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,4 +1,8 @@ [versions] +compileSdk = "32" +minSdk = "23" +targetSdk = "32" + # https://maven.google.com/web/index.html?q=com.android.tools.build#com.android.tools.build:gradle androidGradlePlugin = "7.2.1" # https://developers.google.com/android/guides/google-services-plugin From 3941a9d41044e771af49eebe34689a7cdf070a27 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Mon, 1 Aug 2022 22:26:45 +0200 Subject: [PATCH 6/6] Remove unused Dependencies.kt file --- buildSrc/src/main/kotlin/Dependencies.kt | 113 ----------------------- 1 file changed, 113 deletions(-) delete mode 100644 buildSrc/src/main/kotlin/Dependencies.kt diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt deleted file mode 100644 index 457faa2..0000000 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ /dev/null @@ -1,113 +0,0 @@ -object Dependencies { - const val compileSdkVersion = 32 - const val minSdkVersion = 23 - const val targetSdkVersion = 32 - - // https://github.com/protocolbuffers/protobuf/releases - const val protobufVersion = "3.21.4" - - // https://github.com/google/protobuf-gradle-plugin/releases - const val protobufPluginVersion = "0.8.19" - - // https://developer.android.com/jetpack/androidx/releases/navigation - const val navVersion = "2.5.1" - - // https://dagger.dev/hilt/gradle-setup - const val hiltVersion = "2.43.1" - - // https://plugins.gradle.org/plugin/org.sonarqube - const val sonarqubeVersion = "3.4.0.2513" - - // https://plugins.gradle.org/plugin/nl.neotech.plugin.rootcoverage - const val rootCoverageVersion = "1.5.3" - - // https://plugins.gradle.org/plugin/com.guardsquare.appsweep - const val appsweepVersion = "1.1.0" - - // https://github.com/material-components/material-components-android/releases - const val materialVersion = "1.6.1" - - // https://developer.android.com/kotlin/ktx#core - const val coreKtxVersion = "1.8.0" - - // https://developer.android.com/jetpack/androidx/releases/appcompat - const val appcompatVersion = "1.4.2" - - // https://developer.android.com/jetpack/androidx/releases/constraintlayout - const val contraintLayoutVersion = "2.1.4" - - // https://developer.android.com/jetpack/androidx/releases/swiperefreshlayout - const val swipeRefreshLayoutVersion = "1.1.0" - - // https://developer.android.com/jetpack/androidx/releases/lifecycle - const val lifecycleVersion = "2.5.1" - - // https://github.com/square/retrofit/tags - const val retrofitVersion = "2.9.0" - - // https://github.com/JakeWharton/retrofit2-kotlinx-serialization-converter/tags - const val retrofitKotlinxSerializationVersion = "0.8.0" - - // https://github.com/Kotlin/kotlinx.serialization/releases - const val kotlinxSerializationVersion = "1.3.3" - - // https://github.com/square/okhttp/tags - const val okhttpVersion = "4.10.0" - - // https://github.com/JakeWharton/timber/releases - const val timberVersion = "5.0.1" - - // https://developer.android.com/jetpack/androidx/releases/paging - const val pagingVersion = "3.1.1" - - // https://developer.android.com/jetpack/androidx/releases/room - const val roomVersion = "2.4.3" - - // https://github.com/Kotlin/kotlinx-datetime/releases - const val kotlinxDatetimeVersion = "0.4.0" - - // https://github.com/bumptech/glide/releases - const val glideVersion = "4.13.2" - - // https://github.com/androidbroadcast/ViewBindingPropertyDelegate/releases - const val viewBindingDelegateVersion = "1.5.6" - - // https://developer.android.com/jetpack/androidx/releases/datastore - const val datastoreVersion = "1.0.0" - - // https://developer.android.com/jetpack/androidx/releases/security - const val securityVersion = "1.0.0" - - // https://mvnrepository.com/artifact/com.google.firebase/firebase-bom?repo=google - const val firebaseVersion = "30.3.1" - - // https://github.com/junit-team/junit4/releases - const val junitVersion = "4.13.2" - - // https://developer.android.com/jetpack/androidx/releases/test - const val junitKtxVersion = "1.1.3" - - // https://github.com/Kotlin/kotlinx.coroutines/releases - const val coroutinesVersion = "1.6.4" - - // https://github.com/robolectric/robolectric/releases - const val robolectricVersion = "4.8.1" - - // https://mvnrepository.com/artifact/com.google.truth/truth - const val truthVersion = "1.1.3" - - // https://mockk.io/ - const val mockkVersion = "1.12.5" - - // https://github.com/square/leakcanary/releases - const val leakcanaryVersion = "2.9.1" - - // https://github.com/ChuckerTeam/chucker/releases - const val chuckerVersion = "3.5.2" - - // https://developer.android.com/studio/write/java8-support#library-desugaring - const val desugarVersion = "1.1.5" - - // https://github.com/google/ksp/releases - const val kspPluginVersion = "1.7.10-1.0.6" -}