Android Architecture

Additional

Language
Kotlin
Version
1.0 (May 22, 2017)
Created
May 19, 2017
Updated
Aug 8, 2017 (Retired)
Owner
Nazar Ivanchuk (binaryroot)
Contributor
Nazar Ivanchuk (binaryroot)
1
Activity
Badge
Generate
Download
Source code

Android Architecture Kotlin + Dagger2 + Room + LiveData + Retrofit

Project contributors: Nazar Ivanchuk & Roman Havran

Summary

This sample stands on the principles of Android Architecture.

It's based on the MVC sample, splitting the application in four layers:

Layers responsibilities

UI Controller (Activities, Fragments & Custom views)

  • Activities & Fragments
  • Observes the ViewModel
  • Keeps the UI up-to-date
  • Forwards user Actions back to the ViewModel

ViewModel

  • Prepares & keeps data for the UI
  • Includes LiveData, Observables etc.
  • Survives configuration changes
  • The gateway for the UI Controller

Repository

  • The complete data model from the App  - Provides simple data modification & retrieval APIs

Data Source

  • Provides local or network sources for data

Maintainability

ViewModel concept makes application more flexible for support