A lightweight, privacy-focused Android weather client consuming the Open-Meteo REST API without proprietary analytics or tracking SDKs.
Engineered to demonstrate modern Android architecture, asynchronous network dispatching via Kotlin Coroutines, and type-safe build automation using Gradle Kotlin DSL.
The application follows Clean Architecture separation of concerns:
[ Open-Meteo REST API ] | v (HTTPS / JSON Payload) [ Network Client Layer ] | v (Data Transfer Objects) [ Repository & Cache Layer ] | v (Domain Models / StateFlow) [ Android UI Layer ]
- Asynchronous Networking: All I/O operations and JSON parsing routines are offloaded to background dispatchers via Kotlin Coroutines to guarantee fluid 60/120 FPS UI rendering.
- REST API Telemetry: Extracts real-time weather metrics from Open-Meteo (temperature, apparent temperature, relative humidity, precipitation probability, wind velocity).
- Memory State Management: In-memory caching layer to prevent duplicate network roundtrips on configuration changes.
- Zero Telemetry: Built completely free of Google Play Services dependencies, advertisement trackers, and proprietary analytics libraries.
- Language: Kotlin
- Build System: Gradle (Kotlin DSL: build.gradle.kts)
- Architecture: Clean Architecture / Separation of Concerns
- Concurrency: Kotlin Coroutines
- Min SDK Target: Android API 24+
- JDK 17 or newer
- Android SDK (Build-Tools, Platform-Tools)
-
Ensure gradlew has execution rights: chmod +x ./gradlew
-
Build debug APK: ./gradlew assembleDebug
The compiled APK will be located at: app/build/outputs/apk/debug/app-debug.apk
This project is licensed under the MIT License. See the LICENSE file for details.