diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c205938..af388a3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -17,18 +17,18 @@ 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 { - 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" @@ -130,96 +130,95 @@ 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}") + 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/build.gradle.kts b/build.gradle.kts index 5dde6f6..9353a6a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,19 +6,19 @@ 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.google.firebase.crashlyticsPlugin) + classpath(libs.google.dagger.hiltPlugin) + classpath(libs.jetbrains.kotlinPlugin) + classpath(libs.jetbrains.serializationPlugin) + classpath(libs.androidx.navigation.safeArgsPlugin) } } 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/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt deleted file mode 100644 index 91842ec..0000000 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ /dev/null @@ -1,125 +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://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" - - // 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" -} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..575762d --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,177 @@ +[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 +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" +# 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" } + +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" } + +[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" }