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 π