A SwiftUI-based iOS application that provides real-time weather updates, forecasts, and maps of tourist attractions. This project was developed as part of my BEng Software Engineering coursework at the University of Westminster, where I achieved a grade of 86/100.
-
Real-Time Weather Data
- Displays the current weather, including temperature, humidity, pressure, and wind speed for any city.
- Fetches weather data from the OpenWeatherMap API.
-
Hourly and Daily Forecasts
- Provides an hourly forecast for the next 48 hours in a horizontally scrollable view.
- Shows a daily forecast for the next 8 days in a vertically scrollable list.
-
Tourist Attractions Map
- Interactive map with pins marking key tourist attractions, loaded dynamically from a local JSON file.
- Users can tap on pins to view additional details about each place.
-
Dynamic City Search
- Allows users to search for a specific city, dynamically updating weather, forecasts, and the map view for the selected location.
-
User-Friendly Interface
- Designed to follow Apple's Human Interface Guidelines, ensuring a clean and consistent UI/UX.
- Swift 5.7+
- SwiftUI
- CoreLocation
- MapKit
- OpenWeatherMap API
- Models: Defines the data structures for weather and tourist places.
- ViewModels: Manages state and data flow between views and models using the MVVM pattern.
- Views: SwiftUI views for displaying weather information, forecasts, and maps.
- Native iOS Development with SwiftUI.
- API integration and JSON decoding.
- State management with the MVVM architecture.
- Multi-threading for smooth user experiences.
- UI/UX design aligned with Apple guidelines.