
WeatherAppPro is a modern weather application designed to provide users with detailed and accurate weather information. The app includes dynamic visualizations, a user-friendly interface, and features such as saving favorite cities, interactive maps, and air quality monitoring.
- Current, Hourly, and Daily Weather: Displays comprehensive weather data, including temperature, humidity, wind speed, and weather conditions.
- Interactive Map: Includes an interactive weather map with overlays for temperature, precipitation, wind, and more using
MKMapView
. - Dynamic Backgrounds: Weather-specific video backgrounds that adapt to weather conditions and time of day using
AVPlayer
. - Air Quality Monitoring: Provides real-time air quality data and detailed components analysis.
- Favorite Cities Management: Save and manage your favorite cities using Core Data for easy access.
- Compass View: A custom compass showing wind direction and speed with a visually intuitive design.
- Report an Issue: Allows users to report inaccurate weather data directly to Firebase.
- Skeleton Loading Views: Enhances user experience with animated placeholders during data loading.
- Dark Mode Support: Seamless dark mode compatibility for better accessibility.
- SwiftUI: For building a modern and responsive user interface.
- MapKit: For interactive weather maps and overlays.
- AVKit & AVFoundation: For dynamic video backgrounds.
- Core Location: To retrieve and use the user’s current location.
- Core Data: For persistent storage of favorite cities.
- Firebase Firestore: To manage user-submitted reports.
- Xcode: For development and testing.
- GitHub: Version control and collaboration.
- API: OpenWeatherMap's One Call API 3.0.
- Firebase
- macOS with Xcode installed.
- iOS device or simulator running iOS 15.0 or later.
- Clone the repository:
git clone https://github.com/Isw200/Apple-Weather-App-Clone---SwiftUI-iOS.git
- Open
WeatherAppPro.xcodeproj
in Xcode. - Replace the OpenWeatherMap API key in
Shared > Constants > ApiEndPoints
underapiKey
. Ensure you have subscribed to OpenWeatherMap's One Call API 3.0 to access the necessary weather data. - Download and insert the
GoogleService-Info.plist
file into theFirebase
folder in WeatherAppPro. - Add the app icon to your Xcode project by dragging it into the asset catalog.
- Run the project on an iOS simulator or connected device.
The app integrates with weather and air quality APIs to provide real-time data. Make sure to add your API keys in the designated configuration files:
- Weather API: For current, hourly, and daily weather data.
- Air Quality API: For real-time air quality index and components.
- Models: Data models for weather, air quality, and favorite cities.
- Views: SwiftUI components for displaying data (e.g.,
WeatherDashboard
,MapView
,ReportIssueView
). - ViewModels: Logic to fetch and bind data to the views (
WeatherViewModel
,MapViewModel
). - Utilities: Helper functions, extensions, and configuration files.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a feature branch:
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -m "Add your feature description"
- Push to the branch:
git push origin feature/your-feature-name
- Open a Pull Request.
This project is licensed under the MIT License.
- OpenWeatherMap API for weather data.
- Apple Developer Community for guidance and resources.
- Firebase for cloud database support.
For questions or feedback, please contact isuruariyarathna.me.