Skip to content

Commit 997812e

Browse files
committed
refactor: move dependency definitions from app level build.gradle.kts to gradle catalog toml file
1 parent 0c82bad commit 997812e

File tree

2 files changed

+132
-63
lines changed

2 files changed

+132
-63
lines changed

app/build.gradle.kts

Lines changed: 48 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -218,75 +218,67 @@ fun loadKeyStore(name: String): Properties? {
218218

219219
dependencies {
220220

221-
implementation("androidx.appcompat:appcompat:1.7.0")
222-
implementation("androidx.core:core-ktx:1.16.0")
223-
implementation("androidx.constraintlayout:constraintlayout:2.2.1")
221+
// AndroidX
222+
implementation(libs.appcompat)
223+
implementation(libs.core.ktx)
224+
implementation(libs.constraintlayout)
224225

225226
// Firebase
226-
implementation(platform("com.google.firebase:firebase-bom:${libs.versions.firebaseBom.get()}"))
227-
implementation("com.google.firebase:firebase-analytics-ktx")
228-
implementation("com.google.firebase:firebase-crashlytics-ktx")
227+
implementation(platform(libs.firebase.bom))
228+
implementation(libs.firebase.analytics.ktx)
229+
implementation(libs.firebase.crashlytics.ktx)
229230

230231
// Dependency Injection
231-
implementation("com.google.dagger:hilt-android:${libs.versions.hilt.get()}")
232-
kapt("com.google.dagger:hilt-compiler:${libs.versions.hilt.get()}")
232+
implementation(libs.hilt.android)
233+
kapt(libs.hilt.compiler)
233234

234235
// Coroutines
235-
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.7")
236-
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7")
237-
implementation("androidx.lifecycle:lifecycle-extensions:2.2.0")
238-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
239-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
236+
implementation(libs.lifecycle.runtime.ktx)
237+
implementation(libs.lifecycle.viewmodel.ktx)
238+
implementation(libs.lifecycle.extensions)
239+
implementation(libs.coroutines.core)
240+
implementation(libs.coroutines.android)
240241

241242
// Compose Bom
242-
val composeBom = platform("androidx.compose:compose-bom:2023.06.01")
243+
val composeBom = platform(libs.compose.bom)
243244
implementation(composeBom)
244245
androidTestImplementation(composeBom)
245-
implementation("androidx.compose.foundation:foundation")
246-
implementation("androidx.compose.material3:material3")
246+
implementation(libs.compose.foundation)
247+
implementation(libs.compose.material3)
247248
// Compose - Android Studio Preview support
248-
implementation("androidx.compose.ui:ui-tooling-preview")
249-
debugImplementation("androidx.compose.ui:ui-tooling")
250-
implementation("androidx.activity:activity-compose:1.10.1")
249+
implementation(libs.compose.ui.tooling.preview)
250+
debugImplementation(libs.compose.ui.tooling)
251+
implementation(libs.activity.compose)
251252

252253
// Other UI Libraries
253-
implementation("com.google.android.material:material:${libs.versions.material.get()}")
254-
255-
// data
256-
implementation("androidx.datastore:datastore-preferences:1.1.4")
257-
258-
// unit test libs
259-
testImplementation("junit:junit:4.13.2")
260-
261-
// instrumented test libs
262-
androidTestImplementation("androidx.test:core:1.6.1")
263-
androidTestImplementation("androidx.test.ext:junit:1.2.1")
264-
androidTestImplementation("androidx.test.ext:junit-ktx:1.2.1")
265-
androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1")
266-
267-
// Hamcrest for view matching
268-
androidTestImplementation("org.hamcrest:hamcrest-library:2.2")
269-
androidTestImplementation("androidx.test:runner:1.6.2")
270-
androidTestImplementation("androidx.test:rules:1.6.1")
271-
272-
// coroutine testing
273-
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:${libs.versions.hilt.get()}")
274-
androidTestImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:${libs.versions.coroutines.get()}")
275-
276-
// google truth for assertions
277-
testImplementation("com.google.truth:truth:1.1.3")
278-
androidTestImplementation("androidx.test.ext:truth:1.6.0")
279-
280-
// mockk
281-
testImplementation("io.mockk:mockk-android:${libs.versions.mockk.get()}")
282-
testImplementation("io.mockk:mockk-agent:${libs.versions.mockk.get()}")
283-
androidTestImplementation("io.mockk:mockk-android:${libs.versions.mockk.get()}")
284-
androidTestImplementation("io.mockk:mockk-agent:${libs.versions.mockk.get()}")
285-
286-
// hilt testing - https://developer.android.com/training/dependency-injection/hilt-testing
287-
androidTestImplementation("com.google.dagger:hilt-android-testing:${libs.versions.hilt.get()}")
288-
kaptAndroidTest("com.google.dagger:hilt-android-compiler:${libs.versions.hilt.get()}")
254+
implementation(libs.material)
255+
256+
// Data
257+
implementation(libs.datastore.preferences)
258+
259+
// Unit Test Libraries
260+
testImplementation(libs.junit)
261+
testImplementation(libs.coroutines.test)
262+
testImplementation(libs.truth)
263+
testImplementation(libs.mockk.android)
264+
testImplementation(libs.mockk.agent)
265+
266+
// Instrumented Test Libraries
267+
androidTestImplementation(libs.androidx.test.core)
268+
androidTestImplementation(libs.androidx.test.ext.junit)
269+
androidTestImplementation(libs.androidx.test.ext.junit.ktx)
270+
androidTestImplementation(libs.espresso.core)
271+
androidTestImplementation(libs.hamcrest)
272+
androidTestImplementation(libs.androidx.test.runner)
273+
androidTestImplementation(libs.androidx.test.rules)
274+
androidTestImplementation(libs.androidx.test.truth)
275+
androidTestImplementation(libs.mockk.android)
276+
androidTestImplementation(libs.mockk.agent)
277+
278+
// Hilt Testing
279+
androidTestImplementation(libs.hilt.android.testing)
280+
kaptAndroidTest(libs.hilt.android.compiler)
289281

290282
// Android Serial Controller
291-
implementation("com.github.superus8r:UsbSerial:6.1.1")
283+
implementation(libs.usb.serial)
292284
}

gradle/libs.versions.toml

Lines changed: 84 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,97 @@
11
[versions]
22
gradle = "8.10.1"
3-
coroutines = "1.6.4"
3+
coroutines = "1.7.3"
44
firebaseBom = "32.8.0"
55
hilt = "2.56.2"
66
jacoco = "0.8.8"
77
kotlin = "2.1.20"
88
material = "1.12.0"
99
mockk = "1.14.2"
10+
composeBom = "2023.06.01"
11+
appcompat = "1.7.0"
12+
coreKtx = "1.16.0"
13+
constraintlayout = "2.2.1"
14+
lifecycleRuntimeKtx = "2.8.7"
15+
lifecycleViewmodelKtx = "2.8.7"
16+
lifecycleExtensions = "2.2.0"
17+
activityCompose = "1.10.1"
18+
datastorePreferences = "1.1.4"
19+
junit = "4.13.2"
20+
testCore = "1.6.1"
21+
testExtJunit = "1.2.1"
22+
testExtJunitKtx = "1.2.1"
23+
espressoCore = "3.6.1"
24+
hamcrest = "2.2"
25+
testRunner = "1.6.2"
26+
testRules = "1.6.1"
27+
truth = "1.1.3"
28+
androidxTruth = "1.6.0"
29+
hiltAndroidTesting = "2.56.2"
30+
usbSerial = "6.1.1"
1031

1132
[libraries]
12-
hilt_android_gradle_plugin = { module = "com.google.dagger:hilt-android-gradle-plugin", version.ref = "hilt" }
13-
google_services = { module = "com.google.gms:google-services", version = "4.4.1" }
14-
firebase_crashlytics_gradle = { module = "com.google.firebase:firebase-crashlytics-gradle", version = "2.9.9" }
33+
# AndroidX
34+
appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" }
35+
core-ktx = { module = "androidx.core:core-ktx", version.ref = "coreKtx" }
36+
constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayout" }
37+
lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
38+
lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycleViewmodelKtx" }
39+
lifecycle-extensions = { module = "androidx.lifecycle:lifecycle-extensions", version.ref = "lifecycleExtensions" }
40+
activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activityCompose" }
41+
datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastorePreferences" }
42+
43+
# Compose
44+
compose-bom = { module = "androidx.compose:compose-bom", version.ref = "composeBom" }
45+
compose-foundation = { module = "androidx.compose.foundation:foundation" }
46+
compose-material3 = { module = "androidx.compose.material3:material3" }
47+
compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" }
48+
compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" }
49+
50+
# Google Material
51+
material = { module = "com.google.android.material:material", version.ref = "material" }
52+
53+
# Firebase
54+
firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBom" }
55+
firebase-analytics-ktx = { module = "com.google.firebase:firebase-analytics-ktx" }
56+
firebase-crashlytics-ktx = { module = "com.google.firebase:firebase-crashlytics-ktx" }
57+
58+
# Dagger Hilt
59+
hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" }
60+
hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" }
61+
hilt-android-testing = { module = "com.google.dagger:hilt-android-testing", version.ref = "hiltAndroidTesting" }
62+
hilt-android-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hiltAndroidTesting" }
63+
64+
# Coroutines
65+
coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" }
66+
coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" }
67+
coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" }
68+
69+
# USB Serial
70+
usb-serial = { module = "com.github.superus8r:UsbSerial", version.ref = "usbSerial" }
71+
72+
# Unit Test
73+
junit = { module = "junit:junit", version.ref = "junit" }
74+
mockk-android = { module = "io.mockk:mockk-android", version.ref = "mockk" }
75+
mockk-agent = { module = "io.mockk:mockk-agent", version.ref = "mockk" }
76+
truth = { module = "com.google.truth:truth", version.ref = "truth" }
77+
78+
# Instrumented Test
79+
androidx-test-core = { module = "androidx.test:core", version.ref = "testCore" }
80+
androidx-test-ext-junit = { module = "androidx.test.ext:junit", version.ref = "testExtJunit" }
81+
androidx-test-ext-junit-ktx = { module = "androidx.test.ext:junit-ktx", version.ref = "testExtJunitKtx" }
82+
espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espressoCore" }
83+
hamcrest = { module = "org.hamcrest:hamcrest-library", version.ref = "hamcrest" }
84+
androidx-test-runner = { module = "androidx.test:runner", version.ref = "testRunner" }
85+
androidx-test-rules = { module = "androidx.test:rules", version.ref = "testRules" }
86+
androidx-test-truth = { module = "androidx.test.ext:truth", version.ref = "androidxTruth" }
87+
88+
# Plugins (already present)
89+
hilt-android-gradle-plugin = { module = "com.google.dagger:hilt-android-gradle-plugin", version.ref = "hilt" }
90+
google-services = { module = "com.google.gms:google-services", version = "4.4.1" }
91+
firebase-crashlytics-gradle = { module = "com.google.firebase:firebase-crashlytics-gradle", version = "2.9.9" }
1592

1693
[plugins]
17-
android_application = { id = "com.android.application", version.ref = "gradle" }
18-
kotlin_android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
19-
kotlin_compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
94+
android-application = { id = "com.android.application", version.ref = "gradle" }
95+
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
96+
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
2097
sonarqube = { id = "org.sonarqube", version = "3.5.0.2730" }

0 commit comments

Comments
 (0)