Code Monkey home page Code Monkey logo

tmdb-app's Introduction

TMDB App


Authors: Raphael Dray


This program is an Android Mobile Application.
It can be launched with an Android Simulator (included with Android Studio).
It fetches data from TMDB (The Movie Database) API.

It's written in Java programming language including some libraries like so:


Implementations

Here is described some implemented features:

  • First view with a list of items (RecyclerView)
  • Second view describing the selected item including texts, videos and horizontal recyclerview.
  • Webservice call to a RESTful API.
  • Cached data into a Room SQLite Database.
  • MVVM Architecture
  • Singleton design pattern for Room implementation
  • Gitflow (permanent: master|develop) (temporary: features|releases)
  • Design quite responsive
  • SOLID Principles

How the mobile app works ?

First Activity: List of the last popular films

When launching the application, the list of the popular films are fetched from the API and displayed into the view. You can then slide down to discover the new popular films.

Second Activity

On clicking over a film, we can find its name, authors, trailer, actors and its synopsis


Improvements

In order to improve this application we could implement:

  • The other calls to the API in the Retrofit contract
  • Improve the first view so it will be like this one:

  • Push notifications (Firebase implementation)
  • Other HTTP call method (POST, PUT, DELETE, OPTIONS) to create authentication in the application

Last Release Version: 0.1.1

Changelog:

Version 0.1.1

Improved README.md.


Version 0.1.0

Added Triplet implementation to encapsulate three classes inside one.
Added new converter for handling String[] integration in the Room Database.
Added CrewModel, CastModel and Credits POJO class to handle Arraylist of crews and casts.
Added the deserializer CreditsJsonDeserializer to deserialize the credits response.
Added new register type adapter to the APIClient to handle credits response of the API.
Improved MovieModel and refactored the MovieDetailsActivity.
Refactored MovieViewModel.getPopularMoviesOnline() method to handle more concisely RxJava2 calls from Retrofit2 and make it more suitable using FlatMaps.


Version 0.0.9

Added new register type adapter for handling VideoModel responses to the API Client.
Refactored getVideoOf(...) method in MovieAPI interface, path needed to be before query.
Added new column for storing the youtube video key in the table movie.
Added RxJava Call in MovieViewModel to get the video trailer of each movies.


Version 0.0.8

Refactored file architectures', added GenreConverter as TypeAdapter for Room integration of the genre_ids.
Improved MovieAdapter to put to the MovieDetailsActivity the information from where it has been started.
Improved APIClient to handle multiple register type adapter, migrated the type to TypeToken instance.
Improved the model, added the Genre enumeration to handle genre_ids list from API response.


Version 0.0.7

Adding connection between the main view and the movie details view.
Added Red Bookmark vector asset to set up a film in the favorite list.
Added Android Youtube Player to handle playing youtube video for movie trailers.
Improved movie details activity and refactored its design and created cast item for the future recycler view adapter for it.
Added Video Model to handle the response of the API when fetching the video trailer of the movie.


Version 0.0.6

Adding the first implementation of the main view and refactoring some code.


Version 0.0.5

Added ViewModels implementation for handling popular movies get request.
Add RxJava call adapter into ViewModels to dispose and store subscriptions.


Version 0.0.4

Added Room DAO classes and refactored MovieModel and APIClient classes for handling Paging and Favorite.
Upgraded Java support version to Java 8 for including lambdas expression.


Version 0.0.3

Adding of API Management classes with the adaptation of RxJava2 in Retrofit2.
Adding of JsonDeserializer used by the GsonFactory to only retrieve the results array object of MovieModel in the response of the API.
Adding 5 requests to handle respectively:

  • Latest movies
  • Now Playing movies
  • Popular movies
  • Top Rated movies
  • Upcoming movies

Version 0.0.2

Adding of utils for network availability test and dates formatting.


Version 0.0.1

Adding of activity movie details xml file and synced with Gradle libraries written in the README.
Adding some classes to perform a multi-threaded blur on an image for the front of the application.
Filled the mainActivity class to build the activity movie details xml file in order to test this view.

tmdb-app's People

Contributors

mrrraph avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.