Kotlin MVVM architecture Reactive pattern Android architecture components and Koin Single activity Dependency injection
Retrofit - RESTful API and networking client. Koin - Dependency injection. Android Architecture Components - A collections of libraries that help you design rebust, testable and maintainable apps. ViewModel - UI related data holder, lifecycle aware. LiveData - Observable data holder that notify views when underlying data changes. Data Binding - Declarative way to bind data to UI layout. RxJava - Asynchronous programming with observable streams. RxAndroid - Load that stream to UI thread that available on android. Glide - Image loading.
View: Activity with UI-specific logics only. ViewModel: It keeps the logic away from View layer, provides data streams for UI and handle user interactions. Model: Repository pattern, data layers that provide interface to manipulate data from the remote data sources.