Student-facing instructions: Android == :::danger **NOTE:** You don't need to read through this student-facing guide nor execute this yourself. This is only shared with you just in case you need a reference point for how some features look like implemented. ::: # Flixster - Part 1 **Overview**: This project lets users view a list of movies sourced from the The Movie Database API. **Video Walkthrough**: Start with this [video walkthrough](https://www.youtube.com/playlist?list=PLrT2tZ9JRrf6_xXjDCX6mwhhGjJf0_Cdl) to complete a basic version of this assignment. **Submission Instructions**: * Make sure you are adding and committing files in git as you complete features and milestones. * Be sure to **include a README** containing a GIF walkthrough of your app. * Use [this README template](/snippets/android_university/readme_templates/project_1_readme.md?raw=true) in order to have a complete README. ## Check out The Movie DB API * [Video Intro to the Movie DB API](https://www.youtube.com/watch?v=Hfoi4N1ES-4) * Poke around in the [The Movie Database documentation](https://developers.themoviedb.org/3/getting-started) to familiarize yourself with the API's general structure and features. - ["Now Playing" endpoint](https://developers.themoviedb.org/3/movies/get-now-playing). - Sample Request: - <https://api.themoviedb.org/3/movie/now_playing?api_key=a07e22bc18f5cb106bfe4cc1f83ad8ed> in your browser. - API Key `a07e22bc18f5cb106bfe4cc1f83ad8ed` - **Note:** It's helpful to install the [JSONView Chrome Extension](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc?hl=en) to view the returned JSON more easily. ## Mockups With required and a few optional user stories completed: ![](https://i.imgur.com/FqD62Kb.gif) ![](https://i.imgur.com/lbj9vrI.gif) In portrait mode, the layout should look like: ![Portrait mode|300](http://imgur.com/wSi5ogZ.png) In landscape mode, the layout should look like: ![Landscape mode|320](http://imgur.com/9qgjpjU.png) The required and optional user stories are outlined below. ## User Stories > A user story is a way to capture requirements for an app from an end-user perspective. > It is a common practice in app development and helps to simplify the way requirements are specified. ### Required Stories - User can view a list of movies (title, poster image, and overview) currently playing in theaters from the Movie Database API. (_**5 points**_) - [Networking and Parsing JSON](https://www.youtube.com/watch?v=hKGogwnX9gA) - [RecyclerView implementation](https://www.youtube.com/watch?v=y7OKzVdzzuM) **Project setup**: Completing this project requires the use of the [AsyncHttpClient](https://github.com/codepath/android_guides/wiki/Using-CodePath-Async-Http-Client) and the [Glide](http://guides.codepath.org/android/Displaying-Images-with-the-Glide-Library) libraries. You will need to add dependencies for these libraries to the [app/build.gradle](https://github.com/codepath/android-rest-client-template/blob/master/app/build.gradle#L40-L43) file. ### Stretch stories - Views should be responsive for both [landscape/portrait mode](http://guides.codepath.org/android/Understanding-App-Resources#creating-alternate-resources). (_**3 points**_) - In portrait mode, the poster image, title, and movie overview is shown. - 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. - [Alternate resources walkthrough](https://www.youtube.com/watch?v=7YhooIccfIU) - Display a nice default placeholder graphic for each image during loading (read more about [Glide](http://guides.codepath.org/android/Displaying-Images-with-the-Glide-Library#setup)) (_**1 point**_) - Improve the [user interface](http://guides.codepath.org/android/Styling-UI-Screens-FAQ#actionbar) through styling and coloring (_**1 to 5 points** depending on the difficulty of UI improvements_) - 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](https://guides.codepath.com/android/Heterogeneous-Layouts-inside-RecyclerView) and use different ViewHolder layout files for popular movies and less popular ones. (_**2 points**_)