PixelCast icon

PixelCast

Case study

8-Bit Weather Forecast

Overview

Offline-first weather app integrating the OpenWeatherMap API for reliable forecasts without network access. Strict Clean Architecture and MVVM with reactive data streams over Coroutines and StateFlow, a hand-built 8-bit Jetpack Compose UI library, and lock-screen-breaking alarms via AlarmManager.

Core capabilities

  • Room is the single source of truth; the network only refreshes it
  • Live weather monitors with scheduled alerts and full-screen alarms (AlarmManager)
  • Bespoke pixel-art Compose design system — hand-curated fonts, Lottie and GIF states
  • Full Arabic localisation with RTL layouts
  • Unit tested across DAO, repository and ViewModel layers (JUnit4 + MockK)

Architecture

Three layers, strictly separated: a data layer wrapping Retrofit and the Room DAO, a domain layer of use cases with no Android imports, and a Compose presentation layer driven by StateFlow. The repository always emits from Room first, then refreshes from OpenWeatherMap, so the UI never waits on the network.

Project facts

Role
Solo — design, engineering, assets, tests
Context
ITI · 2026
Platform
Kotlin

Video walkthrough playback

Technologies employed

KotlinJetpack ComposeClean ArchitectureMVVMRoomMockKAlarmManager