Skip to content

Latest commit

 

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

iWeather

A native iOS weather app built with SwiftUI, SwiftData, and the Open-Meteo REST API. Designed with scalable MVVM architecture, dependency injection, offline-first disk caching, and real-time particle canvas effects.


Snapshots

Weather Screen 1 Weather Screen 2 Search Screen Offline Screen Saved Cities


Features

  • Live Weather & Forecasts: Real-time current metrics (humidity, wind speed, pressure, UV index, visibility), 24-hour hourly timeline, and 7-day forecast.
  • Search & Debouncing: Interactive city search powered by Open-Meteo Geocoding API with 350ms search query debouncing.
  • Location Services: CoreLocation integration for instant current-location weather lookup with explicit permission handling.
  • Saved Cities (SwiftData): Local persistence allowing users to bookmark favorite cities and manage them via native swipe-to-delete.
  • Offline-First Caching: FileManager disk cache fallback serving stored weather snapshots when disconnected from the internet.
  • Dynamic Weather UI: Adaptive gradient themes and TimelineView + Canvas ambient particle animations (rain droplets, sunburst glow, starry night).
  • Unit Conversion: Instant °C / °F toggle with smooth numeric text transitions (.contentTransition(.numericText())).

Tech Stack & Architecture

  • iOS 17.0+ / Swift 5.9+ / Xcode 15+
  • Frameworks: SwiftUI, SwiftData, CoreLocation, Observation (@Observable)
  • Networking: URLSession async/await with generic APIRequest protocol
  • Architecture: Scalable Layered MVVM

Architecture Snapshot

Architecture Diagram


🎬 Demo Video

iWeather iOS Demo Video

👉 Watch full iWeather Demo Video on YouTube


About

A native iOS weather app built with SwiftUI, SwiftData, and the Open-Meteo REST API. Designed with scalable MVVM architecture, dependency injection, offline-first disk caching, and real-time particle canvas effects.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages