Android Basics Nanodegree Syllabus

Before You Start

This is an entry-level, single term Nanodegree program with no prior programming

experience required.

Support Options

We are here to support you every step of the way.

The Study Group feature found in the Udacity classroom helps student, like you, connect

with their peers, mentors, and project reviewers. Students can also seek help, network, and

collaborate with their classmates throughout their program!

The Knowledge platform helps students engage with their peers & mentors, ask and answer

questions, and overcome learning roadblocks quickly.

While going through the program if students experience any issues or have questions

regarding our product offerings we encourage them to send us an e-mail at

abnd-support@udacity.com

Project 1: Build a Single Screen App

Design and implement a single screen app that displays information about a fictional

small business. Think along the lines of your favorite coffee shop, local restaurant, or

that gem of a store that sells those rare comic books or records.

Your design must include:

● Business name

● At least one photo representing the business

● Two or more other pieces of information, such as:

○ Contact information for the business (eg phone number, email address,

website)

○ Address of the Business

○ Description of business

○ Hours of operation

Supporting Learning Content

Course Title Learning Outcomes

BUILDING LAYOUTS:

PART 1

➔ Create the basic structure of a single-screen app by

placing layouts on a page and integrating images,

buttons, and text.

BUILDING LAYOUTS:

PART 2

➔ Group layouts to allow for more creativity and

variation in your design.

Project 2: Score Keeper App

Build a Score Keeper app, which gives a user the ability to keep track of the score of

two different teams playing a game of your choice.

This project is about combining various ideas and skills we’ve been practicing

throughout the course:

● Adding button code to your app

● Updating views

● Properly scoping variables

● Finding views by their ID

Supporting Course Content

Course Title Learning Outcomes

MAKING AN APP

INTERACTIVE: PART 1

➔ Create interactive layouts utilizing buttons.

MAKING AN APP

INTERACTIVE: PART 2

➔ Continue practicing creating an interactive user

experience.

Project 3: Quiz App

The Quiz App project is a chance for you to combine and practice everything you

learned in this section of the Nanodegree program. You will be making your own

Android app - taking it from the idea stage to building out the full app. You can share

your app with family and friends, as well as with other students in this course.

The goal is to create an educational app that quizzes a user about a certain topic of

your choice. We want you to be creative about how you accomplish this. It’s up to you

to decide what the quiz questions will be about and how you want to present them to

your user. (We recommend about 5-10 quiz questions for a reasonable scope of your

app).

This project is about combining various ideas and skills we’ve been practicing

throughout the course. They include:

● Planning your app design before coding.

● Taking an app layout from drawing to XML code.

● Creating, positioning, and styling views.

● Creating interactivity through button clicks and Java code.

● Commenting and documenting your code.

Supporting Lesson Content

Lesson Title Learning Outcomes

OBJECT-ORIENTED

PROGRAMMING: PART 1

➔ Create an object in Java and call methods on that

object

OBJECT-ORIENTED

PROGRAMMING: PART 2

➔ Use booleans, conditions and relational operators,

and practice adding intents and styles to your app

Project 4: Musical Structure App

The goal is to design and create the structure of a Music app . Note for this project,

the app does not actually need to play music. The focus of this project is to implement

Intents, new Activities, Arraylists, Loops and Custom Classes to design the user flow of

a music playing app. There are many music player apps, and it will be your job to

design the Java structure to store and present the user with song information as well as

the user flow through the app. Will you build an app to play music from the user’s

library of music? Will you build an app to stream random songs from a database? Will

you build a musical suggestion engine? Those choices are up to you!

This project is about combining various ideas and skills we’ve been practicing

throughout the course. They include:

● Designing an app experience to achieve a certain goal

● Creating new activities

● Using explicit Intents to link between activities in your app

● Using OnClickListeners to add behavior to buttons using Java code.

● Creating your own Custom Class

● Looping through an ArrayList

● Populating a ListView or GridView with an ArrayAdapter

Supporting Course Content

Course Title Learning Outcomes

INTENTS AND ACTIVITIES ➔ Use intents and activities to build our the structure

of an app

JAVA BREAK: INTERFACES ➔ Learn how to take advantage of Interfaces - a core

OOP concept in Java that makes your code more

flexible.

ARRAYS, LIST, LOOPS, &

CUSTOM CLASSES

➔ Learn how to use arrays, lists, and loops to populate

your app.

JAVA BREAK: LOOPS ➔ Use for and while loops to iterate over a block of

code. Learn how to write nested loops. Use 2D

arrays to store and retrieve information.

QUICK GUIDE TO

GRADLE

➔ Learn how to work with gradle

Project 5: Tour Guide App

You will be making your own multi-screen Android app to share your knowledge about

a city you are very familiar with.

The goal is to create a Tour Guide app which presents relevant information to a user

who’s visiting your city. The app can list top attractions, restaurants, public places, or

events for the city. It can contain all the best known secrets that only locals know. It’s

up to you which categories you want to provide, as well as what information to provide

in each category.

This project is about combining various ideas and skills we’ve been practicing

throughout the course. They include:

● Planning your app design and navigation before coding

● Selecting proper data structures to store lists of information

● Building layouts to display those lists of data

● Navigating between lists in Fragments using a ViewPager or Navigation Drawer

● Creating your own custom classes

● Properly handling images or audio (if applicable)

Supporting Course Content

Course Title Learning Outcomes

IMAGES AND VISUAL

POLISH

➔ Polish image and visuals to improve the quality of

your app.

ACTIVITY LIFECYCLE AND

AUDIO PLAYBACK

➔ Use an external library to add audio to your app.

PRACTICE SET: ACTIVITY

LIFECYCLE AND AUDIO

PLAYBACK

➔ Solidify your understanding of the Activity

Lifecycle and Audio Playback.

FRAGMENTS ➔ Modify the structure an app to make a smoother

user experience.

Project 6: News App

Create a News feed app which gives a user regularly-updated news from the internet

related to a particular topic, person, or location. The presentation of the information as

well as the topic is up to you.

This project is about combining various ideas and skills we’ve been practicing

throughout the course. They include:

● Connecting to an API

● Parsing the JSON response

● Handling error cases gracefully

● Updating information regularly

● Using an AsyncTask

● Doing network operations independent of the Activity lifecycle

● Use Uri.Builder class to add query parameters to the URL

Supporting Course Content

Course Title Learning Outcomes

JSON PARSING ➔ Learn how to parse JSON, one of the most useful

data formats.

HTTP NETWORKING ➔ Learn how to connect to the internet in your

Android code.

THREADS &

PARALLELISM

➔ Learn how to use threads to make your device do

multiple things at once.

PREFERENCES ➔ Learn how to add a new Settings Activity and use the

user's stored preferences to change the URL

Comments