Free Course

Developing Android Apps

About this Course

Android Fundamentals 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 an Android app, and learn best practices of mobile development in general and Android development in particular.

Course Leads

Reto Meier

Katherine Kuan

Dan Galpin

Instructor

Alexander Lucas

Instructor

Sarah Spikes

Instructor

James Williams

Instructor

Lyla Fujiwara

Instructor

What You Will Learn

Lesson 1: Create Project Sunshine with a Simple UI (5-8 hrs)

Starting by installing Android Studio, you’ll create your first project with a simple list-based user interface and built and deploy it to virtual and actual devices. You’ll also discover what makes mobile - and Android in particular - a unique environment for app development.

Android Studio, Gradle, and debugging tools

User Interface and Layout managers

ListViews and Adapters

Lesson 2: Connect Sunshine to the Cloud (8-10 hrs)

Replace the mock data with real weather data by connecting Sunshine up to an Internet back-end courtesy of the Open Weather Map API. You’ll learn how to add permissions to your app, initiate network I/O, and how to move time consuming tasks like network data transfers off the main UI thread.

Give your app structure and create more complex Activities. You’ll learn about Android’s Intent framework, and how to use Intents to navigate between Activities, both within your app and as a way to add 3rd party functionality.

Learn how the Android framework manages the activity lifecycle, and how it differs from what you might expect, and dive head-first into the world of persistent storage. Learn how to create databases, use Android’s Content Providers to provide an abstraction layer between your data and your UI implementation, and use Loaders to efficiently load stored data.

Activity lifecycle and background activity termination

SQLite databases and JUnit tests

Creating and using a Content Provider as an abstraction layer

Using Loaders to asynchronously load data

Creating Adapters to bind UI components to Content Providers

Lesson 5: Implement Rich and Responsive Layouts (8-10 hrs)

Create rich, responsive user interfaces that work across a variety of different hardware types and screen sizes. You’ll learn more details on using the Android Layout managers, Fragments, UI widgets, and Android design principles to add visual polish to your user interfaces, and how to create your own controls from scratch.

Fundamental Android design principles

Supporting localization and variable screen sizes

Optimizing tablet UIs using Fragments

Accessibility Features

Custom views

Lesson 6: Use Services and Notifications to Run in the Background (5-8 hrs)

Deliver a great user experience, even when your app isn’t visible. Learn how the Android framework manages background apps; and discover how to use Services and Notifications to make your app to be active when it’s not in the foreground. You’ll learn techniques for efficient data transfers using SyncAdapters and Google Cloud Messaging, so your app can stay up-to-date without draining the battery.

Background services and alarms to schedule background tasks

Efficient background data transfers with SyncAdapters

Rich notifications to interact with users

Final Project (10-20 hours)

Build your own Android app incorporating the skills you've learned in this course.

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). 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. You also should be comfortable working with code on Github.

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

Why Take This Course

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.