Skip to content
CAI
Software that uses CAICheck a score

inassar0/kotlin-multiplatform-template

45.5

Weak · 21 September 2026

1.3k

lines of production code

Kotlin

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Behavioural changes

Gradle wrapper upgraded to version 8.2

The Gradle wrapper has been updated from version 8.0.2 to 8.2. This upgrade ensures that the project uses a more recent version of the Gradle build tool, which may include new features, performance improvements, and bug fixes.

gradle · high confidence

Introduction of build flavor definitions

A new Kotlin enum class named BuildFlavors has been added to define the available build configurations. This introduces four distinct build flavors—DEV, QA, STG, and PROD—which can be used to differentiate build variants for different environments.

buildSrc/src/main/java · high confidence

Migrate feature presentation layer to Voyager ScreenModel

The feature presentation layer has been refactored to use Voyager's \StateScreenModel\ instead of the previous \moko-ViewModel\ approach. This change updates the \FeatureModel\ to manage state via \StateScreenModel\, replacing the old \CStateFlow\ and \ViewModel\ pattern. Additionally, the package structure has been updated from \feature.presentation\ to \me.inassar.features.feature.presentation\, and UI components like \ProductDetails\ and \FeatureScreen\ have been adapted to work with the new navigation and state management model.

shared/src/commonMain/kotlin/me/inassar/features/feature/presentation · high confidence

Migrated to Material 3 and implemented platform-specific UI and localization

The application has been migrated to Material 3, introducing platform-specific UI behaviors such as adaptive navigation transitions (Slide, Fade, Scale) and status bar color changes on Android and iOS. A new localization system has been added, supporting English and Arabic translations for string resources and error messages. Additionally, the codebase has been reorganized with a new package structure (me.inassar) and platform-specific implementations for network engines and device information.

shared · high confidence

Rearranged package structure for feature modules

The feature module's data and domain layers have been reorganized under a new package path (from \feature\ to \me.inassar.features.feature\). This refactoring updates all relevant imports and package declarations across the remote API, repository, and domain mapper classes, ensuring the codebase adheres to the new directory structure.

shared/src/commonMain/kotlin/me/inassar/features/feature/data, shared/src/commonMain/kotlin/me/inassar/features/feature/domain · high confidence

Refactored package structure for desktopApp source files

The \MyApp.kt\ and \main.kt\ files in the \desktopApp\ module have been moved from the root \kotlin\ directory into the \me.inassar\ package directory. This change updates the package declarations and import statements to reflect the new directory structure, ensuring the application code is organized under the \me.inassar\ namespace.

desktopApp · high confidence

Removed legacy build configuration files from buildSrc

The build configuration files (Dependencies.kt, Utils.kt, Versions.kt) in buildSrc/src/main/kotlin have been deleted. This removes the centralized management of dependency versions and Gradle utility functions, indicating a migration away from this specific build structure.

buildSrc/src/main/kotlin · high confidence

Updated Koin initialization in Android application

The Android application's dependency injection setup was refactored to use a new \initKoinForAndroid\ function, which explicitly enables network logging. This change replaces the previous \initKoin\ call and \appModule\ configuration, streamlining how the Koin container is initialized with Android-specific context and logging.

androidApp · high confidence

Updated iOS build configuration and Koin initialization

The iOS application's Xcode project file (project.pbxproj) has been updated to reflect changes in the CocoaPods configuration, including updated file references for the Pods framework and xcconfig files, as well as a reorganization of the build phases to ensure proper synchronization of the Podfile.lock. Additionally, the iOSApp.swift file has been modified to include a comment in the Koin initialization call, indicating that the enableNetworkLogs parameter should be set based on the debug or release configuration.

iosApp · high confidence

Dependencies

Migrate to Gradle Version Catalogs and add BuildKonfig support

The project has been refactored to use Gradle Version Catalogs (libs.versions.toml) for centralized dependency and plugin management, replacing the previous static \Versions\ and \Dependencies\ objects. This change updates all \build.gradle.kts\ files to use the new catalog references. Additionally, the \shared\ module now includes BuildKonfig configuration to generate build-time configuration files for different build flavors (DEV, QA, STG, PROD), enabling environment-specific configuration at compile time.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 53 → 46 (-7.4)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (-0.3)
  • Architecture 100 → 96 (-4.3)
  • Maturity 70 → 47 (-23.0)
  • Readiness 15 → 15 (+0.0)
  • Security 97 → 100 (+2.5)

Resolved (5)

  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Medium: security finding (details withheld)
  • No exposed public API
  • No tests — template/sample
  • single-maintainer — knowledge-concentration (bus factor) risk

New (6)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • No ADRs found
  • No automated tests
  • TodoComment (shared/src/commonMain/kotlin/me/inassar/common/locale/Localize.kt)

Architecture

  • Unchanged — 0 containers · 1 contexts · 0 edges

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

inassar0/kotlin-multiplatform-template was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 48c11b7e75d2d3ce758a1c1f6d9489cd336057ce — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.