This project is being built as a submission for a Udacity Android Developer Nanodegree in conjunction with a Grow with Google Scholarship.
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. We will split the development of this app in two stages. First, let's talk about stage 1.
In this stage you’ll build the core experience of your movies app.
You app will:
- Present the user with a grid arrangement of movie posters upon launch.
- Allow your user to change sort order via a setting. The sort order can be by most popular or by highest-rated
- 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
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.
- You will fetch data from the Internet with theMovieDB API.
- You will use adapters and custom list layouts to populate list views.
- You will incorporate libraries to simplify the amount of code you need to write
- In order to avoid exposing an API key to github, I chose to use a resource file that I have added to my gitignore file. This file is called
secrets.xml. In it, this code expects a property calledapi_moviedb_api_keythat contains a valid MovieDB API token. The code loads the key before making API calls. Instructions for obtaining an API code are available at MovieDB API. Once you have an API key, create a string resource file calledsecrets.xmlthat contains the following:
<resource>
<string name="api_moviedb_api_key">ENTER_YOUR_API_KEY_HERE</string>
</resource>- Storing Secret Keys in Android
- Environmental variables, API key and secret, BuildConfig and Android Studio
- Securely Storing Secrets in an Android Application using the KeyStore API
- Hiding Secrets in Android Apps
- RecyclerViews
- Picasso and RecyclerViews
- Image Icons from MaterialPalette.com
- Activity Transitions
- Activity Transitions - Youtube
- Material Animations
- Shared Element Activity Transition
- Shared Element Activity Transition - another example
- Shared Element Activity Transitions with Recycler View
- How to get ActionBar Up button to behave like a Back button
- Check if a network connection is availble
- Learn to use RecyclerView, ViewHolder and Adapter classes
- Note: 3 stock LayoutManagers for RecyclerView: LinearLayoutManager, GridLayoutManager, StaggeredGridLayoutManager
- Note: use setHasFixedSize on RecyclerView to allow Android to optimize the view.
- Learn to use the different types of Intents: explicit intents and implicit intents. (Lesson 2.5)