# Latest stable versions as of 2026-08-24 (checked against Google Maven / # Maven Central; prereleases deliberately skipped). zxing-embedded checked # 2026-08-25. [versions] agp = "9.3.2" kotlin = "2.4.10" compose-multiplatform = "1.11.1" # material3 ships on its own release train, separate from the CMP version. compose-material3 = "1.9.0" androidx-activityCompose = "1.13.0" # Declared rather than inherited because this # code now calls its extensions directly (SharedPreferences.edit, String # .toUri), and a transitive it merely inherited could change under it. androidx-core-ktx = "1.19.0" zxing-embedded = "4.3.0" # The Kotlin formatter, run at its defaults (see CODE_RULES rule 27). ktfmt # itself is Kotlin-org owned and has almost nothing to configure, which is # the point; this is the Gradle wrapper for it. Checked 2026-08-28. ktfmt-gradle = "0.27.0" # Backports java.time (and more) to API 24, which UsageScreen needs: its # reset countdown is OffsetDateTime/Duration, both API 26. Checked # 2026-08-28 against Google Maven. desugar-jdk-libs = "2.1.5" [libraries] androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activityCompose" } androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidx-core-ktx" } # In-app QR scanner: a ready-made scanning Activity (camera preview, runtime # permission prompt, flashlight toggle) reached through the AndroidX Activity # Result API (ScanContract, added in 4.3.0). Fully offline -- no Play # Services / ML Kit model download involved. zxing-embedded = { module = "com.journeyapps:zxing-android-embedded", version.ref = "zxing-embedded" } desugar-jdk-libs = { module = "com.android.tools:desugar_jdk_libs", version.ref = "desugar-jdk-libs" } # Declared directly rather than through the plugin's `compose.*` accessors, # which are deprecated as of CMP 1.11. compose-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "compose-multiplatform" } compose-foundation = { module = "org.jetbrains.compose.foundation:foundation", version.ref = "compose-multiplatform" } compose-material3 = { module = "org.jetbrains.compose.material3:material3", version.ref = "compose-material3" } compose-ui = { module = "org.jetbrains.compose.ui:ui", version.ref = "compose-multiplatform" } [plugins] androidApplication = { id = "com.android.application", version.ref = "agp" } composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" } composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } ktfmt = { id = "com.ncorti.ktfmt.gradle", version.ref = "ktfmt-gradle" }