---
# System prepended metadata

title: 'Student-facing instructions: Android'

---

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**_)
