Example of Android app using Navigation Component, Retrofit, Coroutines, LiveData, Koin, Databinding and the MVVM pattern
Clone the repository:
git clone https://github.com/xyarim/android-architecture.git
-
DataBinding Declaratively bind observable data to UI elements.
-
Lifecycle Create a UI that automatically responds to lifecycle events.
-
LiveData Build data objects that notify views when the underlying database changes.
-
ViewModel Store UI-related data that isn't destroyed on app rotations. Easily schedule asynchronous tasks for optimal execution.
-
NavigationComponent Android Jetpack's Navigation component helps you implement navigation, from simple button clicks to more complex patterns, such as app bars and the navigation drawer.
-
Retrofit2 Type-safe HTTP client for Android and Java by Square, Inc.
-
OkHttp An HTTP+HTTP/2 client for Android and Java applications.
- Kotlin Coroutines Coroutines is a rich library for coroutines developed by JetBrains. It contains a number of high-level coroutine-enabled primitives that this guide covers, including launch, async and others.
- Koin A pragmatic lightweight dependency injection framework for Kotlin developers.
- Avatar View Avatar ImageView with user's name first letter Drawable placeholder
- Implement Repository pattern
- Arslan Tazhibaev - xyarim