|
1 | 1 | [versions] |
| 2 | +# Project Configuration |
| 3 | +androidGradlePlugin = "8.13.2" |
2 | 4 | minSdk = "24" |
3 | 5 | compileSdk = "36" |
4 | 6 | targetSdk = "36" |
| 7 | +versionCode = "1" |
| 8 | +versionName = "1.20.1" # {x-release-please-version} |
| 9 | +javaVersion = "17" |
| 10 | + |
| 11 | +# Kotlin & Coroutines |
| 12 | +kotlin = "2.2.0" |
| 13 | +kotlinxCoroutinesTest = "1.10.2" |
| 14 | +kotlinxDatetime = "0.7.1" |
| 15 | +ksp = "2.2.20-2.0.4" |
5 | 16 |
|
6 | | -activity = "1.12.1" |
7 | | -activityKtx = "1.11.0" |
8 | | -androidxJunit = "1.3.0" |
| 17 | +# AndroidX Core & Jetpack |
| 18 | +activity = "1.12.2" |
| 19 | +activityKtx = "1.12.2" |
| 20 | +androidxJunit = "1.3.0" # Test ext |
9 | 21 | appcompat = "1.7.1" |
10 | 22 | cardview = "1.0.0" |
| 23 | +constraintlayout = "2.2.1" |
11 | 24 | coreKtx = "1.17.0" |
12 | | -easypermissions = "3.0.0" |
13 | | -espresso = "3.7.0" |
14 | | -gradle = "8.13.2" |
15 | | -hilt = "2.57.2" |
16 | | -junit = "4.13.2" |
17 | | -kotlin = "2.2.21" |
18 | 25 | lifecycle = "2.10.0" |
19 | | -mapsKtx = "5.2.1" |
20 | | -mapsCompose = "6.12.1" |
21 | | -material = "1.13.0" |
22 | 26 | multidex = "2.0.1" |
23 | 27 | navigation = "2.9.6" |
24 | | -playServicesMaps = "19.2.0" |
25 | | -places = "5.1.1" |
26 | 28 | recyclerview = "1.4.0" |
| 29 | + |
| 30 | +# Jetpack Compose |
| 31 | +compose = "1.10.1" |
| 32 | +composeBom = "2026.01.00" |
| 33 | +hiltNavigationCompose = "1.3.0" |
| 34 | +material = "1.13.0" # View-based Material |
| 35 | +material3 = "1.4.0" |
| 36 | +materialIconsExtended = "1.7.8" |
| 37 | + |
| 38 | +# Google Maps & Places |
| 39 | +mapsCompose = "7.0.0" |
| 40 | +mapsKtx = "5.2.2" |
| 41 | +mapsRx = "1.0.1" |
| 42 | +places = "5.1.1" |
| 43 | +placesRx = "1.0.1" |
| 44 | +playServicesMaps = "20.0.0" |
27 | 45 | secretsGradlePlugin = "2.0.1" |
28 | | -volley = "1.2.1" |
29 | | -truth = "1.4.5" |
30 | | -uiautomator = "2.3.0" |
31 | | -compose = "1.7.6" |
32 | | -composeBom = "2024.12.01" |
33 | | -hiltNavigationCompose = "1.2.0" |
| 46 | + |
| 47 | +# Wear OS |
| 48 | +wear = "1.3.0" |
| 49 | +wearable = "2.9.0" |
| 50 | + |
| 51 | +# Dependency Injection |
34 | 52 | dagger = "2.57.2" |
35 | | -firebaseBom = "33.10.0" |
36 | | -kotlinxDatetime = "0.7.1" |
37 | | -kotlinxCoroutinesTest = "1.10.2" |
38 | | -robolectric = "4.16" |
| 53 | +hilt = "2.57.2" |
| 54 | + |
| 55 | +# Testing |
| 56 | +espresso = "3.7.0" |
| 57 | +junit = "4.13.2" |
| 58 | +mockito = "6.2.2" |
| 59 | +robolectric = "4.16.1" |
| 60 | +truth = "1.4.5" |
39 | 61 | turbine = "1.2.1" |
40 | | -mockito = "6.1.0" |
41 | | -versionCode = "1" |
42 | | -# {x-release-please-start-version} |
43 | | -versionName = "1.20.1" |
44 | | -# {x-release-please-end} |
45 | | -javaVersion = "17" |
| 62 | +uiautomator = "2.3.0" |
| 63 | + |
| 64 | +# Firebase |
| 65 | +firebaseBom = "34.8.0" |
| 66 | +firebaseDatabase = "22.0.1" |
| 67 | + |
| 68 | +# Third Party |
| 69 | +easypermissions = "3.0.0" |
| 70 | +rxlifecycle = "4.0.2" |
| 71 | +volley = "1.2.1" |
46 | 72 |
|
47 | 73 | [libraries] |
| 74 | +# Kotlin |
| 75 | +kotlin-bom = { module = "org.jetbrains.kotlin:kotlin-bom", version.ref = "kotlin" } |
| 76 | +kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" } |
| 77 | +kotlin-stdlib-jdk8 = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" } |
| 78 | +kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinxDatetime" } |
| 79 | + |
| 80 | +# AndroidX |
48 | 81 | activity = { module = "androidx.activity:activity", version.ref = "activity" } |
49 | 82 | activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activityKtx" } |
50 | | -androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidxJunit" } |
51 | | -ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidxJunit" } |
52 | 83 | appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } |
53 | 84 | cardview = { group = "androidx.cardview", name = "cardview", version.ref = "cardview" } |
54 | | -compose-bom = { module = "androidx.compose:compose-bom", version.ref = "composeBom" } |
| 85 | +constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" } |
55 | 86 | core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } |
56 | | -espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espresso" } |
57 | | -espresso-idling-resource = { module = "androidx.test.espresso:espresso-idling-resource", version.ref = "espresso" } |
58 | | -hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } |
59 | | -hilt-android-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" } |
60 | | -junit = { group = "junit", name = "junit", version.ref = "junit" } |
61 | | -kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" } |
62 | 87 | lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycle" } |
63 | | -maps-ktx = { group = "com.google.maps.android", name = "maps-ktx", version.ref = "mapsKtx" } |
64 | | -maps-utils-ktx = { group = "com.google.maps.android", name = "maps-utils-ktx", version.ref = "mapsKtx" } |
65 | | -maps-compose = { module = "com.google.maps.android:maps-compose", version.ref = "mapsCompose" } |
66 | | -material = { group = "com.google.android.material", name = "material", version.ref = "material" } |
67 | | -material3 = { module = "androidx.compose.material3:material3", version = "1.3.1" } |
68 | 88 | multidex = { group = "androidx.multidex", name = "multidex", version.ref = "multidex" } |
69 | 89 | navigation-fragment-ktx = { group = "androidx.navigation", name = "navigation-fragment-ktx", version.ref = "navigation" } |
70 | 90 | navigation-ui-ktx = { group = "androidx.navigation", name = "navigation-ui-ktx", version.ref = "navigation" } |
71 | | -play-services-maps = { group = "com.google.android.gms", name = "play-services-maps", version.ref = "playServicesMaps" } |
72 | | -places = { group = "com.google.android.libraries.places", name = "places", version.ref = "places" } |
73 | 91 | recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "recyclerview" } |
74 | | -constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version = "2.2.0" } |
| 92 | + |
| 93 | +# Compose |
| 94 | +compose-bom = { module = "androidx.compose:compose-bom", version.ref = "composeBom" } |
75 | 95 | compose-foundation = { module = "androidx.compose.foundation:foundation", version.ref = "compose" } |
76 | 96 | compose-material = { module = "androidx.compose.material:material", version.ref = "compose" } |
77 | | -volley = { group = "com.android.volley", name = "volley", version.ref = "volley" } |
78 | | -truth = { group = "com.google.truth", name = "truth", version.ref = "truth" } |
79 | | -uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "uiautomator" } |
80 | | -easypermissions = { group = "pub.devrel", name = "easypermissions", version.ref = "easypermissions" } |
81 | | - |
82 | | -hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "hiltNavigationCompose" } |
83 | | -material-icons-extended = { module = "androidx.compose.material:material-icons-extended", version.ref = "compose" } |
| 97 | +material = { group = "com.google.android.material", name = "material", version.ref = "material" } |
| 98 | +material-icons-extended = { module = "androidx.compose.material:material-icons-extended", version.ref = "materialIconsExtended" } |
| 99 | +material3 = { module = "androidx.compose.material3:material3", version.ref = "material3" } |
84 | 100 | ui = { module = "androidx.compose.ui:ui", version.ref = "compose" } |
85 | 101 | ui-graphics = { module = "androidx.compose.ui:ui-graphics", version.ref = "compose" } |
86 | 102 | ui-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose" } |
87 | 103 | ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview", version.ref = "compose" } |
88 | | -ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4", version.ref = "compose" } |
89 | | -ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "compose" } |
90 | | -kotlin-stdlib-jdk8 = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" } |
91 | | -maps-rx = { module = "com.google.maps.android:maps-rx", version = "1.0.0" } |
92 | | -places-rx = { module = "com.google.maps.android:places-rx", version = "1.0.0" } |
93 | | -rxlifecycle-android-lifecycle-kotlin = { module = "com.trello.rxlifecycle4:rxlifecycle-android-lifecycle-kotlin", version = "4.0.2" } |
94 | 104 |
|
| 105 | +# Maps & Places |
| 106 | +maps-compose = { module = "com.google.maps.android:maps-compose", version.ref = "mapsCompose" } |
| 107 | +maps-ktx = { group = "com.google.maps.android", name = "maps-ktx", version.ref = "mapsKtx" } |
| 108 | +maps-rx = { module = "com.google.maps.android:maps-rx", version.ref = "mapsRx" } |
| 109 | +maps-utils-ktx = { group = "com.google.maps.android", name = "maps-utils-ktx", version.ref = "mapsKtx" } |
| 110 | +places = { group = "com.google.android.libraries.places", name = "places", version.ref = "places" } |
| 111 | +places-rx = { module = "com.google.maps.android:places-rx", version.ref = "placesRx" } |
| 112 | +play-services-maps = { group = "com.google.android.gms", name = "play-services-maps", version.ref = "playServicesMaps" } |
| 113 | + |
| 114 | +# Wear OS |
| 115 | +wear = { group = "androidx.wear", name = "wear", version.ref = "wear" } |
| 116 | +wearable-compile = { group = "com.google.android.wearable", name = "wearable", version.ref = "wearable" } |
| 117 | +wearable-support = { group = "com.google.android.support", name = "wearable", version.ref = "wearable" } |
| 118 | + |
| 119 | +# Dependency Injection |
95 | 120 | dagger = { module = "com.google.dagger:dagger", version.ref = "dagger" } |
96 | | -firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBom" } |
97 | | -firebase-database = { module = "com.google.firebase:firebase-database", version = "21.0.0" } |
98 | | -kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinxDatetime" } |
| 121 | +hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } |
| 122 | +hilt-android-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" } |
| 123 | +hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "hiltNavigationCompose" } |
| 124 | + |
| 125 | +# Testing |
| 126 | +espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espresso" } |
| 127 | +espresso-idling-resource = { module = "androidx.test.espresso:espresso-idling-resource", version.ref = "espresso" } |
| 128 | +ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidxJunit" } |
| 129 | +junit = { group = "junit", name = "junit", version.ref = "junit" } |
99 | 130 | kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinxCoroutinesTest" } |
| 131 | +mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version.ref = "mockito" } |
100 | 132 | robolectric = { module = "org.robolectric:robolectric", version.ref = "robolectric" } |
| 133 | +truth = { group = "com.google.truth", name = "truth", version.ref = "truth" } |
101 | 134 | turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" } |
102 | | -mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version.ref = "mockito" } |
| 135 | +ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4", version.ref = "compose" } |
| 136 | +ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "compose" } |
| 137 | +uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "uiautomator" } |
| 138 | + |
| 139 | +# Firebase |
| 140 | +firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBom" } |
| 141 | +firebase-database = { module = "com.google.firebase:firebase-database", version.ref = "firebaseDatabase" } |
| 142 | + |
| 143 | +# Third Party |
| 144 | +easypermissions = { group = "pub.devrel", name = "easypermissions", version.ref = "easypermissions" } |
| 145 | +rxlifecycle-android-lifecycle-kotlin = { module = "com.trello.rxlifecycle4:rxlifecycle-android-lifecycle-kotlin", version.ref = "rxlifecycle" } |
| 146 | +volley = { group = "com.android.volley", name = "volley", version.ref = "volley" } |
103 | 147 |
|
104 | 148 | [plugins] |
105 | | -android-application = { id = "com.android.application", version.ref = "gradle" } |
106 | | -android-library = { id = "com.android.library", version.ref = "gradle" } |
| 149 | +android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } |
| 150 | +android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" } |
| 151 | +hilt-android = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } |
107 | 152 | kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } |
108 | | -jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } |
109 | 153 | kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } |
110 | | -kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } |
111 | 154 | kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } |
112 | | -hilt-android = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } |
| 155 | +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } |
| 156 | +ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } |
113 | 157 | secrets-gradle-plugin = { id = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin", version.ref = "secretsGradlePlugin" } |
114 | | -ksp = { id = "com.google.devtools.ksp", version = "2.2.20-2.0.4" } |
|
0 commit comments