/PopvieApp

Popvie - All about movie

Primary LanguageJava

Popvie - All about movie

Created for Udacity Advanced Android Nanodegree Program - Project 2, Stage 1

Project Overview

Most of us can relate to kicking back on the couch and enjoying a movie with friends and family. In this project, I built an app to allow users to discover the most popular, top rated, now playing and upcoming movies. Development of this app is splitted in two stages. This is Stage 1.

In this stage I built the core experience of Popvie app.

Popvie will:

  • Present the user with a grid arrangement of movie posters upon launch.
  • Allow user to change sort order via either bottom navigation bar or option menu:
    • There are four different sort orders: by most popular, by top-rated, by now playing and by upcoming
  • Allow the user to tap on a movie poster and transition to a details screen with additional information such as:
    • movie poster image
    • original title
    • A plot synopsis (called overview in the api)
    • user rating (called vote_average in the api)
    • popularity
    • runtime
    • genre
    • tagline
    • release date
    • official site
    • budget
    • revenue
    • production countries
    • languages
    • production companies

 

Why this Project?

To become an Android developer, you must know how to bring particular mobile experiences to life. Specifically, you need to know how to build clean and compelling user interfaces (UIs), fetch data from network services, and optimize the experience for various mobile devices. You will hone these fundamental skills in this project.

By building this app, you will demonstrate your understanding of the foundational elements of programming for Android. Your app will communicate with the Internet and provide a responsive and delightful user experience.

 

What did I learn after Stage 1?

  • Fetch data from the Internet with theMovieDB API.
  • Use adapters and custom list layouts to populate list views.
  • Incorporate libraries to simplify the amount of code you need to write
  • Design UI for different screen orientations (portrait and landscape)
  • Creating custom actionbar
  • Creating GridLayout with dynamic span count changes with screen density

 

Setup before running

Change API_KEY inside gradle.properties to be able to connect and fetch data.

#API KEY for TMDB access TheMovieDBApiKey="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

 

Dependencies

  • 'com.android.support:appcompat-v7:27.1.0'
  • 'com.android.support:cardview-v7:27.1.0'
  • 'com.android.support:design:27.1.0'
  • 'com.android.support.constraint:constraint-layout:1.0.2'
  • 'com.android.support:transition:27.1.0'
  • 'com.squareup.retrofit2:retrofit:2.3.0'
  • 'com.squareup.retrofit2:converter-gson:2.3.0'
  • 'com.squareup.picasso:picasso:2.5.2'

 

Popvie App Screenshots

Popvie App Screenshots

License

Source code license: https://github.com/akndmr/PopvieApp/blob/master/LICENSE

 

Popvie logo & Popvie character license:

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Icon Credits

Icons used for this project provided by AdbA Icons.