Android Architecture Components ViewModel is very useful when you want to provide and manage data for your UI (e.g. Activity or Fragment)
// Architecture components
implementation 'android.arch.lifecycle:extensions:1.1.1'
implementation 'android.arch.lifecycle:runtime:1.1.1'
annotationProcessor 'android.arch.lifecycle:compiler:1.1.1'