Skip to content

Example weather project for android using clean architecture

Notifications You must be signed in to change notification settings

duy-maimanh/City-Weather

Repository files navigation

City Weather Android App

This project is a sample project. That provide forecast weather feature for user. Apply Clean Architecture. Single source of truth implementation. The weather API get from here

Tech stack

  • Room and SharedPreferences use to save weather cache, city and other settings.
  • Navigation use to navigate between fragment, show dialog and send value between two fragment.
  • Retrofit + Moshi use to communicate with web service and convert Json to Object.
  • Dependency Injection with Hilt apply dependency injection easier, one of important library need for Clean architecture.
  • Rx Android.
  • Coroutines.
  • Glide use to load image from internet.
  • Jacoco use for report code coverage.

Project structure

All data from internet will be saved to local database and view will observer from there.

  • Domain layer: all use cases, entities, value objects.
  • Data layer: share preferences, database, remote API etc.
  • Presentation layer: UI.

Video

Images

Features

  • Current weather.
  • Background color change by weather or time.
  • Forecast weather.
  • Management cities.
  • Auto update weather per 30 minutes.

To-do

  • There are around 20% code coverage, so we need write more test in future.
  • Update animation when add and delete city in management screen.
  • ...

Releases

No releases published

Packages

No packages published

Languages