This is a simple iOS app developed in Swift, utilizing RxSwift, the Model-View-ViewModel (MVVM) design pattern, and principles of Clean Architecture. The app fetches and displays real-time weather data using the OpenWeather API.
-
Search Functionality:
- Search for weather data by entering a city name.
- Autocomplete suggestions (if implemented).
-
Real-Time Weather Data:
- Displays the current temperature.
- Additional weather information such as humidity, wind speed, and atmospheric pressure.
- Dynamic weather icons or conditions representation (if included).
-
Reactive Programming:
- Implements RxSwift for efficient and responsive data binding.
- Ensures a seamless and interactive user experience.
-
Architecture:
- Adheres to MVVM to separate concerns and facilitate scalability.
- Follows Clean Architecture principles for improved testability, maintainability, and modularity.
-
Swift
-
RxSwift Integration:
- Uses Observable and Subject patterns for reactive data handling.
- Simplifies state management and user interaction responses.
-
Networking:
- Connects to the OpenWeather API for weather data retrieval.
- Handles API responses and error cases gracefully.
-
Dependency Injection:
- Ensures loose coupling between components for better testing and flexibility.
- Add unit and UI tests to ensure app reliability.
- Implement caching to store frequently accessed weather data.
- Enhance UI with animations or dynamic backgrounds reflecting weather conditions.
- Provide multi-language support for global users.
- Integrate additional API endpoints for extended forecasts or detailed data.
- iOS 14.0+ (or as supported)
- Xcode 14.0+
- API key from OpenWeather API
- Clone the repository:
git clone https://github.com/squallone/WeatherApp.git
- Install dependencies using CocoaPods or Swift Package Manager (as applicable).
- Add your OpenWeather API Key in the appropriate configuration file.
- Build and run the app on a simulator or device.