# # Copyright 2022 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # [versions] agp = "9.1.1" fragmentCompose = "1.8.6" kotlin = "2.2.10" coreKtx = "1.17.0" junit = "4.13.2" junitVersion = "1.2.1" espressoCore = "3.6.1" kotlinxSerializationJson = "1.8.0" lifecycleRuntimeKtx = "2.8.7" activityCompose = "1.10.0" composeBom = "2025.02.00" appcompat = "1.7.0" material = "1.12.0" coil = "2.4.0" navigationCompose = "2.8.7" coroutines = "1.7.3" photopickerCompose = "1.0.0-alpha01" play-services-location = "21.1.0" accompanist = "0.32.0" androidx-datastore = "1.0.0" androidx-navigation = "2.7.7" androidx-window = "1.5.0" casa = "0.5.1" gradleDownloadTask = "4.1.2" ksp = "1.9.22-1.0.17" composeCompiler = "1.5.9" hilt = "2.48.1" kotlin-serialization = "1.8.0" ktlint = "0.48.1" junit4 = "4.13.2" androidxEspresso = "3.5.1" androidxTestCore = "1.5.0" androidxTestExtJunit = "1.1.5" androidxTestExtTruth = "1.5.0" androidxTestRules = "1.5.0" androidxTestRunner = "1.5.2" androidxUiAutomator = "2.2.0" camerax = "1.5.0-beta01" material3Android = "1.3.2" media3 = "1.5.0" constraintlayout = "2.1.4" glide-compose = "1.0.0-beta01" glance = "1.3.0-alpha01" tensorflowLite = "2.9.0" tensorflowLiteGpuDelegatePlugin = "0.4.4" tensorflowLiteSupport = "0.4.2" barcodeScanningCommon = "17.0.0" playServicesMlkitBarcodeScanning = "18.3.1" protobuf = "0.9.4" firebaseCrashlyticsBuildtools = "3.0.5" uwb = "1.0.0-alpha10" telecom = "1.1.0-alpha04" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } androidx-fragment-compose = { module = "androidx.fragment:fragment-compose", version.ref = "fragmentCompose" } androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "navigationCompose" } androidx-uwb = { module = "androidx.core.uwb:uwb", version.ref = "uwb" } androidx-photopicker-compose = { module = "androidx.photopicker:photopicker-compose", version.ref = "photopickerCompose" } junit = { group = "junit", name = "junit", version.ref = "junit" } androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" } androidx-lifecycle-livedata-ktx = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "lifecycleRuntimeKtx" } androidx-lifecycle-runtime-compose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "lifecycleRuntimeKtx" } androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" } androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" } androidx-ui-runtime = { group = "androidx.compose.runtime", name = "runtime" } androidx-ui = { group = "androidx.compose.ui", name = "ui" } androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" } androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } androidx-material3 = { group = "androidx.compose.material3", name = "material3" } androidx-compose-runtime-livedata = { group = "androidx.compose.runtime", name = "runtime-livedata" } androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } material = { group = "com.google.android.material", name = "material", version.ref = "material" } coil = { module = "io.coil-kt:coil", version.ref = "coil" } coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" } coil-video = { module = "io.coil-kt:coil-video", version.ref = "coil" } kotlin-coroutines-play = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-play-services", version.ref = "coroutines" } play-services-location = { module = "com.google.android.gms:play-services-location", version.ref = "play-services-location" } androidx-core-telecom = { module = "androidx.core:core-telecom", version.ref = "telecom" } # Core dependencies android-gradlePlugin = { module = "com.android.tools.build:gradle", version.ref = "agp" } androidx-activity = "androidx.activity:activity-ktx:1.13.0-alpha01" androidx-core = "androidx.core:core-ktx:1.18.0-alpha01" androidx-exifinterface = "androidx.exifinterface:exifinterface:1.3.7" # Fragment 1.7.0 alpha and Transition 1.5.0 alpha are required for predictive back to work with Fragments and transitions androidx-fragment = "androidx.fragment:fragment-ktx:1.7.0-alpha10" androidx-transition = "androidx.transition:transition-ktx:1.5.0-alpha06" androidx-navigation-fragment = { module = "androidx.navigation:navigation-fragment", version.ref = "androidx-navigation" } androidx-navigation-testing = { module = "androidx.navigation:navigation-testing", version.ref = "androidx-navigation" } androidx-navigation-ui = { module = "androidx.navigation:navigation-ui", version.ref = "androidx-navigation" } androidx-lifecycle-viewmodel-compose = "androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0" androidx-viewpager2 = "androidx.viewpager2:viewpager2:1.0.0" accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" } casa-base = { module = "com.google.android.catalog.framework:casa-base", version.ref = "casa" } casa-processor = { module = "com.google.android.catalog.framework:casa-processor", version.ref = "casa" } casa-ui = { module = "com.google.android.catalog.framework:casa-ui", version.ref = "casa" } compose-animation-animation = { module = "androidx.compose.animation:animation" } compose-foundation-foundation = { module = "androidx.compose.foundation:foundation" } compose-foundation-layout = { module = "androidx.compose.foundation:layout" } compose-material3 = { module = "androidx.compose.material3:material3" } compose-material-material = { module = "androidx.compose.material:material" } compose-material-iconsext = { module = "androidx.compose.material:material-icons-extended" } compose-runtime-runtime = { module = "androidx.compose.runtime:runtime" } compose-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata" } compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" } compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" } compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4" } compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest" } compose-ui-ui = { module = "androidx.compose.ui:ui" } compose-ui-util = { module = "androidx.compose.ui:util" } coil-base = { module = "io.coil-kt:coil", version.ref = "coil" } google-ksp-api = { module = "com.google.devtools.ksp:symbol-processing-api", version.ref = "ksp" } gradle-download-task = { module = "de.undercouch:gradle-download-task", version.ref = "gradleDownloadTask" } hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } hilt-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" } hilt-testing = { group = "com.google.dagger", name = "hilt-android-testing", version.ref = "hilt" } kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" } kotlin-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" } kotlin-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" } kotlin-gradlePlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } # Testing androidx-test-core = { group = "androidx.test", name = "core-ktx", version.ref = "androidxTestCore" } androidx-test-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidxEspresso" } androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit-ktx", version.ref = "androidxTestExtJunit" } androidx-test-ext-truth = { group = "androidx.test.ext", name = "truth", version.ref = "androidxTestExtTruth" } androidx-test-rules = { group = "androidx.test", name = "rules", version.ref = "androidxTestRules" } androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "androidxTestRunner" } androidx-test-uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "androidxUiAutomator" } junit4 = { group = "junit", name = "junit", version.ref = "junit4" } # Sample specific dependencies lottie = "com.airbnb.android:lottie:6.0.0" rxjava2-android = 'io.reactivex.rxjava2:rxandroid:2.1.1' androidx-work-runtime-ktx = "androidx.work:work-runtime-ktx:2.9.0" androidx-core-remoteviews = "androidx.core:core-remoteviews:1.0.0" androidx-glance-appwidget = {group = "androidx.glance", name = "glance-appwidget", version.ref = "glance"} androidx-glance-preview = {group = "androidx.glance", name = "glance-preview", version.ref = "glance"} androidx-glance-appwidget-preview = {group = "androidx.glance", name = "glance-appwidget-preview", version.ref = "glance"} androidx-glance-material3 = {group = "androidx.glance", name = "glance-material3", version.ref = "glance"} androidx-graphics-core = { group = "androidx.graphics", name = "graphics-core", version = "1.0.0-beta01" } androidx-startup = 'androidx.startup:startup-runtime:1.1.1' androidx-window = { module = "androidx.window:window", version.ref = "androidx-window" } androidx-window-java = { module = "androidx.window:window-java", version.ref = "androidx-window" } androidx-window-rxjava2 = { module = "androidx.window:window-rxjava2", version.ref = "androidx-window" } androidx-window-core = { module = "androidx.window:window-core", version.ref = "androidx-window" } androidx-media = "androidx.media:media:1.7.0" androidx-constraintlayout = "androidx.constraintlayout:constraintlayout:2.1.4" androidx-corepip = "androidx.core:core-pip:1.0.0-SNAPSHOT" androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "androidx-datastore" } androidx-draganddrop = "androidx.draganddrop:draganddrop:1.0.0" androidx-dynamicanimation = "androidx.dynamicanimation:dynamicanimation-ktx:1.0.0-alpha03" androidx-material3-android = { group = "androidx.compose.material3", name = "material3-android", version.ref = "material3Android" } androidx-media3-common = { module = "androidx.media3:media3-common", version.ref = "media3" } androidx-media3-effect = { module = "androidx.media3:media3-effect", version.ref = "media3" } androidx-media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "media3" } androidx-media3-transformer = { module = "androidx.media3:media3-transformer", version.ref = "media3" } androidx-media3-ui = { module = "androidx.media3:media3-ui", version.ref = "media3" } # CameraX androidx-camerax-core = { module = "androidx.camera:camera-core", version.ref = "camerax" } androidx-camerax-compose = { module = "androidx.camera:camera-compose", version.ref = "camerax" } androidx-camerax-camera2 = { module = "androidx.camera:camera-camera2", version.ref = "camerax" } androidx-camerax-lifecycle = { module = "androidx.camera:camera-lifecycle", version.ref = "camerax" } androidx-camerax-video = { module = "androidx.camera:camera-video", version.ref = "camerax" } androidx-camerax-view = { module = "androidx.camera:camera-view", version.ref = "camerax" } androidx-camerax-mlkit-vision = { module = "androidx.camera:camera-mlkit-vision", version.ref = "camerax" } androidx-camerax-extensions = { module = "androidx.camera:camera-extensions", version.ref = "camerax" } fresco = "com.facebook.fresco:fresco:3.0.0" fresco-nativeimagetranscoder = "com.facebook.fresco:nativeimagetranscoder:2.6.0!!" glide = "com.github.bumptech.glide:glide:4.15.1" glide-compose = { group = "com.github.bumptech.glide", name = "compose", version.ref = "glide-compose" } appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" } tensorflow-lite = { module = "org.tensorflow:tensorflow-lite", version.ref = "tensorflowLite" } tensorflow-lite-gpu = { module = "org.tensorflow:tensorflow-lite-gpu", version.ref = "tensorflowLite" } tensorflow-lite-gpu-delegate-plugin = { module = "org.tensorflow:tensorflow-lite-gpu-delegate-plugin", version.ref = "tensorflowLiteGpuDelegatePlugin" } tensorflow-lite-select-tf-ops = { module = "org.tensorflow:tensorflow-lite-select-tf-ops", version.ref = "tensorflowLite" } tensorflow-lite-support = { module = "org.tensorflow:tensorflow-lite-support", version.ref = "tensorflowLiteSupport" } barcode-scanning-common = { group = "com.google.mlkit", name = "barcode-scanning-common", version.ref = "barcodeScanningCommon" } play-services-mlkit-barcode-scanning = { group = "com.google.android.gms", name = "play-services-mlkit-barcode-scanning", version.ref = "playServicesMlkitBarcodeScanning" } firebase-crashlytics-buildtools = { group = "com.google.firebase", name = "firebase-crashlytics-buildtools", version.ref = "firebaseCrashlyticsBuildtools" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } android-library = { id = "com.android.library", version.ref = "agp" } compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } affectedmoduledetector = { id = "com.dropbox.affectedmoduledetector", version = "0.2.0" } versionCatalogUpdate = { id = "nl.littlerobots.version-catalog-update", version = "0.7.0" } benManesVersions = { id = "com.github.ben-manes.versions", version = "0.44.0" } android-test = { id = "com.android.test", version.ref = "agp" } hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } protobuf = { id = "com.google.protobuf", version.ref = "protobuf" }