hongwei-bai / covid-suburb-au-android

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

covid-suburb-australia

CircleCI Unit Tests Instrumented Tests UI Tests GitHub repo size GitHub last commit GitHub commit activity GitHub Repo stars GitHub forks YouTube Video Views

GitHub top language Coroutines Jetpack Compose Dynamic Theming Navigation Navigation Animation Compose Accompanist Accompanist Placeholder Room Hilt OkHttp Retrofit MVVM Design Patterns SOLID

The app is aiming to help people in Australia keeping safe from COVID-19.

By choosing your currently living suburb and following your most visit suburbs, you may closely being kept updated about new cases every day in these suburbs.

Interest points in terms of Modern Android Development(MAD) skills:

  • Android Jetpack: Compose
  • Jetpack Compose Theming and dark mode ready
  • Splash screen (for Android 12/previous versions)
  • Android Jetpack: Navigation
  • Android Jetpack: Room
  • Hilt
  • OkHttp + Retrofit
  • Kotlin Coroutines

The architecture of the App would use MVVM, with layers:

  • View
  • View Model
  • Data(Repository/Data Source)

How data flows to ui?

In this project, I am using a best practice so far recommended from Google samples.

Data layer(repository) implements sequential functions and returns data wrapped by a Resource type.

ViewModel implements sequential functions too and post these wrapped data to ui via LiveData.

Benefits are:

  1. Wrapped data are stateful, mapping different ui states easily(loading, success, error etc.)

  2. In ViewModel, ui triggers use case alike behaviours easily.

Dashboard

MapView

Settings

COVID-19 data is coming from NSW government website:

Site Analytics | Usage By Dataset

NSW COVID-19 cases by location and likely source of infection

Related projects

backend project repository: hongwei-bai/covid-application-service

Authentication service(backend) repository: hongwei-bai/application-service-authentication

Stay safe!

About

License:GNU General Public License v3.0


Languages

Language:Kotlin 100.0%