https://github.com/krishkumar/weatherapp-ios
Clean architecture MVVM iOS app with app coordinator, weather feature, UIKit programatic layout, dependency injection, unit tests
https://github.com/krishkumar/weatherapp-ios
Last synced: 2 months ago
JSON representation
Clean architecture MVVM iOS app with app coordinator, weather feature, UIKit programatic layout, dependency injection, unit tests
- Host: GitHub
- URL: https://github.com/krishkumar/weatherapp-ios
- Owner: krishkumar
- Created: 2023-05-17T07:08:53.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-03T17:23:53.000Z (4 months ago)
- Last Synced: 2025-01-03T18:28:23.548Z (4 months ago)
- Language: Swift
- Homepage:
- Size: 323 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# weatherapp
Swift-based iOS weather app is designed with a modular architecture for scalability and
maintainability.- MVVM architecture with separation of concerns
- Integrates CoreLocation to provide real-time weather updates based on the user's location.
- Custom networking layer efficiently handles API interactions, reliable data fetching.
- Protocols for dependency injection for unit testing and flexibility in component management.
- UIKit, programmatic UI AutoLayout
- OpenWeatherMap API to fetch current weather data.## Components
### Weather Feature
1. **WeatherFeatureCoordinator**: Manages navigation and flow control within the weather feature, integrates with app.
2. **DefaultWeatherFeatureFactory**: A factory class to create instances of the main components and dependencies required for weather feature.
3. **WeatherViewModel**: Main view model that handles business logic and data fetching for the weather feature.
4. **WeatherWebService**: Network requests to weather API and fetch required weather data.
5. **WeatherRemoteRepository**: Data source for the view model and provides weather data fetched from WeatherWebService.
6. **WeatherData**: Codable model representing the structure of the weather data fetched from the API.
7. **WeatherViewController, WeatherView, WeatherCardView**: The main view controller and views that display the weather data and handle interactions, search.
8. Unit Tests, Mocks## Screens





## Author
krishna