Now available...


Android Developer Fundamentals (V2)

We've updated Android Developer Fundamentals to reflect best practices for more recent versions of the Android framework and Android Studio.

Kotlin Bootcamp for Programmers

Learn the essentials of the Kotlin programming language from Kotlin experts at Google. This is a free, online course for intermediate-level developers.

Build Native Mobile Apps with Flutter

Learn how to use Flutter to quickly develop high-quality, interactive mobile apps for Android and iOS devices. This is a free, online course.

Build your Android development skills

Whether you're new to programming or an experienced developer, we have a range of courses to teach you Android app development, from your first app to advanced topics such as localization, media, advanced graphics, and performance.

keyboard_arrow_rightFor new programmers

keyboard_arrow_rightFor experienced developers

keyboard_arrow_rightLearn design skills

keyboard_arrow_rightDive into deeper topics

For new programmers

Reach for the stars and start coding today!

Android Development for Beginners

A free, online, self-paced series of courses for aspiring Android developers with no prior programming experience. In the first course, you build your first Android app. The later courses in the series teach you how to add more functionality to your app, connect to the internet, set up databases, and store data in your app.

directions_walkLevel: Beginner

Free, online, self-paced courses in Android Development for Beginners:
1. Android Basics: User Interface
2. User Input3. Multi-screen Apps
4. Networking5. Data Storage

Android Basics Nanodegree

If you enroll in the Android Basics Nanodegree program, you get guidance and help as you work your way through Udacity's beginner courses for Android. This program is a great way to build your first portfolio of apps and earn a Nanodegree.

directions_walkLevel: Beginner

For experienced developers

If you've been coding for a while, we have courses to help you build your Android skills and learn best practices.

Google Developer Codelabs

Have a spare hour and want to learn a new Android development trick? Each codelab provides a focused, self-contained coding experience that you can complete on your own.

Codelabs are free, self-paced, online modules.

directions_rundirections_runLevel: Intermediate to Advanced

keyboard_arrow_rightBuild Your First Android App in Kotlin

keyboard_arrow_rightBuild Your First Android App in Java

keyboard_arrow_rightMore Android codelabs

Android Developer Fundamentals (V2 now available!)

new_releases Designed and updated by the Google Developers Training team

This end-to-end course teaches you basic Android programming concepts. You build a variety of apps, starting with Hello World and working your way up to apps that schedule jobs, update settings, and use Android Architecture Components. Each lesson includes a practical codelab with solution code in GitHub, concept documentation, and a slide deck.

Available for instructors to freely use in classroom settings, or for self-study by any motivated developer who knows the Java programming language.

directions_runLevel: Intermediate

Advanced Android Development

new_releases Designed by the Google Developers Training team

Learn ways to expand the user experience and improve your app's performance. Add advanced features to your apps, including custom views, animations, and geo features. Each lesson includes a tutorial with solution code in GitHub, concept documentation, and a slide deck.

Available for instructors to freely use in classroom settings, or for any motivated developer to use for self-study.

directions_runLevel: Advanced

Developing Android Apps

Learn best practices as you build the Sunshine weather app. In the updated version, you build sample apps as you go through the course.

This is a free, self-paced, online course.

directions_runLevel: Intermediate

Android Developer Nanodegree

Build a portfolio of projects as you earn your Android Developer Nanodegree. In this series of online, self-paced courses, you receive personalized guidance and help as you learn the tools, principles, and patterns that underlie all Android development.

All courses are also available individually at no cost.

directions_runLevel: Intermediate

Advanced Android App Development

This follow-on course to Developing Android Apps teaches you how to follow Google's app-quality guidelines as you productionize and publish your Android apps.

This is a free, self-paced, online course.

directions_runLevel: Advanced

Kotlin Bootcamp for Programmers

Learn the essentials of the Kotlin programming language from Kotlin experts at Google. Whether you’re a Java developer or a programmer in another object-oriented language, you’ll gain the skills you need to build your next project in Kotlin.

This is a free, self-paced, online course.

directions_runLevel: Intermediate

Learn design skills

Learn design skills from Google's design experts.

UX Design for Mobile Developers

Learn techniques to plan, design, and prototype your mobile apps before writing any code.

directions_walkLevel: Beginner

Material Design for Android

Learn how to apply material design principles to build compelling, beautiful interfaces for your Android apps.

directions_runLevel: Intermediate

Dive deeper with free Google Developers Training materials

Free and available for classroom use or self-study, the Advanced Android Development course is meant for Android developers who want to go deeper. Each of the tutorials listed here has a companion concept chapter and slide deck.

Working with sensor data

Build an app that uses the Android sensor framework to get data from device sensors such as the accelerometer and geomagnetic field sensor.

directions_runLevel: Advanced

Using the Profile GPU Rendering tool

Analyze app performance using the Profile GPU Rendering tool to visualize how long it takes an app to draw frames to the screen.

directions_runLevel: Advanced

Using resources for languages

Build an app that uses string resources and the Translations Editor in Android Studio to support different languages.

directions_runLevel: Advanced

Using the device location

Build an app that displays the device's last known location as latitude and longitude coordinates, converts those coordinates into a physical address, and receives periodic location updates.

directions_runLevel: Advanced

Adding a Google Map to your app

Build an app that integrates Google Maps and uses features like location markers, map styling, Street View, and location tracking.

directions_runLevel: Advanced

Creating a custom view

Build an app that uses custom views, which inherit behavior and appearance attributes from their parent views and can override those attributes.

directions_runLevel: Advanced

Dive deeper with free video-based courses

Udacity and Google teamed up to create free, self-paced, online courses.

Android Performance

Make your app fast and efficient. In this course you learn how to speed up rendering, optimize compute and memory operations, and minimize battery drain.

directions_runLevel: Advanced

Firebase in a Weekend

Learn how to use Google's Firebase cloud back end to store and share data for multi-user Android apps.

directions_runLevel: Intermediate

Firebase Analytics

Learn how to add Firebase Analytics to your app and use it to make informed decisions about things like ad placement.

directions_runLevel: Intermediate

Gradle for Android and Java

Learn how the Gradle build tool compiles and packages apps, and learn to customize the Android build process.

directions_runLevel: Advanced

Google Developers Certification

The Associate Android Developer Exam demonstrates the type of skill that an entry-level Android Developer should have as they begin their career.

By passing this performance-based exam and earning the Associate Android Developer Certification, you prove that you're competent and skilled in tasks that a developer typically performs.

Learn more and sign up