Thank you for reading,
In Android new architecture components, ViewModel is a component for MVVM Android app, but my project aims to build MVP app, so I do not use it here.
About LiveData, I used RxJava instead. You can swap between them in my project without many changes.
You can read more about MVP and MVVP architecture to see differences between ViewModel and Presenter.
Repository is another design pattern, do not confuse about it.
There are lot of good resources on internet which explains better than in my few words.