Skip to content

A SwiftUI-based weather app inspired by the Apple Weather app. Features include real-time weather data from OpenWeatherMap API, Firebase integration, Core Data for favorites, dynamic video backgrounds, and interactive weather maps with overlays. 🌦️

License

Notifications You must be signed in to change notification settings

Isw200/Apple-Weather-App-Clone---SwiftUI-iOS

Repository files navigation

Weather App Pro

app-icon

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.


Features

  • 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.

Screenshots

Image 1 Image 2 Image 3 Image 4

Image 5 Image 6 Image 7 Image 8

Image 9 Image 10 Image 11 Image 12


Technologies Used

Frameworks and Libraries

  • 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.

Tools

  • Xcode: For development and testing.
  • GitHub: Version control and collaboration.
  • API: OpenWeatherMap's One Call API 3.0.
  • Firebase

Installation

Prerequisites

  • macOS with Xcode installed.
  • iOS device or simulator running iOS 15.0 or later.

Steps

  1. Clone the repository:
    git clone https://github.com/Isw200/Apple-Weather-App-Clone---SwiftUI-iOS.git
  2. Open WeatherAppPro.xcodeproj in Xcode.
  3. Replace the OpenWeatherMap API key in Shared > Constants > ApiEndPoints under apiKey. Ensure you have subscribed to OpenWeatherMap's One Call API 3.0 to access the necessary weather data.
  4. Download and insert the GoogleService-Info.plist file into the Firebase folder in WeatherAppPro.
  5. Add the app icon to your Xcode project by dragging it into the asset catalog.
  6. Run the project on an iOS simulator or connected device.

API Integration

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.

Project Structure

  • 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.

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a feature branch:
    git checkout -b feature/your-feature-name
  3. Commit your changes:
    git commit -m "Add your feature description"
  4. Push to the branch:
    git push origin feature/your-feature-name
  5. Open a Pull Request.

License

This project is licensed under the MIT License.


Acknowledgments

  • OpenWeatherMap API for weather data.
  • Apple Developer Community for guidance and resources.
  • Firebase for cloud database support.

Contact

For questions or feedback, please contact isuruariyarathna.me.

About

A SwiftUI-based weather app inspired by the Apple Weather app. Features include real-time weather data from OpenWeatherMap API, Firebase integration, Core Data for favorites, dynamic video backgrounds, and interactive weather maps with overlays. 🌦️

Topics

Resources

License

Stars

Watchers

Forks

Languages