|
1 | 1 | [versions] |
| 2 | +## SDK versions |
| 3 | +compileSdk = "35" |
| 4 | +minSdk = "28" |
| 5 | +targetSdk = "35" |
| 6 | + |
| 7 | +## App Versioning |
| 8 | +versionCode = "1" |
| 9 | +versionName = "1.0" |
| 10 | + |
| 11 | +# Android Gradle Plugin |
2 | 12 | androidGradlePlugin = "8.10.1" |
| 13 | + |
| 14 | +# Formatting Plugin |
| 15 | +ktlint = "12.3.0" |
| 16 | + |
| 17 | +# AndroidX |
| 18 | +androidxCore = "1.16.0" |
| 19 | +androidxLifecycle = "2.9.1" |
| 20 | +androidxActivity = "1.10.1" |
| 21 | +androidxDatastore = "1.1.7" |
| 22 | +androidxAppcompat = "1.7.1" |
| 23 | + |
| 24 | +# Kotlin |
3 | 25 | kotlin = "2.1.20" |
4 | | -coreKtx = "1.16.0" |
| 26 | +kotlinxCoroutines = "1.10.2" |
| 27 | +kotlinxSerializationJson = "1.8.1" |
| 28 | + |
| 29 | +# Ksp |
| 30 | +ksp = "2.1.20-1.0.32" |
| 31 | + |
| 32 | +# Hilt |
| 33 | +hilt = "2.56.2" |
| 34 | +hiltNavigationCompose = "1.2.0" |
| 35 | + |
| 36 | +# Compose |
| 37 | +composeBom = "2025.06.00" |
| 38 | +composeNavigation = "2.9.0" |
| 39 | + |
| 40 | +# Network |
| 41 | +okhttp = "4.11.0" |
| 42 | +retrofit = "2.11.0" |
| 43 | + |
| 44 | +# Test |
5 | 45 | junit = "4.13.2" |
6 | 46 | junitVersion = "1.2.1" |
7 | 47 | espressoCore = "3.6.1" |
8 | | -lifecycleRuntimeKtx = "2.9.1" |
9 | | -activityCompose = "1.10.1" |
10 | | -composeBom = "2025.06.00" |
11 | | -ktlint = "12.3.0" |
| 48 | + |
| 49 | +## Other |
| 50 | +material = "1.12.0" |
| 51 | +timber = "5.0.1" |
| 52 | +orbit = "6.1.0" |
12 | 53 |
|
13 | 54 | [libraries] |
14 | | -androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } |
| 55 | +## Androidx Core |
| 56 | +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidxAppcompat" } |
| 57 | +androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "androidxActivity" } |
| 58 | +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidxCore" } |
| 59 | +androidx-datastore = { group = "androidx.datastore", name = "datastore-preferences", version.ref = "androidxDatastore" } |
| 60 | +androidx-lifecycle-compose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidxLifecycle" } |
| 61 | +androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "androidxLifecycle" } |
| 62 | +androidx-lifecycle-viewmodel-ktx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "androidxLifecycle" } |
| 63 | +androidx-lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "androidxLifecycle" } |
| 64 | + |
| 65 | +## Compose |
| 66 | +compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" } |
| 67 | +compose-ui = { group = "androidx.compose.ui", name = "ui" } |
| 68 | +compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" } |
| 69 | +compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } |
| 70 | +compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } |
| 71 | +compose-foundation = { group = "androidx.compose.foundation", name = "foundation" } |
| 72 | +compose-material3 = { group = "androidx.compose.material3", name = "material3" } |
| 73 | +compose-runtime = { group = "androidx.compose.runtime", name = "runtime" } |
| 74 | +compose-navigation = { group = "androidx.navigation", name = "navigation-compose", version.ref = "composeNavigation" } |
| 75 | +compose-hilt-navigation = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "hiltNavigationCompose" } |
| 76 | +compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } |
| 77 | +compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } |
| 78 | + |
| 79 | +## Kotlin |
| 80 | +kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" } |
| 81 | +kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" } |
| 82 | +kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } |
| 83 | + |
| 84 | +## Hilt |
| 85 | +hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" } |
| 86 | +hilt-compiler = { group = "com.google.dagger", name = "hilt-android-compiler", version.ref = "hilt" } |
| 87 | + |
| 88 | +# Orbit |
| 89 | +orbit-core = { group = "org.orbit-mvi", name = "orbit-core", version.ref = "orbit" } |
| 90 | +orbit-compose = { group = "org.orbit-mvi", name = "orbit-compose", version.ref = "orbit" } |
| 91 | +orbit-viewmodel = { group = "org.orbit-mvi", name = "orbit-viewmodel", version.ref = "orbit" } |
| 92 | + |
| 93 | +## retrofit |
| 94 | +retrofit-bom = { group = "com.squareup.retrofit2", name = "retrofit-bom", version.ref = "retrofit" } |
| 95 | +retrofit = { group = "com.squareup.retrofit2", name = "retrofit" } |
| 96 | +retrofit-kotlin-serialization-converter = { group = "com.squareup.retrofit2", name = "converter-kotlinx-serialization" } |
| 97 | + |
| 98 | +## okhttp |
| 99 | +okhttp-bom = { group = "com.squareup.okhttp3", name = "okhttp-bom", version.ref = "okhttp" } |
| 100 | +okhttp = { group = "com.squareup.okhttp3", name = "okhttp" } |
| 101 | +okhttp-logging-interceptor = { group = "com.squareup.okhttp3", name = "logging-interceptor" } |
| 102 | + |
| 103 | +## Test |
15 | 104 | junit = { group = "junit", name = "junit", version.ref = "junit" } |
16 | 105 | androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } |
17 | 106 | androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } |
18 | | -androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" } |
19 | | -androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" } |
20 | | -androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" } |
21 | | -androidx-ui = { group = "androidx.compose.ui", name = "ui" } |
22 | | -androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" } |
23 | | -androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } |
24 | | -androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } |
25 | | -androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } |
26 | | -androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } |
27 | | -androidx-material3 = { group = "androidx.compose.material3", name = "material3" } |
| 107 | + |
| 108 | +## Other |
| 109 | +material = { group = "com.google.android.material", name = "material", version.ref = "material" } |
| 110 | +timber = { group = "com.jakewharton.timber", name = "timber", version.ref = "timber" } |
| 111 | + |
| 112 | +[bundles] |
| 113 | +androidx-core = [ |
| 114 | + "androidx-core-ktx", |
| 115 | + "androidx-appcompat", |
| 116 | + "androidx-lifecycle-runtime-ktx", |
| 117 | + "androidx-lifecycle-viewmodel-ktx" |
| 118 | +] |
| 119 | + |
| 120 | +compose = [ |
| 121 | + "compose-ui", |
| 122 | + "compose-ui-graphics", |
| 123 | + "compose-ui-tooling-preview", |
| 124 | + "compose-foundation", |
| 125 | + "compose-material3", |
| 126 | + "compose-navigation", |
| 127 | + "compose-hilt-navigation", |
| 128 | + "compose-runtime", |
| 129 | + "androidx-activity-compose" |
| 130 | +] |
| 131 | + |
| 132 | +compose-lifecycle = [ |
| 133 | + "androidx-lifecycle-compose", |
| 134 | + "androidx-lifecycle-viewmodel-compose" |
| 135 | +] |
| 136 | + |
| 137 | +compose-debug = [ |
| 138 | + "compose-ui-tooling", |
| 139 | + "compose-ui-test-manifest" |
| 140 | +] |
| 141 | + |
| 142 | +coroutine = [ |
| 143 | + "kotlinx-coroutines-android", |
| 144 | + "kotlinx-coroutines-core" |
| 145 | +] |
| 146 | + |
| 147 | +okhttp = [ |
| 148 | + "okhttp", |
| 149 | + "okhttp-logging-interceptor" |
| 150 | +] |
| 151 | + |
| 152 | +retrofit = [ |
| 153 | + "retrofit", |
| 154 | + "retrofit-kotlin-serialization-converter" |
| 155 | +] |
| 156 | + |
| 157 | +orbit = [ |
| 158 | + "orbit-core", |
| 159 | + "orbit-compose", |
| 160 | + "orbit-viewmodel" |
| 161 | +] |
28 | 162 |
|
29 | 163 | [plugins] |
30 | 164 | android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } |
| 165 | +android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" } |
31 | 166 | kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } |
32 | | -kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } |
33 | | -ktlint-gradle = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" } |
| 167 | +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } |
| 168 | +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } |
| 169 | +compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } |
| 170 | +ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } |
| 171 | +hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } |
| 172 | +ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" } |
34 | 173 |
|
0 commit comments