From 627f278849c63934734e6d792985441c59af5032 Mon Sep 17 00:00:00 2001
From: Cesar Morigaki <38049362+cmorigaki@users.noreply.github.com>
Date: Tue, 14 Feb 2023 15:44:03 -0300
Subject: [PATCH] Using version catalog to declare shared dependencies (#49)
## Context
Using version catalog to declare shared dependencies
https://docs.gradle.org/current/userguide/platforms.html
## Code
- Following the guide
---
.idea/codeStyles/Project.xml | 8 --
app/build.gradle | 41 +++++-----
build.gradle | 38 +++------
core-android/build.gradle | 27 ++++---
features/in-app-update/build.gradle | 6 +-
features/recipe-collection/build.gradle | 2 +-
features/recipe-detail/build.gradle | 2 +-
gradle.properties | 4 +-
gradle/libs.versions.toml | 78 ++++++++++++++++++
.../analytics-amplitude/build.gradle | 23 +++---
infrastructure/analytics/build.gradle | 6 +-
infrastructure/configuration/build.gradle | 31 +++----
infrastructure/design-system/build.gradle | 27 ++++---
infrastructure/device/build.gradle | 19 ++---
infrastructure/image/build.gradle | 21 ++---
infrastructure/monitoring/build.gradle | 23 +++---
infrastructure/navigation/build.gradle | 17 ++--
infrastructure/startup/build.gradle | 18 +++--
project-config/dependencies.gradle | 81 -------------------
project-config/feature-complete-build.gradle | 58 ++++++-------
settings.gradle | 8 ++
utility/utility-android/build.gradle | 27 ++++---
utility/utility-kotlin/build.gradle | 8 +-
23 files changed, 288 insertions(+), 285 deletions(-)
create mode 100644 gradle/libs.versions.toml
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index bafbb13..191ec49 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -33,17 +33,9 @@
-
-
-
-
-
-
diff --git a/app/build.gradle b/app/build.gradle
index 1baebd0..aedf81c 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,20 +1,22 @@
-apply plugin: "com.android.application"
-apply plugin: 'kotlin-android'
-apply plugin: 'com.starter.easylauncher'
+plugins {
+ alias(libs.plugins.android.application)
+ alias(libs.plugins.kotlin.android)
+ alias(libs.plugins.easylauncher)
+}
apply from: "$rootDir/project-config/api-properties/api-properties.gradle"
android {
- compileSdkVersion AndroidConfig.compileSdk
- buildToolsVersion AndroidConfig.buildTools
+ compileSdk libs.versions.compileSdk.get() as int
+ namespace 'br.com.recipebook'
defaultConfig {
- applicationId AndroidConfig.applicationId
+ applicationId "br.com.recipebook"
- minSdkVersion AndroidConfig.minSdk
- targetSdkVersion AndroidConfig.targetSdk
- versionCode AndroidConfig.versionCode
- versionName AndroidConfig.versionName
+ minSdk libs.versions.minSdk.get() as int
+ targetSdk libs.versions.compileSdk.get() as int
+ versionCode 10000001 // x.xxx.xx-xx
+ versionName "1.0.0"
}
buildTypes {
@@ -42,15 +44,14 @@ android {
kotlinOptions {
jvmTarget = jvmTargetVersion
}
- namespace 'br.com.recipebook'
}
dependencies {
- implementation EnvironmentConfig.kotlinStdLib
- implementation AndroidLibConfig.coroutinesCore
+ implementation libs.kotlin.stdlib
+ implementation libs.coroutines.core
- implementation AndroidLibConfig.koinCore
- implementation AndroidLibConfig.koinAndroidExt
+ implementation libs.koin.core
+ implementation libs.koin.android
implementation project(ProjectConfig.coreAndroid)
implementation project(ProjectConfig.utilityAndroid)
@@ -64,8 +65,8 @@ dependencies {
implementation project(ProjectConfig.monitoring)
implementation project(ProjectConfig.device)
- implementation AndroidLibConfig.sentry
- implementation AndroidLibConfig.timber
+ implementation libs.sentry
+ implementation libs.timber
implementation project(Features.recipeCollection)
implementation project(Features.recipeDetail)
@@ -73,9 +74,9 @@ dependencies {
implementation project(Features.settingsTheme)
implementation project(Features.inAppUpdate)
- testImplementation TestConfig.jUnit
- testImplementation TestConfig.mockk
+ testImplementation libs.junit
+ testImplementation libs.mockk
// debugImplementation because LeakCanary should only run in debug builds.
- debugImplementation AndroidLibConfig.leakCanary
+ debugImplementation libs.leak.canary
}
diff --git a/build.gradle b/build.gradle
index 3b21bd6..8dbb300 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,43 +1,29 @@
+plugins {
+ // Need to declare all plugins here
+ alias(libs.plugins.android.application) apply false
+ alias(libs.plugins.android.library) apply false
+ alias(libs.plugins.kotlin.jvm) apply false
+ alias(libs.plugins.kotlin.android) apply false
+ alias(libs.plugins.kotlin.kapt)
+ alias(libs.plugins.easylauncher) apply false
+ alias(libs.plugins.gradle.deps.update)
+}
+
// Dependency version definitions
apply from: "project-config/dependencies.gradle"
// Dependency version checker
// Usage: ./gradlew dependencyUpdates -Drevision=release
-apply plugin: "com.github.ben-manes.versions"
apply from: "project-config/dependencies-checker/dependencies-checker.gradle"
// Test coverage
// Usage ./gradlew jacocoTestReport
apply from: "$rootDir/quality/test-coverage-setup.gradle"
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-buildscript {
- repositories {
- mavenCentral()
- google()
- gradlePluginPortal() // ben-manes
- }
- ext {
- composeVersion = '1.3.2'
- kotlinVersion = "1.7.20"
- gradleVersion = '7.3.1'
- }
-
- dependencies {
- classpath "com.android.tools.build:gradle:$gradleVersion"
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
- classpath "com.github.ben-manes:gradle-versions-plugin:0.43.0"
- classpath "com.project.starter:easylauncher:5.1.2" // variant ribbon
-
- // NOTE: Do not place your application dependencies here; they belong
- // in the individual module build.gradle files
- }
-}
-
allprojects {
repositories {
- google()
mavenCentral()
+ google()
}
}
diff --git a/core-android/build.gradle b/core-android/build.gradle
index 947d716..240b2e2 100644
--- a/core-android/build.gradle
+++ b/core-android/build.gradle
@@ -1,13 +1,14 @@
-apply plugin: "com.android.library"
-apply plugin: 'kotlin-android'
+plugins {
+ alias(libs.plugins.android.library)
+ alias(libs.plugins.kotlin.android)
+}
android {
- compileSdkVersion AndroidConfig.compileSdk
- buildToolsVersion AndroidConfig.buildTools
+ compileSdk libs.versions.compileSdk.get() as int
defaultConfig {
- minSdkVersion AndroidConfig.minSdk
- targetSdkVersion AndroidConfig.targetSdk
+ minSdk libs.versions.minSdk.get() as int
+ targetSdk libs.versions.compileSdk.get() as int
}
buildFeatures {
@@ -25,17 +26,17 @@ android {
}
dependencies {
- implementation EnvironmentConfig.kotlinStdLib
+ implementation libs.kotlin.stdlib
- implementation AndroidLibConfig.koinCore
+ implementation libs.koin.core
- implementation AndroidLibConfig.retrofit
- implementation AndroidLibConfig.moshiConverter
- implementation AndroidLibConfig.moshi
+ implementation libs.retrofit
+ implementation libs.moshi.converter
+ implementation libs.moshi
implementation project(ProjectConfig.utilityAndroid)
implementation project(ProjectConfig.utilityKotlin)
- testImplementation TestConfig.jUnit
- testImplementation TestConfig.mockk
+ testImplementation libs.junit
+ testImplementation libs.mockk
}
\ No newline at end of file
diff --git a/features/in-app-update/build.gradle b/features/in-app-update/build.gradle
index 2dcc5b0..2a14d3b 100644
--- a/features/in-app-update/build.gradle
+++ b/features/in-app-update/build.gradle
@@ -6,9 +6,9 @@ android {
}
dependencies {
- implementation AndroidLibConfig.playCore
- implementation AndroidLibConfig.playCoreExtensions
- implementation AndroidLibConfig.fragment
+ implementation libs.play.core
+ implementation libs.play.core.extensions
+ implementation libs.fragment
implementation project(ProjectConfig.configuration)
implementation project(ProjectConfig.monitoring)
diff --git a/features/recipe-collection/build.gradle b/features/recipe-collection/build.gradle
index e101713..3b2401b 100644
--- a/features/recipe-collection/build.gradle
+++ b/features/recipe-collection/build.gradle
@@ -4,7 +4,7 @@ android {
}
dependencies {
- implementation AndroidLibConfig.composeSwipeRefresh
+ implementation libs.compose.swipeRefresh
implementation project(ProjectConfig.analytics)
implementation project(ProjectConfig.device)
diff --git a/features/recipe-detail/build.gradle b/features/recipe-detail/build.gradle
index 5e355fe..25f63b4 100644
--- a/features/recipe-detail/build.gradle
+++ b/features/recipe-detail/build.gradle
@@ -6,7 +6,7 @@ android {
}
dependencies {
- implementation AndroidLibConfig.composeCollapsingToolbar
+ implementation libs.compose.collapsingToolbar
implementation project(ProjectConfig.analytics)
implementation project(ProjectConfig.device)
diff --git a/gradle.properties b/gradle.properties
index df1f6c0..f996dae 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -16,4 +16,6 @@ org.gradle.parallel=true
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Kotlin code style for this project: "official" or "obsolete":
-kotlin.code.style=official
\ No newline at end of file
+kotlin.code.style=official
+# Temporary solution for easylauncher plugin
+android.disableResourceValidation=true
\ No newline at end of file
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
new file mode 100644
index 0000000..16bedcc
--- /dev/null
+++ b/gradle/libs.versions.toml
@@ -0,0 +1,78 @@
+[versions]
+gradleplugin = "7.3.1"
+kotlin = "1.7.20"
+minSdk = "23"
+compileSdk = "33"
+compose = "1.3.2"
+
+[libraries]
+# Kotlin
+kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }
+kotlin-jdk = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" }
+coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version = "1.6.4" }
+kotlin-result = { module = "com.michael-bull.kotlin-result:kotlin-result", version = "1.1.16" }
+
+# Debug
+leak-canary = { module = "com.squareup.leakcanary:leakcanary-android", version = "2.9.1" }
+
+# Compose
+compose-bom = { module = "androidx.compose:compose-bom", version = "2022.10.00" }
+compose-ui = { module = "androidx.compose.ui:ui" }
+compose-foundation = { module = "androidx.compose.foundation:foundation" }
+compose-material = { module = "androidx.compose.material:material" }
+compose-materialIcons = { module = "androidx.compose.material:material-icons-core" }
+compose-materialIconsExt = { module = "androidx.compose.material:material-icons-extended" }
+compose-tooling = { module = "androidx.compose.ui:ui-tooling" }
+compose-activity = { module = "androidx.activity:activity-compose", version = "1.6.1" }
+compose-swipeRefresh = { module = "com.google.accompanist:accompanist-swiperefresh", version = "0.27.0" }
+compose-collapsingToolbar = { module = "me.onebone:toolbar-compose", version = "2.3.5" }
+
+# Network related libraries
+retrofit = { module = "com.squareup.retrofit2:retrofit", version = "2.9.0" }
+okhttp = { module = "com.squareup.okhttp3:okhttp", version = "4.10.0" }
+moshi-converter = { module = "com.squareup.retrofit2:converter-moshi", version = "2.9.0" }
+moshi-codegen = { module = "com.squareup.moshi:moshi-kotlin-codegen", version = "1.14.0" }
+moshi = { module = "com.squareup.moshi:moshi", version = "1.14.0" }
+
+# Android components
+appCompat = { module = "androidx.appcompat:appcompat", version = "1.5.1" }
+viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version = "2.4.1" }
+fragment = { module = "androidx.fragment:fragment-ktx", version = "1.5.4" }
+material = { module = "com.google.android.material:material", version = "1.7.0" }
+
+# Android utilities
+play-core = { module = "com.google.android.play:core", version = "1.10.3" } # For in-App update
+play-core-extensions = { module = "com.google.android.play:core-ktx", version = "1.8.1" }
+
+# DI
+koin-core = { module = "io.insert-koin:koin-core", version = "3.2.2" }
+koin-android = { module = "io.insert-koin:koin-android", version = "3.3.0" }
+
+# Image download library
+coil = { module = "io.coil-kt:coil", version = "2.2.2" }
+coil-compose = { module = "io.coil-kt:coil-compose", version = "2.2.2" }
+
+# Crash reporting library
+sentry = { module = "io.sentry:sentry-android", version = "6.7.0" }
+
+# Analytics
+amplitude = { module = "com.amplitude:android-sdk", version = "3.35.1" }
+
+# Logging
+timber = { module = "com.jakewharton.timber:timber", version = "5.0.1" }
+
+# Testing
+junit = { module = "junit:junit", version = "4.13.2"}
+mockk = { module = "io.mockk:mockk", version = "1.13.2"}
+coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version = "1.5.2"}
+
+[bundles]
+
+[plugins]
+android-application = { id = "com.android.application", version.ref = "gradleplugin" }
+android-library = { id = "com.android.library", version.ref = "gradleplugin" }
+kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
+kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
+kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
+easylauncher = { id = "com.starter.easylauncher", version = "6.0.0" }
+gradle-deps-update = { id = "com.github.ben-manes.versions", version = "0.43.0" }
diff --git a/infrastructure/analytics-amplitude/build.gradle b/infrastructure/analytics-amplitude/build.gradle
index 96cfd09..56491d2 100644
--- a/infrastructure/analytics-amplitude/build.gradle
+++ b/infrastructure/analytics-amplitude/build.gradle
@@ -1,13 +1,14 @@
-apply plugin: "com.android.library"
-apply plugin: 'kotlin-android'
+plugins {
+ alias(libs.plugins.android.library)
+ alias(libs.plugins.kotlin.android)
+}
android {
- compileSdkVersion AndroidConfig.compileSdk
- buildToolsVersion AndroidConfig.buildTools
+ compileSdk libs.versions.compileSdk.get() as int
defaultConfig {
- minSdkVersion AndroidConfig.minSdk
- targetSdkVersion AndroidConfig.targetSdk
+ minSdk libs.versions.minSdk.get() as int
+ targetSdk libs.versions.compileSdk.get() as int
}
compileOptions {
@@ -21,13 +22,13 @@ android {
}
dependencies {
- implementation EnvironmentConfig.kotlinStdLib
+ implementation libs.kotlin.stdlib
- implementation AndroidLibConfig.koinCore
- implementation AndroidLibConfig.koinAndroidExt
+ implementation libs.koin.core
+ implementation libs.koin.android
- implementation AndroidLibConfig.amplitude
- implementation AndroidLibConfig.timber
+ implementation libs.amplitude
+ implementation libs.timber
implementation project(ProjectConfig.utilityAndroid)
implementation project(ProjectConfig.utilityKotlin)
diff --git a/infrastructure/analytics/build.gradle b/infrastructure/analytics/build.gradle
index 5511a89..8e2df67 100644
--- a/infrastructure/analytics/build.gradle
+++ b/infrastructure/analytics/build.gradle
@@ -1,5 +1,7 @@
-apply plugin: 'kotlin'
+plugins {
+ alias(libs.plugins.kotlin.jvm)
+}
dependencies {
- implementation EnvironmentConfig.kotlinJdk
+ implementation libs.kotlin.jdk
}
diff --git a/infrastructure/configuration/build.gradle b/infrastructure/configuration/build.gradle
index 10716b4..655acc2 100644
--- a/infrastructure/configuration/build.gradle
+++ b/infrastructure/configuration/build.gradle
@@ -1,14 +1,15 @@
-apply plugin: "com.android.library"
-apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-kapt'
+plugins {
+ alias(libs.plugins.android.library)
+ alias(libs.plugins.kotlin.android)
+ alias(libs.plugins.kotlin.kapt)
+}
android {
- compileSdkVersion AndroidConfig.compileSdk
- buildToolsVersion AndroidConfig.buildTools
+ compileSdk libs.versions.compileSdk.get() as int
defaultConfig {
- minSdkVersion AndroidConfig.minSdk
- targetSdkVersion AndroidConfig.targetSdk
+ minSdk libs.versions.minSdk.get() as int
+ targetSdk libs.versions.compileSdk.get() as int
}
compileOptions {
@@ -22,17 +23,17 @@ android {
}
dependencies {
- implementation EnvironmentConfig.kotlinJdk
- implementation AndroidLibConfig.coroutinesCore
- implementation AndroidLibConfig.kotlinResult
+ implementation libs.kotlin.jdk
+ implementation libs.coroutines.core
+ implementation libs.kotlin.result
- implementation AndroidLibConfig.koinCore
+ implementation libs.koin.core
implementation project(ProjectConfig.utilityKotlin)
implementation project(ProjectConfig.utilityAndroid)
- implementation AndroidLibConfig.retrofit
- implementation AndroidLibConfig.moshiConverter
- implementation AndroidLibConfig.moshi
- kapt AndroidLibConfig.moshiCodeGen
+ implementation libs.retrofit
+ implementation libs.moshi.converter
+ implementation libs.moshi
+ kapt libs.moshi.codegen
}
diff --git a/infrastructure/design-system/build.gradle b/infrastructure/design-system/build.gradle
index ca8a55d..f50ad43 100644
--- a/infrastructure/design-system/build.gradle
+++ b/infrastructure/design-system/build.gradle
@@ -1,13 +1,14 @@
-apply plugin: "com.android.library"
-apply plugin: 'kotlin-android'
+plugins {
+ alias(libs.plugins.android.library)
+ alias(libs.plugins.kotlin.android)
+}
android {
- compileSdkVersion AndroidConfig.compileSdk
- buildToolsVersion AndroidConfig.buildTools
+ compileSdk libs.versions.compileSdk.get() as int
defaultConfig {
- minSdkVersion AndroidConfig.minSdk
- targetSdkVersion AndroidConfig.targetSdk
+ minSdk libs.versions.minSdk.get() as int
+ targetSdk libs.versions.compileSdk.get() as int
}
buildFeatures {
@@ -25,20 +26,20 @@ android {
}
composeOptions {
- kotlinCompilerExtensionVersion composeVersion
+ kotlinCompilerExtensionVersion libs.versions.compose.get()
}
namespace 'br.com.recipebook.designsystem'
}
dependencies {
- implementation EnvironmentConfig.kotlinStdLib
+ implementation libs.kotlin.stdlib
- implementation AndroidLibConfig.appCompat
+ implementation libs.appCompat
- implementation AndroidLibConfig.material
- implementation platform(AndroidLibConfig.composeBOM)
- implementation AndroidLibConfig.composeTooling
- implementation AndroidLibConfig.composeMaterial
+ implementation libs.material
+ implementation platform(libs.compose.bom)
+ implementation libs.compose.tooling
+ implementation libs.compose.material
implementation project(ProjectConfig.utilityAndroid)
}
\ No newline at end of file
diff --git a/infrastructure/device/build.gradle b/infrastructure/device/build.gradle
index b22e9e2..93455c6 100644
--- a/infrastructure/device/build.gradle
+++ b/infrastructure/device/build.gradle
@@ -1,13 +1,14 @@
-apply plugin: "com.android.library"
-apply plugin: 'kotlin-android'
+plugins {
+ alias(libs.plugins.android.library)
+ alias(libs.plugins.kotlin.android)
+}
android {
- compileSdkVersion AndroidConfig.compileSdk
- buildToolsVersion AndroidConfig.buildTools
+ compileSdk libs.versions.compileSdk.get() as int
defaultConfig {
- minSdkVersion AndroidConfig.minSdk
- targetSdkVersion AndroidConfig.targetSdk
+ minSdk libs.versions.minSdk.get() as int
+ targetSdk libs.versions.compileSdk.get() as int
}
compileOptions {
@@ -21,8 +22,8 @@ android {
}
dependencies {
- implementation EnvironmentConfig.kotlinJdk
- implementation AndroidLibConfig.coroutinesCore
+ implementation libs.kotlin.jdk
+ implementation libs.coroutines.core
- implementation AndroidLibConfig.koinCore
+ implementation libs.koin.core
}
diff --git a/infrastructure/image/build.gradle b/infrastructure/image/build.gradle
index 48cb79b..59dc248 100644
--- a/infrastructure/image/build.gradle
+++ b/infrastructure/image/build.gradle
@@ -1,13 +1,14 @@
-apply plugin: "com.android.library"
-apply plugin: 'kotlin-android'
+plugins {
+ alias(libs.plugins.android.library)
+ alias(libs.plugins.kotlin.android)
+}
android {
- compileSdkVersion AndroidConfig.compileSdk
- buildToolsVersion AndroidConfig.buildTools
+ compileSdk libs.versions.compileSdk.get() as int
defaultConfig {
- minSdkVersion AndroidConfig.minSdk
- targetSdkVersion AndroidConfig.targetSdk
+ minSdk libs.versions.minSdk.get() as int
+ targetSdk libs.versions.compileSdk.get() as int
}
buildTypes {
@@ -26,11 +27,11 @@ android {
}
dependencies {
- implementation EnvironmentConfig.kotlinJdk
- implementation EnvironmentConfig.kotlinStdLib
- implementation AndroidLibConfig.coroutinesCore
+ implementation libs.kotlin.jdk
+ implementation libs.kotlin.stdlib
+ implementation libs.coroutines.core
- implementation AndroidLibConfig.koinCore
+ implementation libs.koin.core
implementation project(ProjectConfig.startup)
}
diff --git a/infrastructure/monitoring/build.gradle b/infrastructure/monitoring/build.gradle
index 96cae5c..188ffa1 100644
--- a/infrastructure/monitoring/build.gradle
+++ b/infrastructure/monitoring/build.gradle
@@ -1,13 +1,14 @@
-apply plugin: "com.android.library"
-apply plugin: 'kotlin-android'
+plugins {
+ alias(libs.plugins.android.library)
+ alias(libs.plugins.kotlin.android)
+}
android {
- compileSdkVersion AndroidConfig.compileSdk
- buildToolsVersion AndroidConfig.buildTools
+ compileSdk libs.versions.compileSdk.get() as int
defaultConfig {
- minSdkVersion AndroidConfig.minSdk
- targetSdkVersion AndroidConfig.targetSdk
+ minSdk libs.versions.minSdk.get() as int
+ targetSdk libs.versions.compileSdk.get() as int
}
compileOptions {
@@ -21,13 +22,13 @@ android {
}
dependencies {
- implementation EnvironmentConfig.kotlinStdLib
+ implementation libs.kotlin.stdlib
- implementation AndroidLibConfig.koinCore
+ implementation libs.koin.core
- implementation AndroidLibConfig.timber
- implementation AndroidLibConfig.sentry
- implementation AndroidLibConfig.okhttp
+ implementation libs.timber
+ implementation libs.sentry
+ implementation libs.okhttp
implementation project(ProjectConfig.analytics)
implementation project(ProjectConfig.configuration)
diff --git a/infrastructure/navigation/build.gradle b/infrastructure/navigation/build.gradle
index ee16dce..77604ec 100644
--- a/infrastructure/navigation/build.gradle
+++ b/infrastructure/navigation/build.gradle
@@ -1,13 +1,14 @@
-apply plugin: "com.android.library"
-apply plugin: 'kotlin-android'
+plugins {
+ alias(libs.plugins.android.library)
+ alias(libs.plugins.kotlin.android)
+}
android {
- compileSdkVersion AndroidConfig.compileSdk
- buildToolsVersion AndroidConfig.buildTools
+ compileSdk libs.versions.compileSdk.get() as int
defaultConfig {
- minSdkVersion AndroidConfig.minSdk
- targetSdkVersion AndroidConfig.targetSdk
+ minSdk libs.versions.minSdk.get() as int
+ targetSdk libs.versions.compileSdk.get() as int
}
compileOptions {
@@ -21,9 +22,9 @@ android {
}
dependencies {
- implementation EnvironmentConfig.kotlinStdLib
+ implementation libs.kotlin.stdlib
- implementation AndroidLibConfig.koinCore
+ implementation libs.koin.core
implementation project(ProjectConfig.coreAndroid)
implementation project(ProjectConfig.utilityAndroid)
diff --git a/infrastructure/startup/build.gradle b/infrastructure/startup/build.gradle
index a03f634..2816c77 100644
--- a/infrastructure/startup/build.gradle
+++ b/infrastructure/startup/build.gradle
@@ -1,17 +1,19 @@
-apply plugin: 'kotlin'
+plugins {
+ alias(libs.plugins.kotlin.jvm)
+}
dependencies {
- implementation EnvironmentConfig.kotlinJdk
- implementation EnvironmentConfig.kotlinStdLib
- implementation AndroidLibConfig.coroutinesCore
+ implementation libs.kotlin.jdk
+ implementation libs.kotlin.stdlib
+ implementation libs.coroutines.core
- implementation AndroidLibConfig.koinCore
+ implementation libs.koin.core
implementation project(ProjectConfig.utilityKotlin)
- testImplementation TestConfig.jUnit
- testImplementation TestConfig.mockk
- testImplementation TestConfig.coroutinesTest
+ testImplementation libs.junit
+ testImplementation libs.mockk
+ testImplementation libs.coroutines.test
}
java {
diff --git a/project-config/dependencies.gradle b/project-config/dependencies.gradle
index 1d67974..df40443 100644
--- a/project-config/dependencies.gradle
+++ b/project-config/dependencies.gradle
@@ -1,80 +1,6 @@
ext {
jvmTargetVersion = "11"
javaVersion = JavaVersion.VERSION_11
-
- EnvironmentConfig = [
- gradlePlugin: "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion",
- kotlinStdLib: "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion",
- gradleApi: "com.android.tools.build:gradle-api:$gradleVersion",
- kotlinJdk: "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion",
- gradleTools: "com.android.tools.build:gradle:$gradleVersion"
- ]
-
- AndroidConfig = [
- applicationId: "br.com.recipebook",
- versionCode: 10000001, // x.xxx.xx-xx
- versionName: "1.0.0",
-
- compileSdk: 33,
- buildTools: "32.0.0",
- minSdk: 23,
- targetSdk: 33
- ]
-
- AndroidLibConfig = [
- coroutinesCore: "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4",
- kotlinResult: "com.michael-bull.kotlin-result:kotlin-result:1.1.16",
- kotlinResultCoroutines: "com.michael-bull.kotlin-result:kotlin-result-coroutines:1.1.12",
-
- // Debug
- leakCanary: "com.squareup.leakcanary:leakcanary-android:2.9.1",
-
- // Network related libraries
- retrofit: "com.squareup.retrofit2:retrofit:2.9.0",
- okhttp: "com.squareup.okhttp3:okhttp:4.10.0",
- moshiConverter: "com.squareup.retrofit2:converter-moshi:2.9.0",
- moshiCodeGen: "com.squareup.moshi:moshi-kotlin-codegen:1.14.0",
- moshi: "com.squareup.moshi:moshi:1.14.0",
-
- // Android components
- appCompat: "androidx.appcompat:appcompat:1.5.1",
- viewmodel: "androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1",
- fragment: "androidx.fragment:fragment-ktx:1.5.4",
- material: "com.google.android.material:material:1.7.0",
-
- // Compose
- composeBOM: "androidx.compose:compose-bom:2022.10.00",
- compose: "androidx.compose.ui:ui",
- composeFoundation: "androidx.compose.foundation:foundation",
- composeMaterial: "androidx.compose.material:material",
- composeMaterialIcons: "androidx.compose.material:material-icons-core",
- composeMaterialIconsExt: "androidx.compose.material:material-icons-extended",
- composeTooling: "androidx.compose.ui:ui-tooling",
- composeActivity: 'androidx.activity:activity-compose:1.6.1',
- composeSwipeRefresh: "com.google.accompanist:accompanist-swiperefresh:0.27.0",
- composeCollapsingToolbar: "me.onebone:toolbar-compose:2.3.5",
-
- // Android utilities
- playCore: "com.google.android.play:core:1.10.3", // For in-App update
- playCoreExtensions: "com.google.android.play:core-ktx:1.8.1",
-
- // DI
- koinCore: "io.insert-koin:koin-core:3.2.2", // Koin Core
- koinAndroidExt: "io.insert-koin:koin-android:3.3.0", // Koin for Android
-
- // Image download library
- coil: "io.coil-kt:coil:2.2.2",
- coilCompose: "io.coil-kt:coil-compose:2.2.2",
-
- // Crash reporting library
- sentry: "io.sentry:sentry-android:6.7.0",
-
- // Analytics
- amplitude: "com.amplitude:android-sdk:3.35.1",
-
- // Logging
- timber: 'com.jakewharton.timber:timber:5.0.1'
- ]
ProjectConfig = [
utilityKotlin: ":utility:utility-kotlin",
@@ -98,11 +24,4 @@ ext {
settingsTheme: ":features:settings-theme",
inAppUpdate: ":features:in-app-update"
]
-
- TestConfig = [
- jUnit: "junit:junit:4.13.2",
- mockk: "io.mockk:mockk:1.13.2",
- coroutinesTest: "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.5.2"
- ]
-
}
\ No newline at end of file
diff --git a/project-config/feature-complete-build.gradle b/project-config/feature-complete-build.gradle
index ff791c1..388c1e3 100644
--- a/project-config/feature-complete-build.gradle
+++ b/project-config/feature-complete-build.gradle
@@ -1,16 +1,18 @@
apply plugin: "com.android.library"
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
+//plugins {
+// alias(libs.plugins.android.library)
+// alias(libs.plugins.kotlin.android)
+// alias(libs.plugins.kotlin.kapt)
+//}
android {
- compileSdkVersion AndroidConfig.compileSdk
- buildToolsVersion AndroidConfig.buildTools
+ compileSdk libs.versions.compileSdk.get() as int
defaultConfig {
- minSdkVersion AndroidConfig.minSdk
- targetSdkVersion AndroidConfig.targetSdk
- versionCode AndroidConfig.versionCode
- versionName AndroidConfig.versionName
+ minSdk libs.versions.minSdk.get() as int
+ targetSdk libs.versions.compileSdk.get() as int
}
buildFeatures {
@@ -32,31 +34,31 @@ android {
}
composeOptions {
- kotlinCompilerExtensionVersion composeVersion
+ kotlinCompilerExtensionVersion libs.versions.compose.get()
}
}
dependencies {
- implementation EnvironmentConfig.kotlinStdLib
- implementation AndroidLibConfig.coroutinesCore
- implementation AndroidLibConfig.kotlinResult
+ implementation libs.kotlin.stdlib
+ implementation libs.coroutines.core
+ implementation libs.kotlin.result
- implementation AndroidLibConfig.koinCore
- implementation AndroidLibConfig.koinAndroidExt
+ implementation libs.koin.core
+ implementation libs.koin.android
- implementation AndroidLibConfig.retrofit
- implementation AndroidLibConfig.moshiConverter
- implementation AndroidLibConfig.moshi
- kapt AndroidLibConfig.moshiCodeGen
+ implementation libs.retrofit
+ implementation libs.moshi.converter
+ implementation libs.moshi
+ kapt libs.moshi.codegen
- implementation AndroidLibConfig.appCompat
- implementation AndroidLibConfig.viewmodel
+ implementation libs.appCompat
+ implementation libs.viewmodel
- implementation AndroidLibConfig.coil
- implementation AndroidLibConfig.coilCompose
+ implementation libs.coil
+ implementation libs.coil.compose
- testImplementation TestConfig.jUnit
- testImplementation TestConfig.mockk
+ testImplementation libs.junit
+ testImplementation libs.mockk
implementation project(ProjectConfig.utilityAndroid)
implementation project(ProjectConfig.utilityKotlin)
@@ -64,12 +66,12 @@ dependencies {
implementation project(ProjectConfig.navigation)
implementation project(ProjectConfig.designSystem)
- implementation platform(AndroidLibConfig.composeBOM)
- implementation AndroidLibConfig.compose
- implementation AndroidLibConfig.composeFoundation
- implementation AndroidLibConfig.composeMaterial
- implementation AndroidLibConfig.composeTooling
- implementation AndroidLibConfig.composeActivity
+ implementation platform(libs.compose.bom)
+ implementation libs.compose.ui
+ implementation libs.compose.foundation
+ implementation libs.compose.material
+ implementation libs.compose.tooling
+ implementation libs.compose.activity
// UI Tests
androidTestImplementation 'androidx.compose.ui:ui-test-junit4:1.3.0'
diff --git a/settings.gradle b/settings.gradle
index cf6fc43..e09671e 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,3 +1,11 @@
+pluginManagement {
+ repositories {
+ mavenCentral()
+ google()
+ gradlePluginPortal()
+ }
+}
+
include ':app',
':utility:utility-android',
':utility:utility-kotlin',
diff --git a/utility/utility-android/build.gradle b/utility/utility-android/build.gradle
index c81eb83..d5817e1 100644
--- a/utility/utility-android/build.gradle
+++ b/utility/utility-android/build.gradle
@@ -1,13 +1,14 @@
-apply plugin: "com.android.library"
-apply plugin: 'kotlin-android'
+plugins {
+ alias(libs.plugins.android.library)
+ alias(libs.plugins.kotlin.android)
+}
android {
- compileSdkVersion AndroidConfig.compileSdk
- buildToolsVersion AndroidConfig.buildTools
+ compileSdk libs.versions.compileSdk.get() as int
defaultConfig {
- minSdkVersion AndroidConfig.minSdk
- targetSdkVersion AndroidConfig.targetSdk
+ minSdk libs.versions.minSdk.get() as int
+ targetSdk libs.versions.compileSdk.get() as int
}
buildFeatures {
@@ -25,16 +26,16 @@ android {
}
dependencies {
- implementation EnvironmentConfig.kotlinStdLib
- implementation AndroidLibConfig.coroutinesCore
- implementation AndroidLibConfig.kotlinResult
+ implementation libs.kotlin.stdlib
+ implementation libs.coroutines.core
+ implementation libs.kotlin.result
- implementation AndroidLibConfig.retrofit
- implementation AndroidLibConfig.moshiConverter
+ implementation libs.retrofit
+ implementation libs.moshi.converter
- implementation AndroidLibConfig.appCompat
+ implementation libs.appCompat
- testImplementation TestConfig.jUnit
+ testImplementation libs.junit
implementation project(ProjectConfig.utilityKotlin)
}
\ No newline at end of file
diff --git a/utility/utility-kotlin/build.gradle b/utility/utility-kotlin/build.gradle
index 283146f..2ab9946 100644
--- a/utility/utility-kotlin/build.gradle
+++ b/utility/utility-kotlin/build.gradle
@@ -1,8 +1,10 @@
-apply plugin: 'kotlin'
+plugins {
+ alias(libs.plugins.kotlin.jvm)
+}
dependencies {
- implementation EnvironmentConfig.kotlinJdk
- implementation AndroidLibConfig.coroutinesCore
+ implementation libs.kotlin.jdk
+ implementation libs.coroutines.core
}
java {