Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/haroldadmin/MovieDB

A gorgeous TMDb client for Android
https://github.com/haroldadmin/MovieDB

android architecture-components koin kotlin material-design mvvm tmdb

Last synced: 12 days ago
JSON representation

A gorgeous TMDb client for Android

Awesome Lists containing this project

README

        

MovieDB


Get it on Google Play
----------------------------------------------------------------

MovieDB is a gorgeous client application for [TMDb](https://www.themoviedb.org) on Android, built using Kotlin.

[![Master branch](https://travis-ci.com/haroldadmin/MovieDB.svg?branch=master)](https://travis-ci.com/haroldadmin/MovieDB.svg?branch=master)

## Architecture and Tech-stack

* Built on MVVM architecture pattern
* Uses [Android Architecture Components](https://developer.android.com/topic/libraries/architecture/), specifically ViewModel, LiveData and Room.
* Heavily uses the [Epoxy Library](https://github.com/airbnb/epoxy/) from Airbnb
* Has a clean, gorgeous user interface with pretty animations, built using Android Transitions framework, and [Material Components for Android](https://github.com/material-components/material-components-android)
* Heavily uses [RxJava](https://github.com/ReactiveX/RxJava) for network calls, transformations, and database observation.
* Completely offline ready. MovieDB uses [Room](https://developer.android.com/topic/libraries/architecture/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](https://square.github.io/retrofit/) for making API calls.
* Uses [Glide](https://github.com/bumptech/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 types~~
* ~~Migrate to [MVRx](https://github.com/airbnb/mvrx) at some point.~~