#[allow(unused)] [versions] accompanistPermissions = "0.37.3" adaptive = "1.2.0-beta02" adaptive-navigation-suite = "1.3.2" agp = "8.13.0" androidDocumentationPlugin = "2.0.0" appcompat = "1.7.1" awesome-app-rating = "2.8.0" coil = "3.3.0" compose-bom = "2025.09.00" constraintlayout = "2.2.1" core-ktx = "1.17.0" core-location-altitude = "1.0.0-alpha03" core-splashscreen = "1.0.1" crashlytics = "3.0.6" datastore = "1.1.7" dd-sdk-android = "3.0.0" dd-sdk-android-gradle-plugin = "1.19.0" detekt = "1.23.8" devtools-ksp = "2.2.20-2.0.2" emoji2 = "1.6.0" espresso-core = "3.7.0" firebase-bom = "34.2.0" google-services = "4.4.3" hilt = "2.57.1" hilt-navigation-compose = "1.3.0" junit = "4.13.2" junit-version = "1.3.0" kotlin = "2.2.20" kotlinx-collections-immutable = "0.4.0" kotlinx-coroutines-android = "1.10.2" kotlinx-serialization-json = "1.9.0" kover = "0.9.1" lifecycle = "2.9.3" location-services = "21.3.0" maps-compose = "6.10.0" markdownRenderer = "0.35.0" material = "1.13.0" material3 = "1.5.0-alpha04" mgrs = "2.1.3" navigation = "2.9.4" navigation3 = "1.0.0-alpha09" okhttp = "5.1.0" org-eclipse-paho-client-mqttv3 = "1.2.5" osmbonuspack = "6.9.0" osmdroid-android = "6.1.20" protobuf-gradle-plugin = "0.9.5" protobuf-kotlin = "4.32.1" retrofit = "3.0.0" room = "2.8.0" secrets-gradle-plugin = "2.0.1" streamsupport-minifuture = "1.7.4" timber = "5.0.1" usb-serial-android = "3.9.0" work-runtime-ktx = "2.10.4" zxing-android-embedded = "4.3.0" zxing-core = "3.5.3" spotless = "7.2.1" dokka = "2.0.0" [libraries] accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanistPermissions" } activity = { group = "androidx.activity", name = "activity" } actvity-ktx = { group = "androidx.activity", name = "activity-ktx" } activity-compose = { group = "androidx.activity", name = "activity-compose" } adaptive = { group = "androidx.compose.material3.adaptive", name = "adaptive", version.ref = "adaptive" } adaptive-layout = { group = "androidx.compose.material3.adaptive", name = "adaptive-layout", version.ref = "adaptive" } adaptive-navigation = { group = "androidx.compose.material3.adaptive", name = "adaptive-navigation", version.ref = "adaptive" } adaptive-navigation-android = { group = "androidx.compose.material3.adaptive", name = "adaptive-navigation-android", version.ref = "adaptive" } adaptive-navigation-suite = { group = "androidx.compose.material3", name = "material3-adaptive-navigation-suite", version.ref = "adaptive-navigation-suite" } appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } appcompat-resources = { group = "androidx.appcompat", name = "appcompat-resources", version.ref = "appcompat" } awesome-app-rating = { group = "com.suddenh4x.ratingdialog", name = "awesome-app-rating", version.ref = "awesome-app-rating" } coil = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref = "coil" } coil-network-core = { group = "io.coil-kt.coil3", name = "coil-network-core", version.ref = "coil" } coil-network-okhttp = { group = "io.coil-kt.coil3", name = "coil-network-okhttp", version.ref = "coil" } coil-svg = { group = "io.coil-kt.coil3", name = "coil-svg", version.ref = "coil" } compose-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "material3" } compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose-bom" } compose-material-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended" } compose-runtime-livedata = { group = "androidx.compose.runtime", name = "runtime-livedata" } compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" } core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "core-ktx" } core-location-altitude = { group = "androidx.core", name = "core-location-altitude", version.ref = "core-location-altitude" } core-splashscreen = { group = "androidx.core", name = "core-splashscreen", version.ref = "core-splashscreen" } datastore = { group = "androidx.datastore", name = "datastore", version.ref = "datastore" } datastore-preferences = { group = "androidx.datastore", name = "datastore-preferences", version.ref = "datastore" } dd-sdk-android-compose = { group = "com.datadoghq", name = "dd-sdk-android-compose", version.ref = "dd-sdk-android" } dd-sdk-android-logs = { group = "com.datadoghq", name = "dd-sdk-android-logs", version.ref = "dd-sdk-android" } dd-sdk-android-okhttp = { group = "com.datadoghq", name = "dd-sdk-android-okhttp", version.ref = "dd-sdk-android" } dd-sdk-android-rum = { group = "com.datadoghq", name = "dd-sdk-android-rum", version.ref = "dd-sdk-android" } dd-sdk-android-session-replay = { group = "com.datadoghq", name = "dd-sdk-android-session-replay", version.ref = "dd-sdk-android" } dd-sdk-android-session-replay-compose = { group = "com.datadoghq", name = "dd-sdk-android-session-replay-compose", version.ref = "dd-sdk-android" } dd-sdk-android-timber = { group = "com.datadoghq", name = "dd-sdk-android-timber", version.ref = "dd-sdk-android" } dd-sdk-android-trace = { group = "com.datadoghq", name = "dd-sdk-android-trace", version.ref = "dd-sdk-android" } dd-sdk-android-trace-otel = { group = "com.datadoghq", name = "dd-sdk-android-trace-otel", version.ref = "dd-sdk-android" } detekt-formatting = { group = "io.gitlab.arturbosch.detekt", name = "detekt-formatting", version.ref = "detekt" } dokka-android-documentation-plugin = { module = "org.jetbrains.dokka:android-documentation-plugin", version.ref = "androidDocumentationPlugin" } emoji2-emojipicker = { group = "androidx.emoji2", name = "emoji2-emojipicker", version.ref = "emoji2" } espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espresso-core" } ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junit-version" } firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics" } firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebase-bom" } firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics" } hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" } hilt-android-testing = { group = "com.google.dagger", name = "hilt-android-testing", version.ref = "hilt" } hilt-compiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "hilt" } hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "hilt-navigation-compose" } junit = { group = "junit", name = "junit", version.ref = "junit" } kotlinx-collections-immutable = { group = "org.jetbrains.kotlinx", name = "kotlinx-collections-immutable", version.ref = "kotlinx-collections-immutable" } kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinx-coroutines-android" } kotlinx-coroutines-guava = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-guava", version.ref = "kotlinx-coroutines-android" } kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinx-serialization-json" } lifecycle-common-java8 = { group = "androidx.lifecycle", name = "lifecycle-common-java8", version.ref = "lifecycle" } lifecycle-livedata-ktx = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "lifecycle" } lifecycle-process = { group = "androidx.lifecycle", name = "lifecycle-process", version.ref = "lifecycle" } lifecycle-runtime-compose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "lifecycle" } lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycle" } lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "lifecycle" } lifecycle-viewmodel-ktx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "lifecycle" } location-services = { group = "com.google.android.gms", name = "play-services-location", version.ref = "location-services" } maps-compose = { group = "com.google.maps.android", name = "maps-compose", version.ref = "maps-compose" } maps-compose-utils = { group = "com.google.maps.android", name = "maps-compose-utils", version.ref = "maps-compose" } maps-compose-widgets = { group = "com.google.maps.android", name = "maps-compose-widgets", version.ref = "maps-compose" } markdown-renderer = { group = "com.mikepenz", name = "multiplatform-markdown-renderer", version.ref = "markdownRenderer" } markdown-renderer-m3 = { group = "com.mikepenz", name = "multiplatform-markdown-renderer-m3", version.ref = "markdownRenderer" } markdown-renderer-android = { group = "com.mikepenz", name = "multiplatform-markdown-renderer-android", version.ref = "markdownRenderer" } material = { group = "com.google.android.material", name = "material", version.ref = "material" } mgrs = { group = "mil.nga", name = "mgrs", version.ref = "mgrs" } navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigation" } navigation-testing = { group = "androidx.navigation", name = "navigation-testing", version.ref = "navigation" } navigation3-runtime = { group = "androidx.navigation3", name = "navigation3-runtime", version.ref = "navigation3" } navigation3-ui = { group = "androidx.navigation3", name = "navigation3-ui", version.ref = "navigation3" } okhttp3 = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" } okhttp3-logging-interceptor = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "okhttp" } org-eclipse-paho-client-mqttv3 = { group = "org.eclipse.paho", name = "org.eclipse.paho.client.mqttv3", version.ref = "org-eclipse-paho-client-mqttv3" } osmbonuspack = { group = "com.github.MKergall", name = "osmbonuspack", version.ref = "osmbonuspack" } osmdroid-android = { group = "org.osmdroid", name = "osmdroid-android", version.ref = "osmdroid-android" } osmdroid-geopackage = { group = "org.osmdroid", name = "osmdroid-geopackage", version.ref = "osmdroid-android" } protobuf-kotlin = { group = "com.google.protobuf", name = "protobuf-kotlin", version.ref = "protobuf-kotlin" } protobuf-protoc = { group = "com.google.protobuf", name = "protoc", version.ref = "protobuf-kotlin" } retrofit2 = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" } retrofit2-kotlin-serialization = { group = "com.squareup.retrofit2", name = "converter-kotlinx-serialization", version.ref = "retrofit" } room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" } room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" } room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" } room-testing = { group = "androidx.room", name = "room-testing", version.ref = "room" } streamsupport-minifuture = { group = "net.sourceforge.streamsupport", name = "streamsupport-minifuture", version.ref = "streamsupport-minifuture" } timber = { group = "com.jakewharton.timber", name = "timber", version.ref = "timber" } usb-serial-android = { group = "com.github.mik3y", name = "usb-serial-for-android", version.ref = "usb-serial-android" } work-runtime-ktx = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "work-runtime-ktx" } zxing-android-embedded = { group = "com.journeyapps", name = "zxing-android-embedded", version.ref = "zxing-android-embedded" } zxing-core = { group = "com.google.zxing", name = "core", version.ref = "zxing-core" } [bundles] # Core AndroidX androidx = ["core-ktx", "appcompat", "appcompat-resources", "actvity-ktx", "activity-compose"] # UI ui = ["material", "constraintlayout", "compose-material3", "compose-material-icons-extended", "compose-ui-tooling-preview", "compose-runtime-livedata"] adaptive = ["adaptive", "adaptive-layout", "adaptive-navigation", "adaptive-navigation-android", "adaptive-navigation-suite"] ui-tooling = ["compose-ui-tooling"] #Separate for debugImplementation markdown = ["markdown-renderer", "markdown-renderer-m3", "markdown-renderer-android"] # Lifecycle lifecycle = ["lifecycle-runtime-ktx", "lifecycle-livedata-ktx", "lifecycle-viewmodel-ktx", "lifecycle-common-java8", "lifecycle-process", "lifecycle-viewmodel-compose", "lifecycle-runtime-compose"] # Navigation navigation = ["navigation-compose"] # Navigation 3 navigation3 = ["navigation3-runtime", "navigation3-ui"] # Coroutines coroutines = ["kotlinx-coroutines-android", "kotlinx-coroutines-guava"] # Data Storage datastore = ["datastore", "datastore-preferences"] room = ["room-runtime", "room-ktx"] # Dependency Injection hilt = ["hilt-android", "hilt-navigation-compose"] # Testing testing = ["junit", "ext-junit"] testing-android = ["espresso-core", "compose-ui-test-junit4"] testing-android-manifest = ["compose-ui-test-manifest"] testing-hilt = ["hilt-android-testing"] testing-navigation = ["navigation-testing"] testing-room = ["room-testing"] # OSM osm = ["osmdroid-android", "osmbonuspack", "mgrs"] # Google Maps (Compose) maps-compose = ["location-services", "maps-compose", "maps-compose-utils", "maps-compose-widgets"] # Firebase firebase = ["firebase-analytics", "firebase-crashlytics"] # Datadog datadog = ["dd-sdk-android-compose", "dd-sdk-android-logs", "dd-sdk-android-okhttp", "dd-sdk-android-rum", "dd-sdk-android-session-replay", "dd-sdk-android-session-replay-compose", "dd-sdk-android-timber", "dd-sdk-android-trace", "dd-sdk-android-trace-otel"] # Protobuf protobuf = ["protobuf-kotlin"] # retrofit retrofit = ["retrofit2", "retrofit2-kotlin-serialization", "okhttp3", "okhttp3-logging-interceptor"] # coil coil = ["coil", "coil-network-core", "coil-network-okhttp", "coil-svg"] [plugins] android-application = { id = "com.android.application", version.ref = "agp" } android-library = { id = "com.android.library", version.ref = "agp" } compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } datadog = { id = "com.datadoghq.dd-sdk-android-gradle-plugin", version.ref = "dd-sdk-android-gradle-plugin" } detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } devtools-ksp = { id = "com.google.devtools.ksp", version.ref = "devtools-ksp" } firebase-crashlytics = { id = "com.google.firebase.crashlytics" , version.ref = "crashlytics" } google-services = { id = "com.google.gms.google-services", version.ref = "google-services" } hilt = { id = "com.google.dagger.hilt.android" , version.ref = "hilt" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" } protobuf = { id = "com.google.protobuf", version.ref = "protobuf-gradle-plugin" } secrets = { id = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin", version.ref = "secrets-gradle-plugin" } spotless = { id = "com.diffplug.spotless", version .ref= "spotless" }