Skip to content

A simple weather forecasting app built with Kotlin using MVVM & Clean Architecture pattern

License

Notifications You must be signed in to change notification settings

bijaykumarpun/weather-app-clean-architecture

Repository files navigation

weather-app-clean-architecture


A simple weather app that shows daily weather conditions, and weather forecasts; built with Kotlin using MVVM and Clean Architecture design pattern.

Screenshots

screenshot

Recording

recording-implementation-1.webm

Technologies

- MVVM with Clean Architecture for design pattern
- Hilt for dependency injection
- Jetpack Compose for UI component design
- Retrofit & OkHttp for network requests

API

This project uses API data from weatherapi.com

Folder Structure

.
├── LICENSE
├── README.md
├── app
│   ├── build. gradle
│   ├── proguard-rules.pro
│   └── src
│       ├── androidTest
│       ├── main
│       │   ├── AndroidManifest.xml
│       │   ├── java
│       │   │   └── global
│       │   │       └── x
│       │   │           └── weather
│       │   │               ├── XWeatherApplication.kt
│       │   │               ├── data
│       │   │               │   ├── repositories
│       │   │               │   └── source
│       │   │               │       ├── device
│       │   │               │       └── weather
│       │   │               ├── domain
│       │   │               │   ├── models
│       │   │               │   └── use_cases
│       │   │               │       ├── device
│       │   │               │       └── weather
│       │   │               ├── infrastructure
│       │   │               │   └── di
│       │   │               └── presentation
│       │   │                   ├── framework
│       │   │                   │   └── theme
│       │   │                   └── screen
│       │   │                       ├── home
│       │   │                       │   └── model
│       │   │                       ├── settings
│       │   │                       └── weather_detail
│       │   └── res
│       │       ├── drawable
│       │       ├── values
│       │       └── xml
│       └── test
├── build.gradle
├── gradle
│   └── wrapper
├── gradle.properties
├── gradlew
├── gradlew.bat
├── local.properties
└── settings.gradle

Data Flow

DFD

Setup Instruction

You can setup/run the project in two ways - either by downloading the project and compiling locally using Android Studio, or by downloading and installing the debug APK artifact straight from the build pipeline.

Run the project locally

Make sure you have all the local dependencies setup i.e Android Studio & the Android SDK, check here

  • First off, git clone this project
    • git clone https://github.com/bijaykumarpun/weather-app-clean-architecture
  • Open the project in Android Studiopointing to the root folder's build.gradle file
  • After successfully building the project, run ./gradlew installDebug in the root project directory to install in any of the available device/emulator

Download APK from the CI pipeline

You can also get the latest debug APK file directly from the CI pipeline

  • Navigate to the Actions tab of this GitHub project
  • Look for the most recent CI run
  • Under Artifact section look for debug-build file
  • Click debug-build to download the file
  • Extract & install

Design Inspiration

License

About

A simple weather forecasting app built with Kotlin using MVVM & Clean Architecture pattern

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages