RepositoryImplementationExampleImplementationimplementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0" implementation "androidx.activity:activity-ktx:1.1.0"InterfaceinterfaceDummyRepository { val stringRepository:LiveData<String> }Repository ImplementationclassDummyRepositoryImpl : DummyRepository { overrideval stringRepository:LiveData<String> get() { val str =MutableLiveData<String>() str.value ="String From DummyRepositoryImpl"return str } }ViewModelclassMainVM : ViewModel() { var repository:DummyRepositoryImpl=DummyRepositoryImpl() val data:LiveData<String> get() = repository.stringRepository }MainActivityprivateval model:MainVM by viewModels() model.data.observe(this, object:Observer<String>{ overridefunonChanged(s:String?) { Log.d(TAG, "onChanged: $s") } })Copyright 2020 M. Fadli Zein