[versions] accompanistVersion = "0.36.0" activityVersion = "1.9.3" androidDesugarJdkLibs = "2.1.5" androidGradlePlugin = "8.10.0" androidTools = "31.10.0" androidx-test-ext-junit = "1.2.1" androidxActivity = "1.10.1" androidxComposeBom = "2025.06.01" androidxComposeCompiler = "1.5.15" androidxCoreSplashscreen = "1.0.1" androidxEspresso = "3.7.0" androidxLifecycle = "2.9.2" androidxMetrics = "1.0.0-beta01" androidxNavigation = "2.9.2" androidxProfileinstaller = "1.4.1" androidxTestRules = "1.6.1" androidxTracing = "1.3.0" appcompatVersion = "1.7.1" androidxBrowser = "1.8.0" mlkit="17.3.0" guavaVersion = "33.3.1-android" cameraxVersion = "1.4.1" coreKtx = "1.16.0" dependencyGuard = "0.5.0" detekt = "1.23.8" easycropVersion = "0.1.1" firebaseBom = "33.7.0" firebaseCrashlyticsPlugin = "3.0.2" firebasePerfPlugin = "1.4.2" gmsPlugin = "4.4.2" googleMaps = "4.4.1" googleOss = "17.1.0" googleOssPlugin = "0.10.6" junitVersion = "4.13.2" ktlint = "12.1.1" libphonenumberAndroidVersion = "8.13.35" lifecycleExtensionsVersion = "2.2.0" lifecycleLivedataKtxVersion = "2.8.7" lifecycleVersion = "2.9.2" material3 = "1.3.1" mockitoCoreVersion = "5.6.0" mockkVersion = "1.13.10" multidexVersion = "2.0.1" roborazzi = "1.26.0" room = "2.7.2" sqliteBundled = "2.5.0-alpha12" secrets = "2.0.1" spotlessVersion = "6.25.0" truth = "1.4.4" turbineVersion = "1.1.0" twitter-detekt-compose = "0.0.26" uiVersion = "0.1.6" versionCatalogLinterVersion = "1.0.3" zxingVersion = "3.5.3" moduleGraph = "2.7.1" lottie = "6.6.7" compottie = "2.0.0-rc05" # Kotlin KMP Dependencies kotlin = "2.1.20" kotlinInject = "0.7.2" kotlinxCoroutines = "1.10.1" kotlinxDatetime = "0.7.1" kotlinxImmutable = "0.3.8" kotlinxSerializationJson = "1.8.1" ksp = "2.1.20-2.0.1" # Ktor & Ktorfit ktorVersion = "3.1.2" ktorfit = "2.5.2" ktorfitKsp = "2.5.1" # Koin CMP Dependencies koin = "4.1.0" koinAnnotationsVersion = "2.1.0" # CMP Libraries compose-plugin = "1.8.2" coil = "3.2.0" backHandlerVersion = "2.5.0" multiplatformSettings = "1.3.0" mokoPermission = "0.19.1" qroseVersion = "1.0.1" okioVersion = "3.9.1" kermit = "2.0.6" fileKit = "0.10.0-beta04" fileKitCompose = "0.8.8" wire = "5.0.0" zoomImage = "1.3.0" uiBackhandler = "1.8.2" openhtmltopdf = "1.0.10" kotlinxHtml = "0.12.0" # Jetbrains CMP windowsSizeClass = "0.5.0" composeJB = "1.8.2" composeLifecycle = "2.9.1" composeNavigation = "2.9.0-beta03" jbCoreBundle = "1.0.1" jbSavedState = "1.3.1" gitLive = "2.1.0" material3adaptive = "1.1.2" calfPermissions = "0.8.0" appUpdate = "2.1.0" review = "2.0.2" integrity = "1.4.0" androidxMacroBenchmark = "1.3.4" # Desktop Version packageName = "Mifos Mobile" packageNamespace = "org.mifos.mobile" packageVersion = "1.0.0" roomCommonVersion = "2.6.1" # Android Version androidPackageNamespace = "org.mifos.mobile" materialVersion = "1.12.0" fluentui-icons = "1.0.0" material = "1.12.0" composeSignature = "1.0.1" [libraries] compose-signature = { module = "io.github.niyajali:compose-signature", version.ref = "composeSignature" } accompanist-pager = { group = "com.google.accompanist", name = "accompanist-pager", version.ref = "accompanistVersion" } accompanist-permissions = { group = "com.google.accompanist", name = "accompanist-permissions", version.ref = "accompanistVersion" } android-desugarJdkLibs = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "androidDesugarJdkLibs" } android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" } android-tools-common = { group = "com.android.tools", name = "common", version.ref = "androidTools" } androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "androidxActivity" } androidx-activity-ktx = { group = "androidx.activity", name = "activity-ktx", version.ref = "activityVersion" } androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompatVersion" } androidx-browser = { group = "androidx.browser", name = "browser", version.ref = "androidxBrowser" } androidx-camera-camera2 = { group = "androidx.camera", name = "camera-camera2", version.ref = "cameraxVersion" } androidx-camera-lifecycle = { group = "androidx.camera", name = "camera-lifecycle", version.ref = "cameraxVersion" } androidx-camera-view = { group = "androidx.camera", name = "camera-view", version.ref = "cameraxVersion" } mlkit-barcode-scanning = { module = "com.google.mlkit:barcode-scanning", version.ref = "mlkit" } guava = { module = "com.google.guava:guava", version.ref = "guavaVersion" } androidx-compose-animation = { group = "androidx.compose.animation", name = "animation" } androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" } androidx-compose-compiler = { group = "androidx.compose.compiler", name = "compiler", version.ref = "androidxComposeCompiler" } androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" } androidx-compose-foundation-layout = { group = "androidx.compose.foundation", name = "foundation-layout" } androidx-compose-material-iconsExtended = { group = "androidx.compose.material", name = "material-icons-extended" } androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "material3" } androidx-compose-runtime = { group = "androidx.compose.runtime", name = "runtime" } androidx-compose-ui-test = { group = "androidx.compose.ui", name = "ui-test-junit4" } androidx-compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } androidx-compose-ui-util = { group = "androidx.compose.ui", name = "ui-util" } androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } androidx-core-splashscreen = { group = "androidx.core", name = "core-splashscreen", version.ref = "androidxCoreSplashscreen" } androidx-lifecycle-extensions = { group = "androidx.lifecycle", name = "lifecycle-extensions", version.ref = "lifecycleExtensionsVersion" } androidx-lifecycle-ktx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "lifecycleVersion" } androidx-lifecycle-livedata-ktx = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "lifecycleLivedataKtxVersion" } androidx-lifecycle-runtimeCompose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidxLifecycle" } androidx-lifecycle-runtimeTesting = { group = "androidx.lifecycle", name = "lifecycle-runtime-testing", version.ref = "androidxLifecycle" } androidx-lifecycle-viewModelCompose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "androidxLifecycle" } androidx-metrics = { group = "androidx.metrics", name = "metrics-performance", version.ref = "androidxMetrics" } androidx-multidex = { group = "androidx.multidex", name = "multidex", version.ref = "multidexVersion" } androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "androidxNavigation" } androidx-navigation-testing = { group = "androidx.navigation", name = "navigation-testing", version.ref = "androidxNavigation" } androidx-profileinstaller = { group = "androidx.profileinstaller", name = "profileinstaller", version.ref = "androidxProfileinstaller" } androidx-room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" } androidx-sqlite-bundled = { module = "androidx.sqlite:sqlite-bundled", version.ref = "sqliteBundled" } androidx-room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" } androidx-room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" } androidx-room-testing = { group = "androidx.room", name = "room-testing", version.ref = "room" } androidx-test-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidxEspresso" } androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-test-ext-junit" } androidx-test-rules = { group = "androidx.test", name = "rules", version.ref = "androidxTestRules" } androidx-tracing-ktx = { group = "androidx.tracing", name = "tracing-ktx", version.ref = "androidxTracing" } detekt-formatting = { group = "io.gitlab.arturbosch.detekt", name = "detekt-formatting", version.ref = "detekt" } detekt-gradlePlugin = { group = "io.gitlab.arturbosch.detekt", name = "detekt-gradle-plugin", version.ref = "detekt" } easycrop-compose = { group = "io.github.mr0xf00", name = "easycrop", version.ref = "easycropVersion" } firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics-ktx" } firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebaseBom" } firebase-cloud-messaging = { group = "com.google.firebase", name = "firebase-messaging-ktx" } firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics-ktx" } firebase-crashlytics-gradlePlugin = { group = "com.google.firebase", name = "firebase-crashlytics-gradle", version.ref = "firebaseCrashlyticsPlugin" } firebase-performance = { group = "com.google.firebase", name = "firebase-perf-ktx" } firebase-performance-gradlePlugin = { group = "com.google.firebase", name = "perf-plugin", version.ref = "firebasePerfPlugin" } google-map-compose = { group = "com.google.maps.android", name = "maps-compose", version.ref = "googleMaps" } google-oss-licenses = { group = "com.google.android.gms", name = "play-services-oss-licenses", version.ref = "googleOss" } google-oss-licenses-plugin = { group = "com.google.android.gms", name = "oss-licenses-plugin", version.ref = "googleOssPlugin" } junit = { group = "junit", name = "junit", version.ref = "junitVersion" } ktlint-gradlePlugin = { group = "org.jlleitschuh.gradle", name = "ktlint-gradle", version.ref = "ktlint" } libphonenumber-android = { group = "io.michaelrocks", name = "libphonenumber-android", version.ref = "libphonenumberAndroidVersion" } lint-api = { group = "com.android.tools.lint", name = "lint-api", version.ref = "androidTools" } lint-checks = { group = "com.android.tools.lint", name = "lint-checks", version.ref = "androidTools" } lint-tests = { group = "com.android.tools.lint", name = "lint-tests", version.ref = "androidTools" } mockito-core = { group = "org.mockito", name = "mockito-core", version.ref = "mockitoCoreVersion" } mockk = { group = "io.mockk", name = "mockk", version.ref = "mockkVersion" } room-gradlePlugin = { group = "androidx.room", name = "room-gradle-plugin", version.ref = "room" } spotless-gradlePlugin = { group = "com.diffplug.spotless", name = "spotless-plugin-gradle", version.ref = "spotlessVersion" } truth = { group = "com.google.truth", name = "truth", version.ref = "truth" } turbine = { group = "app.cash.turbine", name = "turbine", version.ref = "turbineVersion" } twitter-detekt-compose = { group = "com.twitter.compose.rules", name = "detekt", version.ref = "twitter-detekt-compose" } ui = { module = "com.attafitamim.krop:ui", version.ref = "uiVersion" } zxing-core = { group = "com.google.zxing", name = "core", version.ref = "zxingVersion" } # [New KMP Dependencies] # jb Compose jb-kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" } jb-kotlin-stdlib-js = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-js", version.ref = "kotlin" } jb-kotlin-dom = { group = "org.jetbrains.kotlin", name = "kotlin-dom-api-compat", version.ref = "kotlin" } jb-composeRuntime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "composeJB" } jb-composeUiTest = { module = "org.jetbrains.compose.ui:ui-test", version.ref = "composeJB" } jb-lifecycle-compose = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "composeLifecycle" } jb-composeViewmodel = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "composeLifecycle" } jb-lifecycleViewmodel = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel", version.ref = "composeLifecycle" } jb-lifecycleViewmodelSavedState = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate", version.ref = "composeLifecycle" } jb-bundle = { module = "org.jetbrains.androidx.core:core-bundle", version.ref = "jbCoreBundle" } jb-savedstate = { module = "org.jetbrains.androidx.savedstate:savedstate", version.ref = "jbSavedState" } jb-composeNavigation = { module = "org.jetbrains.androidx.navigation:navigation-compose", version.ref = "composeNavigation" } jb-navigation = { module = "org.jetbrains.androidx.navigation:navigation-common", version.ref = "composeNavigation" } jetbrains-compose-material3-adaptive = { group = "org.jetbrains.compose.material3.adaptive", name = "adaptive", version.ref = "material3adaptive" } jetbrains-compose-material3-adaptive-layout = { group = "org.jetbrains.compose.material3.adaptive", name = "adaptive-layout", version.ref = "material3adaptive" } jetbrains-compose-material3-adaptive-navigation = { group = "org.jetbrains.compose.material3.adaptive", name = "adaptive-navigation", version.ref = "material3adaptive" } koin-android = { group = "io.insert-koin", name = "koin-android", version.ref = "koin" } koin-androidx-compose = { group = "io.insert-koin", name = "koin-androidx-compose", version.ref = "koin" } koin-androidx-navigation = { group = "io.insert-koin", name = "koin-androidx-navigation", version.ref = "koin" } koin-annotations = { group = "io.insert-koin", name = "koin-annotations", version.ref = "koinAnnotationsVersion" } koin-bom = { group = "io.insert-koin", name = "koin-bom", version.ref = "koin" } koin-compose = { group = "io.insert-koin", name = "koin-compose", version.ref = "koin" } koin-compose-viewmodel = { group = "io.insert-koin", name = "koin-compose-viewmodel", version.ref = "koin" } koin-compose-navigation = { group = "io.insert-koin", name = "koin-compose-viewmodel-navigation", version.ref = "koin" } koin-core = { group = "io.insert-koin", name = "koin-core", version.ref = "koin" } koin-core-viewmodel = { group = "io.insert-koin", name = "koin-core-viewmodel", version.ref = "koin" } koin-ksp-compiler = { group = "io.insert-koin", name = "koin-ksp-compiler", version.ref = "koinAnnotationsVersion" } koin-test = { group = "io.insert-koin", name = "koin-test", version.ref = "koin" } koin-test-junit4 = { group = "io.insert-koin", name = "koin-test-junit4", version.ref = "koin" } koin-test-junit5 = { group = "io.insert-koin", name = "koin-test-junit5", version.ref = "koin" } kotlin-gradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" } kotlin-inject-compiler-ksp = { group = "me.tatarka.inject", name = "kotlin-inject-compiler-ksp", version.ref = "kotlinInject" } kotlin-inject-runtime = { group = "me.tatarka.inject", name = "kotlin-inject-runtime", version.ref = "kotlinInject" } kotlin-inject-runtime-kmp = { group = "me.tatarka.inject", name = "kotlin-inject-runtime-kmp", version.ref = "kotlinInject" } kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlin" } kotlin-reflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlin" } kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test", version.ref = "kotlin" } kotlinx-collections-immutable = { group = "org.jetbrains.kotlinx", name = "kotlinx-collections-immutable", version.ref = "kotlinxImmutable" } kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" } kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" } kotlinx-coroutines-swing = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-swing", version.ref = "kotlinxCoroutines" } kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" } kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinxDatetime" } kotlinx-serialization-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-core", version.ref = "kotlinxSerializationJson" } kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } ksp-gradlePlugin = { group = "com.google.devtools.ksp", name = "com.google.devtools.ksp.gradle.plugin", version.ref = "ksp" } ktor-client-auth = { group = "io.ktor", name = "ktor-client-auth", version.ref = "ktorVersion" } ktor-client-content-negotiation = { group = "io.ktor", name = "ktor-client-content-negotiation", version.ref = "ktorVersion" } ktor-client-core = { group = "io.ktor", name = "ktor-client-core", version.ref = "ktorVersion" } ktor-client-darwin = { group = "io.ktor", name = "ktor-client-darwin", version.ref = "ktorVersion" } ktor-client-okhttp = { group = "io.ktor", name = "ktor-client-okhttp", version.ref = "ktorVersion" } ktor-client-js = { group = "io.ktor", name = "ktor-client-js", version.ref = "ktorVersion" } ktor-client-json = { group = "io.ktor", name = "ktor-client-json", version.ref = "ktorVersion" } ktor-client-logging = { group = "io.ktor", name = "ktor-client-logging", version.ref = "ktorVersion" } ktor-client-serialization = { group = "io.ktor", name = "ktor-client-serialization", version.ref = "ktorVersion" } ktor-serialization-kotlinx-json = { group = "io.ktor", name = "ktor-serialization-kotlinx-json", version.ref = "ktorVersion" } ktor-client-mock = { group = "io.ktor", name = "ktor-client-mock", version.ref = "ktorVersion" } ktorfit-ksp = { group = "de.jensklingenberg.ktorfit", name = "ktorfit-ksp", version.ref = "ktorfitKsp" } ktorfit-lib = { group = "de.jensklingenberg.ktorfit", name = "ktorfit-lib", version.ref = "ktorfit" } coil-core = { group = "io.coil-kt.coil3", name = "coil-core", version.ref = "coil" } coil-kt = { group = "io.coil-kt.coil3", name = "coil", version.ref = "coil" } coil-kt-compose = { group = "io.coil-kt.coil3", name = "coil-compose-core", version.ref = "coil" } coil-network-ktor = { group = "io.coil-kt.coil3", name = "coil-network-ktor3", version.ref = "coil" } coil-svg = { group = "io.coil-kt.coil3", name = "coil-svg", version.ref = "coil" } zoom-image = { module="io.github.panpf.zoomimage:zoomimage-compose-coil3", version.ref = "zoomImage" } calf-permissions = { module = "com.mohamedrejeb.calf:calf-permissions", version.ref = "calfPermissions" } compose-gradlePlugin = { group = "org.jetbrains.kotlin", name = "compose-compiler-gradle-plugin", version.ref = "kotlin" } squareup-okio = { group = "com.squareup.okio", name = "okio", version.ref = "okioVersion" } back-handler = { group = "com.arkivanov.essenty", name = "back-handler", version.ref = "backHandlerVersion" } filekit-core = { group = "io.github.vinceglb", name = "filekit-core", version.ref = "fileKit" } filekit-coil = { module = "io.github.vinceglb:filekit-coil", version.ref = "fileKit" } filekit-dialog-compose = { group = "io.github.vinceglb", name = "filekit-dialogs-compose", version.ref = "fileKit" } filekit-dialogs = { module = "io.github.vinceglb:filekit-dialogs", version.ref = "fileKit" } filekit-compose = { group = "io.github.vinceglb", name = "filekit-compose", version.ref = "fileKitCompose" } qrose = { group = "io.github.alexzhirkevich", name="qrose", version.ref = "qroseVersion" } lottie-compose = { group = "com.airbnb.android", name = "lottie-compose", version.ref = "lottie" } compottie = { module = "io.github.alexzhirkevich:compottie", version.ref = "compottie" } compottie-lite = { module = "io.github.alexzhirkevich:compottie-lite", version.ref = "compottie" } compottie-dot = { module = "io.github.alexzhirkevich:compottie-dot", version.ref = "compottie" } compottie-network = { module = "io.github.alexzhirkevich:compottie-network", version.ref = "compottie" } compottie-resources = { module = "io.github.alexzhirkevich:compottie-resources", version.ref = "compottie" } openhtmltopdf-pdfbox = { group = "com.openhtmltopdf", name = "openhtmltopdf-pdfbox", version.ref = "openhtmltopdf" } openhtmltopdf-svg-support = { group = "com.openhtmltopdf", name = "openhtmltopdf-svg-support", version.ref = "openhtmltopdf" } kotlinx-html = { group = "org.jetbrains.kotlinx", name = "kotlinx-html", version.ref = "kotlinxHtml" } kermit-logging = { group = "co.touchlab", name = "kermit", version.ref = "kermit" } kermit-simple = { group = "co.touchlab", name = "kermit-simple", version.ref = "kermit" } multiplatform-settings = { group = "com.russhwolf", name = "multiplatform-settings-no-arg", version.ref = "multiplatformSettings" } multiplatform-settings-coroutines = { group = "com.russhwolf", name = "multiplatform-settings-coroutines", version.ref = "multiplatformSettings" } multiplatform-settings-serialization = { group = "com.russhwolf", name = "multiplatform-settings-serialization", version.ref = "multiplatformSettings" } multiplatform-settings-test = { group = "com.russhwolf", name = "multiplatform-settings-test", version.ref = "multiplatformSettings" } moko-permission-compose = { group = "dev.icerock.moko", name = "permissions-compose", version.ref = "mokoPermission" } app-update = { module = "com.google.android.play:app-update", version.ref = "appUpdate" } app-update-ktx = { module = "com.google.android.play:app-update-ktx", version.ref = "appUpdate" } integrity = { module = "com.google.android.play:integrity", version.ref = "integrity" } review = { module = "com.google.android.play:review", version.ref = "review" } review-ktx = { module = "com.google.android.play:review-ktx", version.ref = "review" } ui-backhandler = { module = "org.jetbrains.compose.ui:ui-backhandler", version.ref = "uiBackhandler" } window-size = { group = "dev.chrisbanes.material3", name = "material3-window-size-class-multiplatform", version.ref = "windowsSizeClass" } fluentui-system-icons = { module = "io.github.niyajali:fluentui-system-icons", version.ref = "fluentui-icons" } material = { group = "com.google.android.material", name = "material", version.ref = "material" } gitlive-firebase-analytics = { module = "dev.gitlive:firebase-analytics", version.ref = "gitLive" } gitlive-firebase-crashlytics = { module = "dev.gitlive:firebase-crashlytics", version.ref = "gitLive" } gitlive-firebase-performance = { module = "dev.gitlive:firebase-performance", version.ref = "gitLive" } [bundles] androidx-compose-ui-test = [ "androidx-compose-ui-test", "androidx-compose-ui-test-manifest" ] [plugins] # Android & Kotlin Plugins android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" } android-test = { id = "com.android.test", version.ref = "androidGradlePlugin" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlinCocoapods = { id = "org.jetbrains.kotlin.native.cocoapods", version.ref = "kotlin" } # Room Plugins room = { id = "androidx.room", version.ref = "room" } mifos-kmp-room = { id = "mifos.kmp.room", version = "unspecified" } mifos-android-application = { id = "mifos.android.application", version = "unspecified" } mifos-android-application-compose = { id = "mifos.android.application.compose", version = "unspecified" } mifos-android-application-flavors = { id = "mifos.android.application.flavors", version = "unspecified" } mifos-android-library = { id = "mifos.android.library", version = "unspecified" } mifos-android-library-compose = { id = "mifos.android.library.compose", version = "unspecified" } mifos-android-feature = { id = "mifos.android.feature", version = "unspecified" } # KMP & CMP Plugins compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } jetbrainsCompose = { id = "org.jetbrains.compose", version.ref = "compose-plugin" } 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" } kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } ktorfit = { id = "de.jensklingenberg.ktorfit", version.ref = "ktorfit" } wire = { id = "com.squareup.wire", version.ref = "wire" } baselineprofile = { id = "androidx.baselineprofile", version.ref = "androidxMacroBenchmark" } cmp-feature-convention = { id = "org.convention.cmp.feature", version = "unspecified" } kmp-koin-convention = { id = "org.convention.kmp.koin", version = "unspecified" } kmp-library-convention = { id = "org.convention.kmp.library", version = "unspecified" } kmp-core-base-library-convention = { id = "org.convention.kmp.core.base.library", version = "unspecified" } android-application-firebase = { id = "org.convention.android.application.firebase" } android-lint = { id = "org.convention.android.application.lint" } # Utility Plugins mifos-detekt-plugin = { id = "mifos.detekt.plugin", version = "unspecified" } mifos-git-hooks = { id = "mifos.git.hooks", version = "unspecified" } mifos-spotless-plugin = { id = "mifos.spotless.plugin", version = "unspecified" } firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebaseCrashlyticsPlugin" } firebase-perf = { id = "com.google.firebase.firebase-perf", version.ref = "firebasePerfPlugin" } roborazzi = { id = "io.github.takahirom.roborazzi", version.ref = "roborazzi" } gms = { id = "com.google.gms.google-services", version.ref = "gmsPlugin" } dependencyGuard = { id = "com.dropbox.dependency-guard", version.ref = "dependencyGuard" } secrets = { id = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin", version.ref = "secrets" } detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" } spotless = { id = "com.diffplug.spotless", version.ref = "spotlessVersion" } version-catalog-linter = { id = "io.github.pemistahl.version-catalog-linter", version.ref = "versionCatalogLinterVersion" } module-graph = { id = "com.jraska.module.graph.assertion", version.ref = "moduleGraph" }