In the Android Developer Fundamentals course, you learn basic Android programming concepts and build a variety of apps, using the Java programming language. You start with Hello World and work your way up to apps that schedule jobs, update settings, and use Android Architecture Components.
About the course
The Android Developer Fundamentals course was created by the Google Developers Training team. To take the course, you must have experience with the Java programming language.
The course materials include:
- Codelabs with suggested homework assignments: Codelabs for Android Developer Fundamentals
- Concept reference chapters: Android Developer Fundamentals — Concepts
- Slide decks
- Source code in GitHub for starter apps and solution code for apps that you create in the codelabs
Each lesson contains a slide deck, a concepts chapter, and in most cases, one or more codelabs. As you work through the codelabs, you create apps as a way to practice and perfect the skills you're learning. Some lessons are purely conceptual and don't have codelabs.
The materials are freely available online for use by instructors, or for self-study by anyone who knows the Java programming language.
What does the course cover?
The course includes four teaching units, each of which includes several lessons:
- Unit 1: Get started
- Unit 2: User experience
- Unit 3: Working in the background
- Unit 4: Saving user data
Unit 1: Get started
This unit covers installing Android Studio, understanding project structure, building your first app, creating activities, testing your apps, and using the Android Support Library.
First, you deploy a simple Hello World app. You go on to create an app with a simple activity, and then you create a multi-screen app that passes data between activities. You also learn how to use the Android Support Library to provide backward-compatibility with earlier versions of the Android system for your app.
Unit 2: User experience
This unit covers how to get input from the user, implement navigation strategies, use themes and styles, test your user interface, and follow Material Design principles.
You create apps that use menus and tabs for navigation, and input controls such as spinners and picker dialogs to get information from the user. You learn how to extract resources to create a style from an instance of a user interface element. You write an app that displays a word list in a recycler view (and you learn why it's better to use a recycler view than a plain scrolling list).
You also build a score-keeping app to explore Material Design guidelines.
Unit 3: Working in the background
This unit covers how to do background work, how to schedule tasks, and how to trigger events. It covers the performance implications of executing work in the background, as well as best practices for reducing battery drain. You learn how Android determines which apps to keep running and which to stop when resources run low.
You write an app that connects to the Internet in a background thread to find the author of any book. You also build apps that send notifications and schedule tasks, and you learn how to implement scheduling functionality for apps that run on earlier versions of Android.
Unit 4: Saving user data
This unit discusses how to store user data. You learn how to use shared preferences to save simple key value pairs, then you learn how to use the Room database to save, retrieve, and update user data. This unit also introduces you to the Android Architecture Components, which represent best practices for structuring your app.
Version 2 of Android Developer Fundamentals course available
The Android Developer Fundamentals course was updated in September 2018. For details, see the release notes.
Phone and SMS course available
Android Apps – Phone Calls and SMS, an optional add-on to the Android Developer Fundamentals course, is available as of March 2017.
Videos for Android Developer Fundamentals
Videos of lectures are available on YouTube as of January 2017.