Skip to content

Commit c19b5e1

Browse files
Episode 17: Added libs.versions.toml file!
1 parent a39cdbe commit c19b5e1

File tree

4 files changed

+100
-41
lines changed

4 files changed

+100
-41
lines changed

app/build.gradle.kts

+22-23
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
plugins {
2-
id("com.android.application")
3-
id("org.jetbrains.kotlin.android")
2+
alias(libs.plugins.android.application)
3+
alias(libs.plugins.kotlin.android)
44
kotlin("kapt")
55
id("com.google.dagger.hilt.android")
66
}
77

88
android {
99
namespace = "com.androidfactory.simplerick"
10-
compileSdk = 34
10+
compileSdk = libs.versions.compileSdk.get().toInt()
1111

1212
defaultConfig {
1313
applicationId = "com.androidfactory.simplerick"
14-
minSdk = 26
14+
minSdk = libs.versions.minSdk.get().toInt()
1515
targetSdk = 33
1616
versionCode = 1
1717
versionName = "1.0"
@@ -52,34 +52,33 @@ android {
5252
}
5353

5454
dependencies {
55-
val navVersion = "2.7.5"
56-
implementation("androidx.navigation:navigation-compose:$navVersion")
5755

5856
implementation(project(":network"))
5957

58+
implementation(platform(libs.compose.bom))
59+
implementation(libs.bundles.compose)
60+
61+
implementation(libs.navigation.compose)
62+
6063
// Image loading
61-
implementation("io.coil-kt:coil-compose:2.5.0")
64+
implementation(libs.coil.compose)
6265

6366
// Dependency injection
6467
implementation("com.google.dagger:hilt-android:2.44")
6568
kapt("com.google.dagger:hilt-android-compiler:2.44")
66-
implementation("androidx.hilt:hilt-navigation-compose:1.1.0")
69+
implementation("androidx.hilt:hilt-navigation-compose:1.2.0")
70+
71+
implementation(libs.core.ktx)
72+
implementation(libs.lifecycle.runtime.ktx)
73+
implementation(libs.activity.compose)
6774

68-
implementation("androidx.core:core-ktx:1.9.0")
69-
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")
70-
implementation("androidx.activity:activity-compose:1.8.1")
71-
implementation(platform("androidx.compose:compose-bom:2023.03.00"))
72-
implementation("androidx.compose.ui:ui")
73-
implementation("androidx.compose.ui:ui-graphics")
74-
implementation("androidx.compose.ui:ui-tooling-preview")
75-
implementation("androidx.compose.material3:material3")
76-
testImplementation("junit:junit:4.13.2")
77-
androidTestImplementation("androidx.test.ext:junit:1.1.5")
78-
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
79-
androidTestImplementation(platform("androidx.compose:compose-bom:2023.03.00"))
80-
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
81-
debugImplementation("androidx.compose.ui:ui-tooling")
82-
debugImplementation("androidx.compose.ui:ui-test-manifest")
75+
testImplementation(libs.junit)
76+
androidTestImplementation(libs.ext.junit)
77+
androidTestImplementation(libs.espresso.core)
78+
androidTestImplementation(platform(libs.compose.bom))
79+
androidTestImplementation(libs.compose.ui.test.junit)
80+
debugImplementation(libs.compose.ui.tooling)
81+
debugImplementation(libs.compose.ui.test.manifest)
8382
}
8483

8584
kapt {

build.gradle.kts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
22
plugins {
3-
id("com.android.application") version "8.3.2" apply false
4-
id("org.jetbrains.kotlin.android") version "1.8.10" apply false
5-
id("com.android.library") version "8.3.2" apply false
6-
kotlin("plugin.serialization") version "1.8.10" apply false
3+
alias(libs.plugins.android.application) apply false
4+
alias(libs.plugins.android.library) apply false
5+
alias(libs.plugins.kotlin.android) apply false
6+
alias(libs.plugins.kotlin.serialization) apply false
77
id("com.google.dagger.hilt.android") version "2.44" apply false
88
}

gradle/libs.versions.toml

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
[versions]
2+
minSdk = "26"
3+
compileSdk = "34"
4+
5+
coilComposeVersion = "2.5.0"
6+
ktorVersion = "2.3.6"
7+
agpVersion = "8.3.2"
8+
kotlinVersion = "1.8.10"
9+
composeBomVersion = "2024.06.00"
10+
navVersion = "2.7.7"
11+
activityComposeVersion = "1.9.0"
12+
coreKtxVersion = "1.13.1"
13+
lifecycleRuntimeKtxVersion = "2.8.2"
14+
15+
espressoCoreVersion = "3.5.1"
16+
junit = "1.1.5"
17+
junitVersion = "4.13.2"
18+
19+
[libraries]
20+
# Coil
21+
coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coilComposeVersion" }
22+
23+
# Android
24+
activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activityComposeVersion" }
25+
core-ktx = { module = "androidx.core:core-ktx", version.ref = "coreKtxVersion" }
26+
lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtxVersion" }
27+
navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "navVersion" }
28+
29+
# Ktor
30+
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktorVersion" }
31+
ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktorVersion" }
32+
ktor-client-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktorVersion" }
33+
ktor-client-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktorVersion" }
34+
ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktorVersion" }
35+
36+
# Compose
37+
compose-bom = { module = "androidx.compose:compose-bom", version.ref = "composeBomVersion" }
38+
compose-ui = { module = "androidx.compose.ui:ui" }
39+
compose-ui-graphics = { module = "androidx.compose.ui:ui-graphics" }
40+
compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" }
41+
compose-material3 = { module = "androidx.compose.material3:material3" }
42+
compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" }
43+
compose-ui-test-junit = { module = "androidx.compose.ui:ui-test-junit4" }
44+
compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest" }
45+
46+
# Testing
47+
espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espressoCoreVersion" }
48+
ext-junit = { module = "androidx.test.ext:junit", version.ref = "junit" }
49+
junit = { module = "junit:junit", version.ref = "junitVersion" }
50+
51+
[plugins]
52+
android-library = { id = "com.android.library", version.ref = "agpVersion" }
53+
android-application = { id = "com.android.application", version.ref = "agpVersion" }
54+
55+
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlinVersion" }
56+
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlinVersion" }
57+
58+
[bundles]
59+
compose = [
60+
"compose-ui", "compose-ui-graphics", "compose-ui-tooling-preview", "compose-material3"
61+
]
62+
ktor = [
63+
"ktor-client-core", "ktor-client-okhttp", "ktor-client-logging",
64+
"ktor-client-content-negotiation", "ktor-serialization-kotlinx-json"
65+
]

network/build.gradle.kts

+9-14
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
plugins {
2-
id("com.android.library")
3-
id("org.jetbrains.kotlin.android")
4-
id("kotlinx-serialization")
2+
alias(libs.plugins.android.library)
3+
alias(libs.plugins.kotlin.android)
4+
alias(libs.plugins.kotlin.serialization)
55
}
66

77
android {
88
namespace = "com.androidfactory.network"
9-
compileSdk = 34
9+
compileSdk = libs.versions.compileSdk.get().toInt()
1010

1111
defaultConfig {
12-
minSdk = 26
12+
minSdk = libs.versions.minSdk.get().toInt()
1313

1414
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
1515
consumerProguardFiles("consumer-rules.pro")
@@ -35,14 +35,9 @@ android {
3535

3636
dependencies {
3737

38-
val ktorVersion = "2.3.6"
39-
implementation("io.ktor:ktor-client-core:$ktorVersion")
40-
implementation("io.ktor:ktor-client-okhttp:$ktorVersion")
41-
implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion")
42-
implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion")
43-
implementation("io.ktor:ktor-client-logging:$ktorVersion")
38+
implementation(libs.bundles.ktor)
4439

45-
testImplementation("junit:junit:4.13.2")
46-
androidTestImplementation("androidx.test.ext:junit:1.1.5")
47-
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
40+
testImplementation(libs.junit)
41+
androidTestImplementation(libs.ext.junit)
42+
androidTestImplementation(libs.espresso.core)
4843
}

0 commit comments

Comments
 (0)