iOS · SwiftUI2026

iWeather

Native iOS weather app built with SwiftUI, SwiftData, and Open-Meteo REST API. Features scalable MVVM architecture, dependency injection, offline-first disk caching, real-time particle canvas effects, and dynamic weather-adaptive gradient themes.

Role
iOS Engineer — MVVM Architecture, Networking, Caching, Canvas Animations
Timeline
2026 · Open Source
Stack
SwiftUISwiftDataCoreLocationURLSessionObservationCanvasTimelineView
01

Screens & Architecture

Live Weather Forecast
Screen 01 · Live Weather Forecast
Metrics & 7-Day Outlook
Screen 02 · Metrics & 7-Day Outlook
City Search with Debouncing
Screen 03 · City Search with Debouncing
Offline Disk Cache Mode
Screen 04 · Offline Disk Cache Mode
Saved Cities (SwiftData)
Screen 05 · Saved Cities (SwiftData)
02

The Problem

Wanted to build a visually rich, offline-capable weather app using only native Apple frameworks with clean MVVM separation and no third-party networking or UI dependencies.

03

How I built it

  • Designed a scalable layered MVVM architecture with protocol-based dependency injection for testability.
  • Built async/await networking layer with generic APIRequest protocol consuming Open-Meteo REST API and Geocoding API.
  • Implemented FileManager disk cache fallback for full offline weather snapshot viewing.
  • Created ambient particle animations (rain droplets, sunburst glow, starry night) using TimelineView + Canvas for real-time weather-adaptive visual effects.
  • Added CoreLocation integration for instant current-location weather with explicit permission handling and 350ms debounced city search.
04

Outcome

  • Fully native iOS weather experience with offline-first caching and dynamic visual effects.
  • Real-time particle canvas animations adapting to current weather conditions.
  • YouTube demo with live walkthrough of all features.