suspend coroutine callback in Location Callback + Resource Provider + interceptor to make retrofit read from file as cache + MVI pattern

coroutine callback

This is a sample app that demonstrate how to use coroutine Callback in Android application in clean architecture.

Forground Service

  • LocationService to update user location and connect it with notification

Resource Provider Mechanism

This sample app also demonstrate how to use Resource provider to make domain read from Raw resource but the value from presentation

Interceptor to make retrofit read from file

This app also demonstrate how to read fro file using retrofit using interceptor

Package Architecture

Because it is an architectural project, UI has been kept simple.

Flow

This app uses MVI (Model View Intent) architecture.

Package Modules

  • App Package

    :app module is an com.android.application, which is needed to create the app bundle. It contains dependency graph and UI related classes. It presents data to screen and handle user interactions.

  • Data Package

    :data module contains implementation of repository and local - remote repository interface adapt

  • Domain Package

    :domain module contains use cases and repository interface adapt

  • Presentation Module

    :presentation module contains ui

Each module has its own test.

Tech Stack

Contributions