WeatherForecast iOS App
📌 Overview
WeatherForecast is a SwiftUI-based iOS application that provides real-time weather updates. The project follows CLEAN Architecture principles, ensuring a scalable and maintainable codebase.
🎯 Features
🌦️ Real-time weather updates for any location
📍 Location-based forecasts using CoreLocation
📍 Search functionality to check weather for any city
🧑💻 Fully configured CI/CD pipeline with SwiftLint & Unit Tests
🔗 Pipeline badge showing the latest build status
🎨 SwiftUI-based modern UI
🏗️ CLEAN Architecture for maintainability
✅ CI/CD pipeline with automated tests and linting
📊 Code coverage reports for test validation and report generation for better code quality.
🏗 Architecture
This project follows CLEAN Architecture, separating concerns into:
Presentation Layer: SwiftUI views & ViewModels
Domain Layer: Use cases and business logic
Data Layer: Repository pattern for API interactions
⚙️ Setup & Installation
Prerequisites
macOS with Xcode installed (latest recommended)
Swift 5+
Steps
Clone the repository:
Install dependencies (if any): NA
Open the project in Xcode:
Run the app on a simulator or real device:
🚀 Continuous Integration (CI)
The project includes a CI pipeline configured with GitHub Actions:
✅ Automated builds on push & PR
✅ SwiftLint enforcement
✅ Unit tests execution
✅ Code coverage reports
Running CI Locally
To simulate the CI pipeline locally:
🔍 Code Quality & Linting
Uses SwiftLint for enforcing Swift style guidelines.
Run linting manually:
📜 Testing
The app includes unit tests for business logic.
Run tests manually via:
Generate code coverage reports:
📜 Future Enhancements
🔄 Implement CD for App Store/TestFlight deployment
🌐 Multi-language support
📱 iPad version with adaptive UI
📊 Historical weather data visualization
For any issues, suggestions, or feature requests, please visit the GitHub Issues Page 🚀