[versions] minSdk = "23" compileSdk = "34" kotlin = "1.9.22" agp = "8.3.1" # https://maven.google.com/web/index.html?q=gradle.plugin#com.android.library:com.android.library.gradle.plugin compose-multiplatform = "1.6.1" # https://github.com/JetBrains/compose-multiplatform/releases androidx-compose-runtime = "1.6.3" # https://developer.android.com/jetpack/androidx/releases/compose androidx-compose-ui = "1.6.3" androidx-compose-ui-material3 = "1.2.1" # https://developer.android.com/jetpack/androidx/releases/compose-material3 androidx-annotation = "1.7.1" androidx-compose-compiler = "1.5.10" androidx-appcompat = "1.6.1" androidx-activity = "1.8.2" # https://developer.android.com/jetpack/androidx/releases/activity androidx-exif = "1.3.7" # https://developer.android.com/jetpack/androidx/releases/exifinterface androidx-tracing = "1.2.0" # https://developer.android.com/jetpack/androidx/releases/tracing androidx-ktx = "1.12.0" # https://developer.android.com/jetpack/androidx/releases/core androidx-ktx-palette = "1.0.0" androidx-test-core = "1.6.0-alpha05" # https://developer.android.com/jetpack/androidx/releases/test androidx-test-rules = "1.6.0-alpha03" # https://developer.android.com/jetpack/androidx/releases/test androidx-test-runner = "1.6.0-alpha06" # https://developer.android.com/jetpack/androidx/releases/test androidx-test-junit = "1.1.5" androidx-test-uiautomator = "2.3.0" # https://developer.android.com/jetpack/androidx/releases/test-uiautomator accompanist = "0.32.0" # https://github.com/google/accompanist/releases testParamInjector = "1.15" junit = "4.13.2" coil = "2.5.0" glide = "4.15.1" turbine = "1.0.0" # https://github.com/cashapp/turbine/releases/ paparazzi = "1.3.2" # https://github.com/cashapp/paparazzi/releases molecule = "1.4.1" # https://github.com/cashapp/molecule/releases leakcanary = "3.0-alpha-1" # https://square.github.io/leakcanary/changelog/ kotlinx-coroutines = "1.8.0" # https://github.com/kotlin/kotlinx.coroutines/releases mavenPublish = "0.27.0" dropshots = "0.4.1" dropboxDiffer = "0.0.1" emulatorWtf = "0.15.1" # https://docs.emulator.wtf/changelog/ emulatorWtfCli = "0.10.9" # https://docs.emulator.wtf/changelog/ okio = "3.9.0" okhttp-mockWebServer = "4.11.0" dokka = "1.9.10" assertk = "0.28.0" circuit = "0.13.0-beta01" espresso-core = "3.5.1" uiautomator = "2.3.0" benchmark-macro-junit4 = "1.2.3" metalava = "0.3.5" # https://github.com/tylerbwong/metalava-gradle/releases poko = "0.15.2" # https://github.com/drewhamilton/Poko/blob/main/CHANGELOG.md composeLintChecks = "1.2.0" # https://slackhq.github.io/compose-lints/changelog/ [plugins] android-application = { id = "com.android.application", version.ref = "agp" } android-library = { id = "com.android.library", version.ref = "agp" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } jetbrains-compose = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" } paparazzi = { id = "app.cash.paparazzi", version.ref = "paparazzi" } dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } mavenPublish = { id = "com.vanniktech.maven.publish", version.ref = "mavenPublish" } dropshots = { id = "com.dropbox.dropshots", version.ref = "dropshots" } emulatorWtf = { id = "wtf.emulator.gradle", version.ref = "emulatorWtf" } metalava = { id = "me.tylerbwong.gradle.metalava", version.ref = "metalava" } poko = { id = "dev.drewhamilton.poko", version.ref = "poko" } [libraries] # Build logic dependencies plugin-agp = { module = "com.android.tools.build:gradle", version.ref = "agp" } plugin-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } plugin-jetbrains-compose = { module = "org.jetbrains.compose:compose-gradle-plugin", version.ref = "compose-multiplatform" } plugin-dokka = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref = "dokka" } plugin-mavenPublish = { module = "com.vanniktech:gradle-maven-publish-plugin", version.ref = "mavenPublish" } plugin-dropshots = { module = "com.dropbox.dropshots:dropshots-gradle-plugin", version.ref = "dropshots" } plugin-emulatorWtf = { module = "wtf.emulator:gradle-plugin", version.ref = "emulatorWtf" } plugin-metalava = { module = "me.tylerbwong.gradle.metalava:plugin", version.ref = "metalava" } plugin-poko = { module = "dev.drewhamilton.poko:poko-gradle-plugin", version.ref = "poko" } androidx-annotation = { module = "androidx.annotation:annotation", version.ref = "androidx-annotation" } androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" } androidx-ktx-core = { module = "androidx.core:core-ktx", version.ref = "androidx-ktx" } androidx-ktx-palette = { module = "androidx.palette:palette-ktx", version.ref = "androidx-ktx-palette" } androidx-activity = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity"} androidx-exif = { module = "androidx.exifinterface:exifinterface", version.ref = "androidx-exif"} androidx-tracing = { module = "androidx.tracing:tracing-ktx", version.ref = "androidx-tracing"} androidx-test-ktx = { module = "androidx.test:core-ktx", version.ref = "androidx-test-core" } androidx-test-rules = { module = "androidx.test:rules", version.ref = "androidx-test-rules" } androidx-test-runner = { module = "androidx.test:runner", version.ref = "androidx-test-runner" } androidx-test-junit = { module = "androidx.test.ext:junit-ktx", version.ref = "androidx-test-junit" } androidx-test-uiautomator = { module = "androidx.test.uiautomator:uiautomator", version.ref = "androidx-test-uiautomator" } espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espresso-core" } uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "uiautomator" } benchmark-macro-junit4 = { group = "androidx.benchmark", name = "benchmark-macro-junit4", version.ref = "benchmark-macro-junit4" } androidx-compose-compiler = { module = "androidx.compose.compiler:compiler", version.ref = "androidx-compose-compiler" } # TODO remove compose libs in favor of declaring via jetbrains compose plugin compose-runtime = { module = "androidx.compose.runtime:runtime", version.ref = "androidx-compose-runtime" } compose-foundation = { module = "androidx.compose.foundation:foundation", version.ref = "androidx-compose-ui" } compose-ui-util = { module = "androidx.compose.ui:ui-util", version.ref = "androidx-compose-ui" } compose-ui-material3 = { module = "androidx.compose.material3:material3", version.ref = "androidx-compose-ui-material3" } compose-ui-materialIcons = { module = "androidx.compose.material:material-icons-extended", version.ref = "androidx-compose-ui" } compose-ui-test-junit = { module = "androidx.compose.ui:ui-test-junit4", version.ref = "androidx-compose-ui" } compose-ui-test-activityManifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "androidx-compose-ui" } accompanist-drawablePainter = { module = "com.google.accompanist:accompanist-drawablepainter", version.ref = "accompanist" } accompanist-systemUi = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanist" } coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" } coil-gif = { module = "io.coil-kt:coil-gif", version.ref = "coil" } coil-svg = { module = "io.coil-kt:coil-svg", version.ref = "coil" } coil-test = { module = "io.coil-kt:coil-test", version.ref = "coil" } glide-core = { module = "com.github.bumptech.glide:glide", version.ref = "glide" } kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinx-coroutines" } kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" } okio-core = { module = "com.squareup.okio:okio", version.ref = "okio" } okio-fakeFileSystem = { module = "com.squareup.okio:okio-fakefilesystem", version.ref = "okio" } okhttp-mockWebServer = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "okhttp-mockWebServer" } turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" } molecule-runtime = { module = "app.cash.molecule:molecule-runtime", version.ref = "molecule" } leakcanary-core = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanary" } leakcanary-test = { module = "com.squareup.leakcanary:leakcanary-android-instrumentation", version.ref = "leakcanary" } junit = { module = "junit:junit", version.ref = "junit" } testParamInjector = { module = "com.google.testparameterinjector:test-parameter-injector", version.ref = "testParamInjector" } dropshots = { module = "com.dropbox.dropshots:dropshots", version.ref = "dropshots" } dropboxDiffer = { module = "com.dropbox.differ:differ", version.ref = "dropboxDiffer" } assertk = { module = "com.willowtreeapps.assertk:assertk", version.ref = "assertk" } circuit-runtime = { module = "com.slack.circuit:circuit-foundation", version.ref = "circuit" } circuit-backstack = { module = "com.slack.circuit:circuit-backstack", version.ref = "circuit" } composeLintChecks = { module = "com.slack.lint.compose:compose-lint-checks", version.ref = "composeLintChecks" }