[versions] # Plugins agp = "8.9.1" ksp = "2.1.20-2.0.0" kotlin = "2.1.20" dagger-hilt = "2.56.1" # AndroidX activity = "1.10.1" core-ktx = "1.15.0" datastore-preferences = "1.0.0" lifecycle = "2.8.7" navigation = "2.8.9" room = "2.7.0" hilt = "1.2.0" retrofit2 = "2.11.0" okhttp3 = "4.12.0" # Kotlin Extensions coroutines = "1.10.2" serialization = "1.8.1" # Compose compose-bom = "2025.03.01" compose-foundation = "1.7.8" compose-material-icons = "1.7.8" compose-material3 = "1.4.0-alpha12" compose-ui = "1.7.8" # Accompanist accompanist = "0.36.0" # Testing espresso-core = "3.5.0" androidx-junit = "1.1.5" junit = "4.13.2" [plugins] android-application = { id = "com.android.application", version.ref = "agp" } android-library = { id = "com.android.library", version.ref = "agp" } kotlin-symbol-processing = { id = "com.google.devtools.ksp", version.ref = "ksp" } jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } jetbrains-kotlin-compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } jetbrains-kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } hilt = { id = "com.google.dagger.hilt.android", version.ref = "dagger-hilt" } [libraries] # AndroidX androidx-activity = { group = "androidx.activity", name = "activity", version.ref = "activity" } androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activity" } androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "core-ktx" } androidx-datastore-preferences = { group = "androidx.datastore", name = "datastore-preferences", version.ref = "datastore-preferences" } androidx-lifecycle = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycle"} androidx-lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "lifecycle" } androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigation"} androidx-room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" } androidx-room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" } androidx-room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" } # Kotlin Extensions kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "coroutines" } kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "coroutines" } kotlinx-serialization-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-core", version.ref = "serialization" } kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "serialization" } # Compose compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose-bom" } compose-foundation = { group = "androidx.compose.foundation", name = "foundation", version.ref = "compose-foundation" } compose-material-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended", version.ref = "compose-material-icons" } compose-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "compose-material3" } compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "compose-ui" } compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics", version.ref = "compose-ui" } compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4", version.ref = "compose-ui" } compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest", version.ref = "compose-ui" } compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "compose-ui" } compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview", version.ref = "compose-ui" } # Accompanist accompanist-systemuicontroller = { group = "com.google.accompanist", name = "accompanist-systemuicontroller", version.ref = "accompanist" } # Hilt hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "dagger-hilt" } hilt-android-compiler = { group = "com.google.dagger", name = "hilt-android-compiler", version.ref = "dagger-hilt" } androidx-hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "hilt" } # Retrofit squareup-retrofit2 = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit2" } squareup-retrofit2-converter-gson = { group = "com.squareup.retrofit2", name = "converter-gson", version.ref = "retrofit2" } squareup-okhttp3-logging-interceptor = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "okhttp3" } # Testing androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espresso-core" } androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-junit" } junit = { group = "junit", name = "junit", version.ref = "junit" } [bundles] androidx = [ "androidx-activity-compose", "androidx-core-ktx", "androidx-datastore-preferences", "androidx-lifecycle", "androidx-lifecycle-viewmodel-compose", "androidx-navigation-compose", "androidx-room-ktx", "androidx-room-runtime", ] compose = [ "compose-foundation", "compose-material-icons-extended", "compose-material3", "compose-ui", "compose-ui-graphics", ] kotlinx = [ "kotlinx-coroutines-core", "kotlinx-coroutines-android", "kotlinx-serialization-core", "kotlinx-serialization-json", ] hilt = [ "hilt-android", "androidx-hilt-navigation-compose", ] retrofit = [ "squareup-retrofit2", "squareup-retrofit2-converter-gson", "squareup-okhttp3-logging-interceptor", ] debug = [ "compose-ui-tooling", "compose-ui-tooling-preview", "compose-ui-test-junit4", "compose-ui-test-manifest", ] testing = [ "androidx-espresso-core", "androidx-junit", "junit", ]