MVVM with repository pattern. It is implemented using single LiveData in the ViewModel.
Koin Dependency Injection.
Kotlin Coroutines
Retrofit with Coroutines Used for networking. Used coroutine request new in retrofit-2.5.1-SnapShot.
UnitTests: Using Mockk library for mocking. Koin test for DI override. "androidx.arch.core:core-testing" For Livedata testing kotlinx-coroutines-test for testing Coroutines