Skip to content
CAI
Software that uses CAICheck a score

krzdabrowski/android-starter-2022

63.7

Adequate · 21 September 2026

1.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 that displays a list of rockets, featuring an offline-first architecture that caches data locally using Room and synchronizes with a remote API via Retrofit. The system is built on a multi-module structure with a core layer providing navigation, state management, and UI theming. It includes comprehensive test coverage for domain, repository, and UI components, alongside performance optimizations for cold-start times.

Features

Add offline-first rocket list feature with network and database layers

Users can now view a list of rockets in the app, with data sourced from a new offline-first architecture. This change introduces a complete data layer including a Room database (using an @Upsert operation for caching), a Retrofit API client, and a repository that merges local cache with remote network calls. The presentation layer features a Compose UI displaying rocket details (name, cost, flight date, etc.) and supports pull-to-refresh, loading states, and error handling via Snackbars.

basic-feature/src/main · high confidence

Added baseline profile generation and startup benchmark tests

A new test module, baseline-profiles, has been introduced containing two key components: a BaselineProfileGenerator that creates a basic startup baseline profile for the target application, and a StartupBenchmarks class that measures cold-start performance by comparing compilation modes. These additions provide the infrastructure to generate and verify baseline profile optimizations for app startup.

baseline-profiles · high confidence

Introduces core infrastructure for navigation, coroutines, and UI theming

The core module now provides the foundational architecture for the application, including a coroutine dispatcher and scope module that provides structured concurrency for UI, I/O, and default tasks. A new MVI-based BaseViewModel is introduced, utilizing delegation for intents, internal changes, and events to manage state transitions. Navigation is handled via a command-based system with a dedicated NavigationManager and a modular factory pattern for defining routes. Additionally, the app's visual identity is established with a Compose-based Theme and Color definitions, while utility extensions for lifecycle-aware flow collection and resilient result handling are added to the core utilities.

core · high confidence

Introduces offline-first data caching via Room database

The app now includes a local database layer to cache data offline. This is implemented using Room, with a new MainApplication class initializing the Hilt dependency injection, an AppDatabase entity defining the schema, and a DatabaseModule providing the database instance via Hilt.

app/src/main/java · high confidence

Project initialization with Gradle wrapper and configuration

The repository was initialized with a standard Android project structure, including the Gradle wrapper scripts (gradlew, gradlew.bat) and configuration files (.editorconfig, .gitignore, README.md). The .gitignore was updated to track keystore and google-services.json files, and the .editorconfig was added to enforce code style rules via KtLint. The README was updated to describe the project's purpose, architecture, and libraries used.

(repo-wide) · high confidence

Behavioural changes

Initial Android app scaffolding and build configuration

The app module was initialized with essential build and optimization configurations. A .gitignore file was added to exclude build artifacts, and a proguard-rules.pro file was introduced to configure code shrinking and obfuscation, including settings for preserving line number information for debugging.

app · medium confidence

Test coverage

Added Android UI tests for the Rockets feature; Added test data and Hilt modules for integration testing; Added unit tests for RocketRepository and test data utilities; Added unit tests for domain use cases; Added unit tests for the RocketsViewModel.

Dependencies

Initial Android project setup with multi-module architecture and Gradle 8.7.2

The project is initialized with a multi-module structure (app, core, basic-feature, baseline-profiles) using Gradle 8.7.2 and Kotlin 2.0.21. The build configuration enables Gradle's build cache and configuration cache, and adopts a Version Catalog (libs.versions.toml) to manage dependencies such as Compose BOM 2024.11.00, Hilt 2.52, and Room 2.6.1. The app module targets API 34 with a minimum SDK of 26, and integrates tools like Detekt, KSP, and Baseline Profiles.

(dependencies) · high confidence

Updated Gradle wrapper to version 8.11.1

The Gradle wrapper configuration has been updated to use Gradle version 8.11.1. This change ensures that the project uses a specific, modern version of the Gradle build tool, which may include new features, performance improvements, and bug fixes compared to previous versions.

gradle/wrapper · 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 64 → 64 (-0.8)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 100 → 90 (-9.7)
  • Maturity 65 → 65 (+0.0)
  • Readiness 57 → 57 (+0.0)
  • Security 71 → 92 (+21.1)
  • Domain Modelling 70 → 60 (-9.9)

Resolved (10)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • 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
  • Test reliability not included
  • dormant codebase — no living knowledge left to concentrate

New (11)

  • 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)
  • 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 dependency advisory monitoring
  • Workflow token permissions not restricted

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

Survey your own repository

krzdabrowski/android-starter-2022 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 1a0802198ba701ce5ff536ab50bb741471770850 — 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.