/Flixster

A movie-browsing Android app that list movies from The Movie Database API (http://docs.themoviedb.apiary.io/#).

Primary LanguageJava

Flixster

Flixster is a movie browsing app that allows users to browse movies from the list of movies extracted from The Movie Database API (http://docs.themoviedb.apiary.io/#).

๐Ÿ“ Flixster Part 2

User Stories

REQUIRED (10pts)

  • (8pts) Expose details of movie (ratings using RatingBar, popularity, and synopsis) in a separate activity.
  • (2pts) Allow video posts to be played in full-screen using the YouTubePlayerView.

BONUS

  • Implement a shared element transition when user clicks into the details of a movie (1 point).
  • Trailers for popular movies are played automatically when the movie is selected (1 point).
    • When clicking on a popular movie (i.e. a movie voted for more than 6 stars) the video should be played immediately.
      • NOTE: I change the criteria from 5 stars to 6 stars because the ratings for the movies I extracted are all above 5 stars.
    • Less popular videos rely on the detailed page should show an image preview that can initiate playing a YouTube video.
  • Add a play icon overlay to popular movies to indicate that the movie can be played (1 point).
  • Apply data binding for views to help remove boilerplate code. (1 point)
  • Add a rounded corners for the images using the Glide transformations. (1 point)

App Walkthough GIF




Notes

It was challenging to understand where to put data binding since we have a MovieAdapter and a MainActivity. The example provided inflate values in MainActivity, but for our project we inflate and change their values in MovieAdapter, so I couldn't figure out.

Open-source libraries used

  • Android Async HTTP - Simple asynchronous HTTP requests with JSON parsing
  • Glide - Image loading and caching library for Android

๐Ÿ“ Flixster Part 1

User Stories

REQUIRED (10pts)

  • (10pts) User can view a list of movies (title, poster image, and overview) currently playing in theaters from the Movie Database API.

BONUS

  • (2pts) Views should be responsive for both landscape/portrait mode.

    • (1pt) In portrait mode, the poster image, title, and movie overview is shown.
    • (1pt) In landscape mode, the rotated alternate layout should use the backdrop image instead and show the title and movie overview to the right of it.
  • (2pts) Display a nice default placeholder graphic for each image during loading

  • (2pts) Improved the user interface by experimenting with styling and coloring.

    • Changed app icon to a more colorful and cuter logo! (shown in gif)
    • Modified the app themeโ€™s Primary, Dark Primary and Accent Colors.
    • Styled movie posters to have rounded corners using Glide transformations.
    • Styled each listed movie view to have some margins in between each other, so it's easier for user's eyes to browse.
  • (2pts) For popular movies (i.e. a movie voted for more than 5 stars), the full backdrop image is displayed. Otherwise, a poster image, the movie title, and overview is listed. Use Heterogenous RecyclerViews and use different ViewHolder layout files for popular movies and less popular ones.

App Walkthough GIF

Portrait mode

Landscape mode

GIF created with LICEcap.

Notes

I tried to style the list view by adding some

Open-source libraries used

  • Android Async HTTP - Simple asynchronous HTTP requests with JSON parsing
  • Glide - Image loading and caching library for Androids