Skip to content
CAI
Software that uses CAICheck a score

AfigAliyev/Cinemax-CMP

57.1

Weak · 21 September 2026

12.9k

lines of production code

Kotlin

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This is a cross-platform mobile application built with Compose Multiplatform, designed to run on both Android and iOS devices. It provides a unified UI for browsing and searching movies and TV shows, managing user settings, and maintaining a personal wishlist. The system leverages a shared Kotlin codebase for the core logic and interface, while utilizing platform-specific shells to integrate with native Android and iOS environments.

Features

Add Compose Multiplatform composeApp module

Introduced the Compose Multiplatform composeApp module, adding new UI screens and components for the app's home, search, settings, and wishlist features. This includes the HomeScreen with movie and TV show listings, a SearchScreen with live query results, a SettingsScreen with grouped options, and a WishlistScreen for saved content, all built using Jetpack Compose for the common module.

(repo-wide) · high confidence

Add iOS application target and native iOS app shell

The iOS application target has been added to the project, establishing the native iOS app shell. This includes the Xcode project configuration, the main SwiftUI entry point (iOSApp.swift), and a ContentView that wraps the shared ComposeApp logic via a UIViewControllerRepresentable. The change also introduces iOS-specific assets (app icon, launch screen, splash background color) and an Info.plist, enabling the iOS app to launch and display the cross-platform UI.

iosApp · high confidence

Android platform support and UI assets added

The app now supports Android with the addition of the \composeApp\ module, including the \CinemaxActivity\ and \CinemaxApplication\ classes for Android lifecycle and dependency injection setup. Android-specific database and datastore builders are provided, and the app includes a set of common and Android-specific drawable resources (icons and splash screen assets) to support the UI.

composeApp, composeApp/src/commonMain/kotlin/com/cinemax/feature/details, composeApp/src/commonMain/kotlin/com/cinemax/feature/list · high confidence

Behavioural changes

Project initialization and build configuration updates

The repository was initialized with core project files, including the Apache 2.0 license, a comprehensive README with build and architecture documentation, and a lint configuration that suppresses specific Gradle dependency warnings. Additionally, the Gradle wrapper scripts (gradlew, gradlew.bat) were updated to a newer version, and a .gitignore file was added to exclude build artifacts and IDE settings.

(repo-wide) · high confidence

Removal of Android app module files

The Android app module's configuration files, specifically .gitignore and proguard-rules.pro, have been removed from the project. This indicates a reduction in the Android-specific build configuration for the app module.

app · medium confidence

Dependencies

Migrated to Compose Multiplatform and modernized build configuration

The project has been restructured to support Compose Multiplatform, adding a new 'composeApp' module for iOS and Android targets while removing the legacy Android-only 'app' module. The build system now uses Kotlin DSL (KTS) and a centralized version catalog (libs.versions.toml) to manage dependencies. This includes upgrading to Kotlin 2.2.21, Android Gradle Plugin 8.13.1, and updating a wide range of libraries including Koin, Ktor, Coil, and Jetpack Compose components to their latest versions.

(dependencies) · high confidence

Updated Gradle wrapper to version 9.2.1

The Gradle wrapper has been upgraded from version 7.5.1 to 9.2.1. This update includes configuration changes such as setting a network timeout and enabling distribution URL validation, which may affect how the project is built and which Gradle version is automatically downloaded.

gradle · 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 52 → 57 (+5.4)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 99 (-0.3)
  • Architecture 100 → 96 (-4.5)
  • Maturity 64 → 64 (+0.0)
  • Readiness 44 → 41 (-3.4)
  • Security 38 → 67 (+29.2)
  • Domain Modelling 100 → 83 (-17.3)

Resolved (21)

  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (10 lines × 2) (composeApp/src/commonMain/kotlin/com/cinemax/core/data/paging/MovieRemoteMediator.kt)
  • Duplicated block (12 lines × 2) (composeApp/src/commonMain/kotlin/com/cinemax/core/data/paging/SearchMoviePagingSource.kt)
  • Duplicated block (12 lines × 2) (composeApp/src/commonMain/kotlin/com/cinemax/feature/home/HomeViewModel.kt)
  • Duplicated block (12 lines × 2) (composeApp/src/commonMain/kotlin/com/cinemax/feature/home/HomeViewModel.kt)
  • Duplicated block (18 lines × 2) (composeApp/src/commonMain/kotlin/com/cinemax/core/data/paging/MovieRemoteMediator.kt)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • No exposed public API
  • The Android build command is shown as ./gradlew :composeApp:assembleDebug but the Gradle wrapper path and local.properties file location are not referenced in the Getting Started section. (README.md)
  • …and 1 more

New (21)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no architecture or design documentation (README.md)
  • Duplicated block (13 lines × 2) (composeApp/src/commonMain/kotlin/com/cinemax/core/data/paging/MovieRemoteMediator.kt)
  • Duplicated block (19 lines × 2) (composeApp/src/commonMain/kotlin/com/cinemax/feature/home/HomeViewModel.kt)
  • Duplicated block (20 lines × 2) (composeApp/src/commonMain/kotlin/com/cinemax/core/data/paging/SearchMoviePagingSource.kt)
  • Duplicated block (23 lines × 2) (composeApp/src/commonMain/kotlin/com/cinemax/feature/home/HomeViewModel.kt)
  • Duplicated block (29 lines × 2) (composeApp/src/commonMain/kotlin/com/cinemax/core/data/paging/MovieRemoteMediator.kt)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • MethodTooLong: DetailsKt.DetailsItem (composeApp/src/commonMain/kotlin/com/cinemax/feature/details/component/Details.kt)
  • …and 1 more

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

AfigAliyev/Cinemax-CMP 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 796778f4979edb2852bdd43141fdfca42844e451 — 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-fa71c66cabd8.