Skip to content

techsultann/WeatherPulse

Repository files navigation

Weather App

A modern, offline-first Android weather application built with Kotlin, Jetpack Compose, and Clean Architecture.

📸 Screenshots

📥 Download

You can download the latest version of the app from the Releases section of this repository.

  1. Go to the Releases page.
  2. Download the app-release.apk (or similar) from the latest release.
  3. Install the APK on your Android device.

Features

  • Current Weather: Get real-time weather information for your current location or any city in the world.
  • Detailed Forecasts: View hourly and daily forecasts with temperature, humidity, wind speed, and more.
  • City Search: Search for any city worldwide using geocoding.
  • Offline Support: Weather data is cached locally using Room, allowing you to view information even when offline.
  • Favorites: Mark cities as favorites for quick access.
  • Dynamic UI: Clean and responsive user interface built entirely with Jetpack Compose.
  • Background Updates: Uses WorkManager to keep weather data fresh in the background.

Tech Stack

Project Structure

The project follows a modular Clean Architecture approach:

  • core: Contains shared components like network monitors and base classes.
  • data: Handles data operations, including API calls (Retrofit), local database management (Room), and data mapping.
  • domain: Contains business logic, use cases, and domain models (independent of framework).
  • ui: UI layer containing Compose screens, ViewModels, and UI state management.
  • di: Dependency injection modules.
  • worker: Background tasks using WorkManager.

Getting Started

  1. Clone the repository:
    git clone https://github.com/techsultan/weather-app.git
  2. Open the project in Android Studio (Ladybug or newer recommended).
  3. Get an API Key: Sign up at OpenWeatherMap to get a free API key.
  4. Configure the API Key: Add your API key and base url in the appropriate place (in local.properties file or directly in the code for development).
  5. Run the app on an emulator or a physical device.

Testing

The project includes unit tests for repositories, viewmodels, and data mappers. To run the tests, use:

./gradlew test

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Android Weather app showcasing Clean Architecture, Jetpack Compose, Hilt, Room, Retrofit, and WorkManager for scheduled notifications.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages