Skip to content
CAI
Software that uses CAICheck a score

furkanaskin/Weatherapp

49.6

Weak · 22 September 2026

3.1k

lines of production code

Kotlin

primary language

7

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This is an Android weather application that manages local data persistence and UI state. It utilizes Room for offline storage of weather and search history, while employing a centralized Kotlin-based build configuration for dependency management. The system is designed to handle weather data retrieval and display, with a focus on offline access and structured state management.

Features

Initial project setup and repository configuration

The repository was initialized with essential project files, including a .gitignore for Android/Gradle build artifacts, a MIT LICENSE, a Contributor Covenant CODE\_OF\_CONDUCT.md, and a CONTRIBUTING.md guide for new contributors. Additionally, a checksum.sh script was added to generate MD5 hashes for build configuration files, and the legacy Weatherapp.iml and local.properties files were removed.

(repo-wide) · high confidence

Introduces local weather data persistence and structured state management

The app now stores current weather, forecast, and search history locally using Room database entities and DAOs, enabling offline access and faster data retrieval. A new BaseViewState class and binding adapters are introduced to manage UI states (loading, error, success) and render weather icons and error messages in the interface.

app/src · high confidence

Behavioural changes

Centralized dependency and build configuration in buildSrc

The build configuration has been refactored into Kotlin files within buildSrc. Configs.kt defines application metadata (package ID, SDK versions, versioning) and build time, while Dependencies.kt centralizes all third-party library versions (e.g., Kotlin 1.5.21, AndroidX, Retrofit, Room) and Gradle plugin versions. This change groups dependency libraries and updates the build tooling to use Kotlin for configuration.

buildSrc · medium confidence

Gradle build tool upgraded to version 7.1.1

The project's Gradle wrapper has been updated from version 5.4.1 to 7.1.1, which may require users to have a compatible Java version and could affect build performance or compatibility with existing plugins.

gradle · high confidence

Removed Gradle cache and properties files

Several Gradle cache and properties files (gc.properties, cache.properties) have been removed from the .gradle directory. This cleanup removes build artifacts and metadata associated with Gradle version 5.4.1, likely to reset the build state or clean up stale cache entries.

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

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 100 → 100 (+0.0)
  • Maturity 38 → 38 (+0.0)
  • Readiness 50 → 46 (-4.0)
  • Security 38 → 57 (+19.0)
  • Domain Modelling 100 → 76 (-24.2)

Resolved (18)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (10 lines × 2) (app/src/main/java/com/faskn/app/weatherapp/db/entity/CurrentWeatherEntity.kt)
  • Duplicated block (7 lines × 2) (app/src/main/java/com/faskn/app/weatherapp/db/entity/CurrentWeatherEntity.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)
  • No exposed public API
  • Rotate the exposed credentials — git history can't be un-committed
  • Secret: generic-api-key (app/google-services.json)
  • Test reliability not included
  • The README mentions architecture components Hilt but does not yet show an Architecture or Testing section in outline form. (README.md)
  • dormant codebase — no living knowledge left to concentrate

New (22)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no contributor guidance (README.md)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (11 lines × 2) (app/src/main/java/com/faskn/app/weatherapp/db/entity/CurrentWeatherEntity.kt)
  • Duplicated block (14 lines × 2) (app/src/main/java/com/faskn/app/weatherapp/db/entity/CurrentWeatherEntity.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)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • No ADRs found
  • No checksums published for release artifacts
  • …and 2 more

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

Survey your own repository

furkanaskin/Weatherapp 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 22 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 18e891729d5e792073cd4934e5b5416d12bddca7 — 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-90d5d2fe38ee.