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