Skip to content

Project 1 for CodePath's Android University course

Notifications You must be signed in to change notification settings

CheeryW/FlickFlick

Repository files navigation

FlickFlick

FlickFlick is an app that allows users to browse movies from the The Movie Database API.

Flix 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

  • 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 5 stars) the video should be played immediately.
    • 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 the popular ButterKnife annotation library to reduce view boilerplate. (1 point)
  • Add a rounded corners for the images using the Glide transformations. (1 point)

App Walkthough GIF


Notes

It was actually a pretty smooth process building this app, but after adding new features, the landscape mode caused the app to crash, so I decided to prohibit landscape mode on the main page from initializing at first. Now I have fixed this problem by giving the container for movie item in landscape mode the same ID as the one in portrait mode, thanks to the hint from one of the CodePath classmates.

Open-source libraries used

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

Flix 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.

  • (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


Notes

I got an error that simply gives me error messages such as "couldn't load memtrack" and "getDiskStats failed". I tried to use different emulators and wipe previous data from old emulators, but none of those methods worked. After trying for hours, I seeked help from CodePath staff. Thanks to Caren and Nathan, I discovered that my error is caused by missing the line that sets adapter for recyclerview and using getString() instead of optString() inside if(jsonObject.optJSONObject("xxx") != null) clause to get title, poster image, and movie overview.

Open-source libraries used

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

About

Project 1 for CodePath's Android University course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages