Android Search is a sample Android project using The Movie DB API based on MVVM architecture. It showcases the app development with well-designed architecture and up-to-date Android tech stacks.
- 100% Kotlin
- MVVM architecture
- Coroutine
- Retrofit
- Reactive pattern
- Android architecture components and Jetpack
- Single activity
- Dependency injection
- Retrofit + OkHttp - RESTful API and networking client.
- 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.
- Navigation component - Fragment routing handler. (Upcoming)
- WorkManager - Tasks scheduler in background jobs. (Upcoming)
- RxJava - Asynchronous programming with observable streams.
- Glide - Image loading.
- Jetpack Compose - Declarative and simplified way for UI development. (Upcoming)
- Coroutines - Light-weight threads for background operations. (Upcoming)
We follow Google recommended Guide to app architecture to structure our architecture based on MVVM, reactive UI using LiveData / RxJava observables and data binding.
- View: Activity/Fragment 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 both the local and remote data sources. The local data sources will serve as single source of truth.