MovieDB
MovieDB is a gorgeous client application for TMDb on Android, built using Kotlin.
Architecture and Tech-stack
- Built on MVVM architecture pattern
- Uses Android Architecture Components, specifically ViewModel, LiveData and Room.
- Heavily uses the Epoxy Library from Airbnb
- Has a clean, gorgeous user interface with pretty animations, built using Android Transitions framework, and Material Components for Android
- Heavily uses RxJava for network calls, transformations, and database observation.
- Completely offline ready. MovieDB uses Room for managing a local SQLite database, which means that if you have seen some content already while you were online, you won't need an internet connection to see it again. Everything except movie trailers are cached.
- Uses Retrofit for making API calls.
- Uses Glide for image loading.
- Built on a Single-Activity Architecture. Every screen in the app is a fragment.
Features
- Discover Top Rated and Popular movies on TMDb.
- Search for movies
- View movie details like release date, rating, overview, movie trailer and cast right inside the app.
- Supports login for TMDb accounts to manage Watchlist and Favourite movies
- View movies in theatres in your region.
- Works offline by caching data into a database.
Screenshots
Planned Features
- Notify the user when an unreleased movie in their watchlist is released.
- Get movie recommendations based on any given movie
Safer networking calls by wrapping Retrofit responses into a Resource class to have Success and Failure response typesMigrate to MVRx at some point.