Skip to content
CAI
Software that uses CAICheck a score

4mr0m3r0/movies-jetpack-sample

49.3

Weak · 21 September 2026

3.6k

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 an Android application project that has been refactored from a modular architecture into a modernized, consolidated structure using Gradle Version Catalogs and Hilt for dependency injection. The system implements a state machine-based architecture for managing UI states, visualized through PlantUML diagrams. It includes core features for displaying and managing favorite movies, supported by comprehensive unit and instrumented tests for the UI components and search functionality.

Features

Added architectural and structural diagrams for the Android Jetpack project

Three new PlantUML diagram files have been added to the project to visualize the system's structure and behavior. A mind map outlines the Android Jetpack components, including Compose, Hilt, and Paging. A sequence diagram illustrates the interaction flow between the Screen, ViewModel, and a State Machine. A class diagram defines the State Machine architecture, detailing the StateContext, State interface, and specific states like PagingPosters and Searching.

diagrams · high confidence

Behavioural changes

Rearranged library structure and updated ProGuard rules

The ui-components module was moved from the data and presentation directories to the new libraries/ui-components location, with corresponding updates to .gitignore and proguard-rules.pro files. The ProGuard configuration now explicitly comments out the SourceFile attribute renaming, which may affect how source file names are handled during minification.

libraries · medium confidence

Removal of modular architecture components

The application's modular architecture has been removed. This includes the deletion of the entire \cache\, \data\, \domain\, \remote\, and \presentation\ modules, along with the \smartphone-ui\ module. This refactoring consolidates the codebase, removing the separation between data, domain, and presentation layers, as well as the associated mappers, repositories, and use cases.

(repo-wide) · high confidence

Test coverage

Added tests for the Favorites feature; Added unit and instrumented tests for the ui-components library.

Dependencies

Gradle wrapper upgraded to 8.0

The Gradle wrapper has been updated from version 4.6 to 8.0, which will require a newer version of the Gradle build system to compile and run the project.

gradle · high confidence

Migrate to Gradle Version Catalogs and modernize build configuration

The project has been refactored to use Gradle Version Catalogs (libs.versions.toml) for centralized dependency management, replacing the previous flat-file approach (dependencies.gradle). This change introduces a new 'ui-components' library module and consolidates the build structure, while removing legacy modules (domain, data, remote, cache, presentation, smartphone-ui) in favor of a modernized app module. The build script also adds support for Kotlin coroutines in Room, integrates Hilt for dependency injection, and includes Detekt for static code analysis.

(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

Score

  • CAI 51 → 49 (-2.0)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 99 → 99 (+0.1)
  • Architecture 100 → 96 (-3.8)
  • Maturity 63 → 63 (+0.0)
  • Readiness 24 → 24 (+0.0)
  • Security 100 → 100 (+0.0)
  • Domain Modelling 70 → 60 (-9.9)

Resolved (8)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (18 lines × 2) (app/src/main/java/com/tzion/jetpackmovies/uicomponent/card/MovieCard.kt)
  • Duplicated block (18 lines × 3) (app/src/main/java/com/tzion/jetpackmovies/presentation/favorites/FavoriteMoviesScreen.kt)
  • Duplicated block (20 lines × 2) (app/src/main/java/com/tzion/jetpackmovies/presentation/favorites/composable/FavoriteDisplay.kt)
  • No exposed public API
  • Test reliability not included
  • single-maintainer — knowledge-concentration (bus factor) risk

New (7)

  • 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)
  • Duplicated block (24 lines × 2) (app/src/main/java/com/tzion/jetpackmovies/uicomponent/card/MovieCard.kt)
  • Duplicated block (33 lines × 3) (app/src/main/java/com/tzion/jetpackmovies/presentation/favorites/FavoriteMoviesScreen.kt)
  • Duplicated block (36 lines × 2) (app/src/main/java/com/tzion/jetpackmovies/presentation/favorites/composable/FavoriteDisplay.kt)
  • TodoComment (app/src/androidTest/java/com/tzion/jetpackmovies/presentation/favorites/composable/FavoriteDisplayTest.kt)

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

Survey your own repository

4mr0m3r0/movies-jetpack-sample 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 11b983e57bc1508a6ec5ca738af70c4f9a8ea9aa — 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.