About this Course

As the first course in the Android Developer Nanodegree, Developing Android Apps is the foundation of our advanced Android curriculum. This course blends theory and practice to help you build great apps the right way. In this course, you'll work with instructors step-by-step to build a cloud-connected Android app, and learn best practices of mobile development, and Android development in particular.

Download Udacity's Android app to keep learning wherever you go!

Watch Trailer
Course Cost
Approx. 60 hours
Skill Level
Included in Product

Rich Learning Content

Interactive Quizzes

Taught by Industry Pros

Self-Paced Learning

Student Support Community

Join the Path to Greatness

This course is your first step towards a new career with the Android Developer Program.

Free Course

Developing Android Apps


Enhance your skill set and boost your hirability through innovative, independent learning.

Icon steps

Course Leads

Dan Galpin

Dan Galpin


Lyla Fujiwara

Lyla Fujiwara


Reto Meier

Reto Meier


Asser Samak

Asser Samak


James Williams

James Williams


Cezanne Camacho

Cezanne Camacho


Michael Lustig

Michael Lustig


Jocelyn Becker

Jocelyn Becker

Program Manager

What You Will Learn

lesson 1

Creating Project Sunshine

  • Learn how to create and run a simple Android app
  • Create simple layouts for Android
  • Learn about the Android Studio IDE
lesson 2

Loading Data from the Internet

  • Connect to the Internet and communicate with web APIs
  • Learn about threading and how to make requests without slowing down your app
  • Learn how to add menus to your app
lesson 3


  • Learn about the components that convert a list of data into visual UI elements
lesson 4


  • Learn the difference between Explicit and Implicit Intents
  • Learn how to navigate inside your apps using intents
  • Learn how to create Intents that apps outside your control can respond to
lesson 5

The Application Lifecycle

  • Understand the phases of the Android application lifecycle
  • Learn how to persist data between orientation and other changes
lesson 6


  • Allow users to customize some aspects of your app
  • Consider when to omit or add a preference
lesson 7

Content Providers

  • Learn how Content Providers provide an interface to share data
  • Consume data from an already existing ContentProvider
lesson 8

Android Architecture Components

  • Learn how to use Room, LiveData, ViewModel and Lifecycle components
  • Understand how architecture components can help you build robust and efficient apps
lesson 9

Background Tasks

  • Run jobs in the background of an app
  • Create notifications and schedule long-running background processes
lesson 10

Completing the UI

  • Build a well-organized, accessible UI for your app
  • Try different layouts, views, viewgroups, and methods of databinding
  • Design your UI for users who speak different languages
lesson 11

Polishing the UI

  • Add visual polish to your apps with different layouts, fonts, and colors
  • Use design principles to create apps that look great across multiple form factors

Prerequisites and Requirements

This course is intended for students with at least 1 year of programming experience in Java or another object-oriented programming language (for example: C++, Objective C or Python).

If you are new to programming, we recommend taking Android for Beginners, which we created with Google for students just like you!

Also, Udacity's Intro to Java is a helpful background if you're looking to refresh your Java skills.

You will be expected to download Android Studio in order to follow along with the instructors throughout the course. For guidance on the install process, take our How to Install Android Studio mini-course.

In addition, you should be comfortable working with code on GitHub.

Access to an Android device is helpful -- but not required -- to complete the final project.

See the Technology Requirements for using Udacity.

Why Take This Course

With over 1 billion Android devices already activated, Android represents an incredible opportunity for developers.

As Android continues to grow beyond smartphones, it will become the brains behind invisible, ubiquitous cloud-connected computing. The skills you learn in this course will help you build awesome apps for smartphones and tablets today, and propel you towards exciting opportunities in Android's future.

By the end of this course, you’ll build a cloud-connected Android app, and understand the tools, principles, and patterns that underlie all Android development. You’ll understand the challenges associated with developing for the mobile environment (and how to overcome them), learn how to build a great user experience for Android devices, and apply this knowledge to your own projects.

What do I get?
Instructor videosLearn by doing exercisesTaught by industry professionals