Popular Movies Android App
===================================
One of the final projects produced for the Udacity Android Advanced Nanodegree.
Android Development Advanced Apps
Project Overview
Most of us can relate to kicking back on the couch and enjoying a movie with friends and family. In this project, you’ll build an app to allow users to discover the most popular movies playing.
Present the user with a grid arrangement of movie posters upon launch. Allow your user to change sort order via a setting:
- Popular Movies
- Highest Rated
- Favourites
Allow the user to tap on a movie poster and transition to a details screen with additional information such as:
- original title
- movie poster image thumbnail
- A plot synopsis (called overview in the api)
- user rating (called vote_average in the api) release date.
Allow users to view and play trailers 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). Create a database and content provider to store the names and ids of the user’s favorite movies.
Skills Applied
- Build a UI layout for multiple Activities.
- Launch these Activities via Intent.
- Fetch data from themovieDB API.
Specifications:
- App is written solely in the Java Programming Language.
- Movies are displayed in the main layout via a grid of their corresponding movie poster thumbnails.
- UI contains a settings menu to toggle the sort order of the movies by: most popular, highest rated, favourites.
- UI contains a screen for displaying the details for a selected movie.
- Movie details layout contains title, release date, movie poster, vote average, and plot synopsis.
- When a user changes the sort criteria (“most popular and highest rated”) the main view gets updated correctly.
- When a movie poster thumbnail is selected, the movie details screen is launched.
- The titles and IDs of the user’s favorite movies are stored in a native SQLite database and are exposed via a ContentProvider. This ContentProvider is updated whenever the user favorites or unfavorites a movie. No other persistence libraries are used.
- When the “favorites” setting option is selected, the main view displays the entire favorites collection based on movie ids stored in the ContentProvider.