acasadoquijada / movie-catalog

Movie catalog android app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Movie Catalog

This application was developed in three days during an own hackathon.

Setup instructions

In order to compile and install the application in a emulated or physical device you need to do as follows:

1 - Clone the this repository

git clone https://acasadoquijada@bitbucket.org/acasadoquijada/movie-catalog.git

2 - Open the project using Android Studio

File > New > Import Project 

3 - Obtain an API key from themoviedb.org. Please see this link

Check for the API Key (v3 auth)

4 - Once we have an API Key, set it in retrofit.MainController line 13 .

private val apiKey = "your api key"

5 - Select your device (virtual or physical)

6 - Click on Run 'app'.

7 - Now you should be able to use the application

If you find this error running the unit test

running 'moviecatalog in app':
Command line is to long. Shorten command line for moviecatalog in app or also for Android Junit default configurartion.

Do this to fix it:

Please click on "moviecatalog in app"
Set shorten commmand line to classpath file and apply
Rerun unit test, they should run and pass without issues    

Style checking

To check the code style the following tools have been used:

Libraries used

  • Retrofit needed to perform the API calls to themoviedb.org in order to get the Movie/TV Show information
  • Navigation Component to perform the navigation between the fragments
  • Picasso to set the poster of the Movies/TV Shows into ImageViews
  • Room to store the watchlist information in the device

Problems found during development and future work

The greatest problem I found was while integrating Room into the picture. I had almost everything working, but due to a "wrong" design decision, the toggle button of the elements in the watchList wasn't updated correctly. Because of that, I had to perform a different approach.

During the development of the app an API key as uploaded by mistake. This key has been revoked before making the repository public.

With more time, I would like to:

  • Improve the UI (how the tv/cinema logo is shown), add support for large devices (tablets)

  • Improve user experience (not possible to rotate the phone in the middle of a search)

  • Increase the code coverage

  • Improve the UI package class structure (a superclass could be defined with common methods)

  • Use styles for common elements in the layouts

External resources