Skip to content

youssefelfeky1/Weather-App

Repository files navigation

Weather Application 🌦️

A modern Android weather app built with Kotlin, Jetpack Compose, and Clean Architecture. The app provides real-time weather data and forecasts using the Visual Crossing Weather API.

Features ✨

  • Current Weather: Displays real-time weather for user's current location
  • Weather Forecast: Shows detailed forecast for upcoming days
  • Location Tracking: Automatically updates location every:
    • 15 minutes OR
    • 100 meters distance change
  • Swipe to Refresh: Pull-down gesture to update weather data
  • Configuration Change Handling: Properly handles screen rotation and other config changes
  • Multi-flavor Support:
    • Free Version: 5-day forecast
    • Paid Version: 14-day forecast
  • Icons: uses the official icons set from api documentation

Tech Stack 🛠️

  • Language: Kotlin
  • UI: Jetpack Compose
  • Architecture: Clean Architecture + MVVM
  • API Client: HttpURLConnection
  • JSON Parsing: JSONObject
  • Location: Android Location Manager
  • Threading:
    • Executor for background operations
    • Handler for main-thread communication

API Integration 🌐

The app uses Visual Crossing Weather API with the following endpoints:

  • weather: /timeline/[latitude],[longitude]?unitGroup=metric&include=current

Screenshots 📸

Current Weather Weather Forecast
Current Weather Forecast
Current Weather Landscape Forecast

Getting Started 🚀

Prerequisites

  • Android Studio (latest version)
  • Visual Crossing Weather API key

Installation

  1. Clone the repository:
    git clone https://github.com/youssefelfeky1/Weather-App.git
    

About

Internship Task

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages