Skip to content

Android sample application implemented using MVVM pattern, Retrofit2, LiveData, ViewModel, Coroutines, Room, Rx-Java, Navigation Components and Data Binding.

Notifications You must be signed in to change notification settings

mayokunadeniyi/Dog-Pool

Repository files navigation

Dog Pool BCH compliance

Introduction

An Android sample application implemented using MVVM pattern, Retrofit2, LiveData, ViewModel, Coroutines, Room, Rx-Java, Navigation Components and Data Binding.

Architecture

The architecture of this application relies and complies with the following points below:

Technologies used:

  • Retrofit a REST Client for Android which makes it relatively easy to retrieve and upload JSON (or other structured data) via a REST based webservice.
  • ViewModel to store and manage UI-related data in a lifecycle conscious way.
  • RxJava used in the the network section of the project to perform network calls asynchronously. RxJava helps in composing asynchronous and event-based programs using observable sequences.
  • LiveData to handle data in a lifecycle-aware fashion.
  • Navigation Component to handle all navigations and also passing of data between destinations.
  • Timber - a logger with a small, extensible API which provides utility on top of Android's normal Log class.
  • Coroutines used to manage the local storage i.e. writing to and reading from the database. Coroutines help in managing background threads and reduces the need for callbacks.
  • Data Binding to declaratively bind UI components in layouts to data sources.
  • Room persistence library which provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.

Installation

Dog Pool requires a minimum API level of 23. Clone the repository and run.

Contributions

All contributions are welcome! Simply make a PR.