My Popular Movies app for Project 2 of the Udacity Android Developer Nanodegree.
The app improves upon Popular Movies Project 1. The updates allow the user to view movie trailers, read reviews, and select favorites. It is also now optimized for viewing on tablets.
This is in addition to the existing functionality from Project 1 that shows content from TMDb and allows the user to sort movies by popularity and ratings and view further detail about each movie.
Further information about the project can be found here.
In order for this app to fetch content using the themoviedb.org API, an API key is required. You can add your own by replacing the {Your_TMDB_API_Key} in the following string in strings.xml entry: {Your_TMDb_API_Key}
- Allow users to view and play trailers ( either in the youtube app or a web browser).
- Allow users to read reviews of a selected movie.
- Allow users to mark a movie as a favorite in the details view by tapping a button (star). This is for a local movies collection cached to a database and does not need an API request.
- Modify the existing sorting criteria for the main view to include an additional pivot to show their favorites collection.
- Optimize your app experience for tablet.
Movies are displayed in the main layout via a grid of their corresponding movie poster thumbnails(6e61f4c)UI contains an element (i.e a spinner or settings menu) to toggle the sort order of the movies by: most popular, highest rated(9df3202), and favoritesUI contains a screen for displaying the details for a selected movie(a00a495)Movie details layout contains title, release date, movie poster, vote average, and plot synopsis.(a00a495)Movie Details layout contains a section for displaying trailer videos and user reviewsTablet UI uses a Master-Detail layout implemented using fragments. The left fragment is for discovering movies. The right fragment displays the movie details view for the currently selected movie.
When a user changes the sort criteria (“most popular and highest rated”) the main view gets updated correctly.(9df3202), and favorites sort criteriaWhen a movie poster thumbnail is selected, the movie details screen is launched [Phone](a00a495) or displayed in a fragment [Tablet]When a trailer is selected, app uses an Intent to launch the trailerIn the movies detail screen, a user can tap a button (for example, a star) to mark it as a Favorite
In a background thread, app queries the /movie/popular or /movie/top_rated API for the sort criteria specified in the settings menu.(9df3202)This query can also be used to fetch the related metadata needed for the detail view.(a00a495)App requests for related videos for a selected movie via the /movie/{id}/videos endpoint in a background thread and displays those details when the user selects a movie.App requests for user reviews for a selected movie via the /movie/{id}/reviews endpoint in a background thread and displays those details when the user selects a movie.
App saves a “Favorited” movie to SharedPreferences or a database using the movie’s id.When the “favorites” setting option is selected, the main view displays the entire favorites collection based on movie IDs stored in SharedPreferences or a database.
- A
pp persists favorite movie details using a database App displays favorite movie details (title, poster, synopsis, user rating, release date) even when offlineApp uses a ContentProvider to populate favorite movie details. Student may use a library to generate a content provider rather than build one by hand
Movie Details View includes an Action Bar item that allows the user to share the first trailer video URL from the list of trailersApp uses a share Intent to expose the external youtube URL for the trailer