Skip to content
CAI
Software that uses CAICheck a score

GiuseppeGiacoppo/Android-Clean-Architecture-with-Kotlin

45.6

Weak · 21 September 2026

571

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 designed to browse and display information about TV shows using the TMDB API. It implements a modular architecture with separate app, core, and data layers, utilizing the Model-View-Presenter (MVP) pattern to manage UI logic and asynchronous data streams. The system handles network requests, data mapping, and state management for popular shows and individual show details.

Features

Added MVP-based TV show browsing and detail views

The app now includes a home screen that lists popular TV shows and a detail screen that displays a show's description and cover image. This is implemented using the MVP pattern with separate activities for the list and detail views, supported by a RecyclerView adapter and viewholders for the list items. The UI includes loading states, error messages, and a toolbar header shared across both screens.

app/src · high confidence

Added core MVP architecture for TV show browsing

Introduced the core infrastructure for the application's Model-View-Presenter (MVP) architecture. This includes the \ShowsRepository\ interface and \DefaultObserver\ base class for handling asynchronous data streams, along with \UseCase\ interactor classes (\GetPopularTVShows\, \GetShow\) that encapsulate business logic. The update also adds the \PopularPresenter\ and \ShowPresenter\ to handle UI logic, supported by \PopularContract\ and \ShowContract\ interfaces that define the communication between the view and presenters.

core · medium confidence

Added data layer for fetching TV show information from TMDB

Introduced a new data module that implements the repository pattern to fetch TV show data from the TMDB API. This includes the network client configuration with API key handling, a Retrofit service interface, data models for TV shows, a mapper to convert API responses into domain entities, and a presenter to manage the UI state for show details.

data · high confidence

Behavioural changes

Added app-level build configuration files

The app module now includes a .gitignore file to exclude generated files like \*.iml and /build directories from version control, and a proguard-rules.pro file to configure code shrinking and obfuscation for the Android application.

app · high confidence

Dependencies

Initial Android project structure and dependencies

The project now includes a standard Android/Gradle build configuration, establishing the application's structure with modules for app, core, and data. This introduces key libraries including Kotlin 1.1.4-3, AndroidX/Support 26.0.2, Glide 4.1.1, Gson 2.8.0, OkHttp 3.9.0, Retrofit 2.3.0, and RxJava 2.1.0, enabling the app to compile and link against these dependencies.

(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 → 46 (-5.2)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 53 (new)
  • Maturity 59 → 54 (-5.7)
  • Readiness 24 → 26 (+1.4)
  • Security 95 → 95 (+0.0)

Resolved (8)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • No exposed public API
  • Test reliability not included
  • change coupling unreadable for .kt — no production change history could be paired for this repository's own source
  • early-stage repository — too few commits for a meaningful bus factor
  • early-stage repository — too little history to judge knowledge freshness
  • git history depth insufficient

New (5)

  • 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)
  • Leaked secret: high-entropy-secret (data/src/main/java/me/giacoppo/examples/kotlin/mvp/modules/NetworkModule.kt)
  • No ADRs found

Architecture

  • Containers 0 added · 0 removed · contexts 1 added · 0 removed · edges 1 added · 0 removed

Added bounded contexts (1)

  • core

Added dependency edges (1)

  • data → core (coupling)

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

Survey your own repository

GiuseppeGiacoppo/Android-Clean-Architecture-with-Kotlin 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 76212151a8530f1848a27471786024826c2ce8e1 — 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.