TangoBeee/Weathernaut
48.8
Weak · 22 September 2026
1.5k
lines of production code
Kotlin
primary language
7
measurements over time
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.