← Back to projects

02_skye

Skye

Personal project

Open beta on Google Play

A weather app built to properly practice Clean Architecture and MVVM — GPS-based forecasts, offline caching, a home screen widget, and full RU/EN support, all built directly against the OpenWeather API.

Kotlin · Jetpack Compose · Clean Architecture · MVVM · Retrofit · Room · Glance

02_what_i_built

What's built so far

Clean Architecture from day one

Structured the codebase into domain, data, and presentation layers from the start, rather than retrofitting it later — a deliberate choice to practice the pattern properly.

Cached for offline use

Saved cities and the last fetched forecast are stored locally with Room, so the app still shows something useful without a live connection — not just a spinner.

Home screen widget

Built with Glance, so the current forecast is visible without even opening the app.

Parallel API requests

Current conditions, hourly, and weekly forecasts are fetched concurrently with coroutines, instead of waiting on each one in sequence.

Location-aware by default

Detects your GPS location on first launch, so the forecast for where you are is one tap away — no need to search for your own city first.

City search with autocomplete

Typing a city name surfaces matching results as you search, rather than requiring an exact match.