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.
 
- WeatherFeatureCoordinator: Manages navigation and flow control within the weather feature, integrates with app.
 - DefaultWeatherFeatureFactory: A factory class to create instances of the main components and dependencies required for weather feature.
 - WeatherViewModel: Main view model that handles business logic and data fetching for the weather feature.
 - WeatherWebService: Network requests to weather API and fetch required weather data.
 - WeatherRemoteRepository: Data source for the view model and provides weather data fetched from WeatherWebService.
 - WeatherData: Codable model representing the structure of the weather data fetched from the API.
 - WeatherViewController, WeatherView, WeatherCardView: The main view controller and views that display the weather data and handle interactions, search.
 - Unit Tests, Mocks
 
krishna





