It is a demo application made using TheMovieDB with Kotlin and MVVM architecture
- Shows a list of Movies fetched from TheMovieDB API
- Movies list can be sorted based on Popular, Up Coming, Top Rated and Favorites
- Movie titles can be saved to favorites
- Movie titles can be shared
- Movie titles can be searched with suggestions
Get a API key from TheMovieDB and add the key in local.properties
file as
tmdb_api_key = ""
- 100% kotlin
- Jetpack Components
- LiveData - notify domain layer data to views.
- Lifecycle - dispose observing data when lifecycle state changes.
- ViewModel - UI related data holder, lifecycle aware.
- Room Persistence - construct database.
- Architecture
- MVVM (Model View ViewModel) using Databinding
- Repository Pattern
- Dagger 2 for managing Dependencies
- Retrofit2 - constructing the REST API
- Room Database - for storing favorite movie titles
- Moshi - is a modern JSON library for Android and Java. It makes it easy to parse JSON into Java objects
- OkHttp3 - implementing interceptor, logging
- Glide - loading images from url
- Paging 2 - The Paging Library helps to load and display small chunks of data at a time.
- Stetho - debugging persistence data & network packets
- Expandable Text View for expand/collapsing longer texts
- Circurlar Reveal Animation for search