ListRepo Language Kotlin Design Patterns MVVM Clean Architecture Libs Gson Retrofit Okhttp Coroutines LiveData ViewModel Navigation Lottie Koin