Udacity built this Nanodegree program in partnership with Google for students with intermediate programming skills who want to become professional Android developers.
Capstone Project - Candy Pod
Candy Pod is a podcast player for podcast lovers who want to listen to podcasts for free. Discover popular podcasts and listen to your favorite podcasts anywhere, anytime. It is easy to use and you can subscribe to the podcast in one click.
- Built a media app architecture that allows background playback of audio
- Incorporated ExoPlayer to provide media streaming, downloading and playback notification
- Used transitions and animation effectively
- Added free and paid flavors
View Source Code | View on YouTube
Popular Movies app gives you information about movies from the TMDb. See what movies are the most popular and high rated. You can also discover Now Playing or Upcoming movies. Popular Movies app will help you decide what to watch.
- Fetched movie data from the TMDb API using Retrofit
- Integrated the Paging library, LiveData, ViewModel, DataBinding, Room, MVVM architecture and Repository pattern
- Created a local database using Room that allows users to store the information of their favorite movies
View Source Code | View on YouTube | Get it on Google Play
You will productionize an app, taking it from a functional state to a production-ready state. This will involve finding and handling error cases, adding accessibility features, allowing for localization, adding a widget, and adding a library.
As a working Android developer, you often have to create and implement apps where you are responsible for designing and planning the steps you need to take to create a production-ready app. Unlike Popular Movies where we gave you an implementation guide, it will be up to you to figure things out for the Baking App.
- Used Fragments to support responsive design that works on phones and tablets
- Implemented Espresso to test aspects of the UI
- Used a database that allows users to create their own shopping list to make sure that they get the right ingredients
View Source Code | View on YouTube
Build It Bigger - Joke Telling App
Created a Joke Telling App with multiple flavors that uses multiple libraries and Google Cloud Endpoints. This app consists of four modules. A Java library that provides jokes, a Google Cloud Endpoints (GCE) project that serves those jokes, an Android Library containing an activity for displaying jokes, and an Android app that fetches jokes from the GCE module and passes them to the Android Library for display.
- Built app with a free ad-supported version and a paid version
- Retrieved jokes from Google Cloud Endpoints module and displayed them via an Activity from the Android Library.
- Made the free app variant display interstitial ads
View Source Code | View on YouTube
Make Your App Material - XYZ Reader
In this project, you will redesign an app to follow the Material Design guidelines and translate a set of static design mocks to a living and breathing app.
This project gives you an opportunity to improve an app’s design, a vital skill for building apps users will love. It also replicates a common developer task of updating and changing an app's design as new standards are released.
- Applied Material Design guidelines to a mobile application
- Implemented the Shared Element Transition in the case using a ViewPager and Fragments
- Customized the animation using PageTransformer. Showed a Snackbar with a button that allows to perform an action
- Created a custom ThreeTwoImageView to make all the images have the same proportion
View Source Code | View on YouTube
Sandwich Club app shows the details of each sandwich once it is selected.
Building a layout and populating its fields from data received as JSON is a common task for Android Developers. Although JSON parsing is usually done using libraries, writing the JSON parsing for this project will help you to better understand how it is processed.
- Practiced JSON parsing to a model object
- Designed an activity layout
- Populated all fields in the layout accordingly
Apache, see the LICENSE file.
Copyright 2019 Soojeong Shin
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.