Skip to content
CAI
Software that uses CAICheck a score

TangoBeee/Weathernaut

48.8

Weak · 22 September 2026

1.5k

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 retrieves and displays current, hourly, and 7-day forecasts alongside location-based city searches. It features a data layer for fetching weather and geocoding information, a UI with home, forecast, and settings screens, and supports user-configurable temperature units. The system also includes background music playback and robust network state management.

Features

Added background music playback and improved app initialization

The app now includes a foreground service (WeatherMusicService) that plays ambient music in the background, controlled by a user setting. Additionally, the main activity has been updated to handle network states, fetch weather data using a ViewModel, and manage a splash screen. The initialization process now checks for internet connectivity and gracefully handles errors by displaying a toast message and exiting the app if no internet is available.

app/src/main/java/me/tangobee/weathernaut · high confidence

Added data layer for fetching weather and geocoding data

Introduced a new data layer to fetch weather and location data from the backend. This includes Retrofit client configuration, API interfaces for geocoding and weather endpoints, repository classes to handle network calls and expose LiveData, and ViewModels to manage the UI state for these features.

app/src/main/java/me/tangobee/weathernaut/data · high confidence

Added data models for weather and location services

Introduced new data classes to support weather and location features. This includes models for current, daily, and hourly weather forecasts (e.g., \CurrentWeather\, \DailyWeather\, \HourlyWeather\), geocoding results, and user settings. These models enable the app to parse and display detailed weather data and location information.

app/src/main/java/me/tangobee/weathernaut/models · high confidence

Added new RecyclerView adapters for weather and location lists

The app introduces three new RecyclerView adapters to support the new weather and location features. DailyWeatherRVAdapter and HourlyWeatherRVAdapter handle the display of the next 7-day forecast and hourly weather sections respectively, rendering items with icons, temperatures, and times. LocationRVAdapter manages the list of saved or searched locations, displaying city names, addresses, and status indicators, while also handling the logic to save the selected location to shared preferences and navigate back to the home screen.

app/src/main/java/me/tangobee/weathernaut/ui/adapter · high confidence

Added weather condition mappings and icons

The app now includes dedicated constants for weather conditions, mapping numeric weather codes to human-readable descriptions (e.g., 'Clear', 'Fog', 'Heavy Rain') and corresponding UI icons. A new \UnitsMapper\ handles conversions between full unit names and their shorthand representations (e.g., '°C' to 'celsius'). These additions support the display of weather forecasts and settings by providing the necessary data structures for weather states and unit preferences.

app/src/main/java/me/tangobee/weathernaut/constants · high confidence

Introduce home, 7-day forecast, and settings screens with unit conversion and location sorting

Users can now view a home screen displaying current and hourly weather, a dedicated 7-day forecast screen, and a settings screen to adjust temperature, wind speed, and pressure units. The app also implements geocoding to sort and display city search results by proximity to the user's location, and applies user-selected units to all displayed weather data.

app/src/main/java/me/tangobee/weathernaut/ui · medium confidence

Behavioural changes

Upgraded Gradle wrapper to version 8.7

The Gradle wrapper has been updated from version 8.0 to 8.7, which will cause the project to use the newer Gradle release for builds.

gradle · high confidence

Dependencies

Migrated Android build configuration to Kotlin DSL and updated SDK targets

The project's build configuration has been migrated from Groovy (build.gradle) to Kotlin DSL (build.gradle.kts), including the root-level build script and the app module's build file. This migration includes updating the Android Gradle Plugin to version 8.6.1 and Kotlin to 1.9.0. Additionally, the app module's compileSdk and targetSdk have been upgraded to 35, and several new dependencies have been added, including Jetpack Navigation, Retrofit, Google Play Services Location, and various AndroidX libraries.

(dependencies) · medium 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 49 → 49 (-0.6)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.2)
  • Architecture 100 → 91 (-8.9)
  • Maturity 43 → 43 (+0.0)
  • Readiness 24 → 26 (+1.4)
  • Security 100 → 100 (+0.0)

Resolved (6)

  • 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/me/tangobee/weathernaut/ui/HomeFragment.kt)
  • No exposed public API
  • Test reliability not included
  • dormant codebase — no living knowledge left to concentrate

New (6)

  • 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 (12 lines × 2) (app/src/main/java/me/tangobee/weathernaut/ui/HomeFragment.kt)
  • No ADRs found
  • bus factor 1 — one contributor carries this repository

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

Survey your own repository

TangoBeee/Weathernaut 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 04e1c8555aab805dbedaa6c201deb55c2588d819 — 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-821afab8930d.