Advanced Android with Kotlin (Udacity)

Offered by Udacity, Google,
Advanced Android with Kotlin (Udacity)

Develop Feature-Rich Android Apps with the Kotlin Programming Language. Go beyond the basics of building an Android app with "Advanced Android with Kotlin". This course teaches you how to add a range of advanced features to your app, starting with best practices for using Android's notification system.

Class Deals by MOOC List - Click here and see Udacity's Active Discounts, Deals, and Promo Codes.

You'll learn how to create and clip custom views, draw directly to a canvas, and add animations to your apps. You'll also add maps to your apps and learn to style them. Testing an app is as important as building it, so you'll learn to test your app to catch and fix bugs so that users never see them. Finally, you'll learn how to let users login to your app with their existing accounts—you'll be surprised how little code it takes.

Kotlin is an official language for Android development, and can be used in a variety of other applications, from back-end development to data analysis. It is an open-source, modern programming language that lets developers use both object-oriented and functional programming techniques. It is concise, safe, and fully interoperable with Java. The community of Kotlin developers is growing rapidly, with major companies like Netflix, Pinterest, and Google using Kotlin.
This free course was developed by Kotlin experts at Google, and will teach you how to add a range of advanced features to your app, covering topics such as notifications, maps, testing, identity management, and more.

What You Will Learn

Lesson 1
Notifications

  • Send messages to users using notifications
  • Design and style notifications
  • Add buttons and actions to notifications
  • Send push messages using Firebase Cloud Messaging

Lesson 2
Advanced Graphics

  • Create custom views for your app
  • Create and display transformed and clipped regions to the screen
  • Build an app that allows users to paint directly on the screen

Lesson 3
Animation

  • Use animations to draw attention to important UI elements and beautiful designs
  • Animate UI elements with property animations
  • Use declarative XML with MotionLayout to coordinate animations across multiple views

Lesson 4
Geo

  • Add Google Maps to your Android apps
  • Style maps to fit your design
  • Enable location services and tracking

Lesson 5
Testing

  • Learn how to test your app before distribution to avoid crashes or unpredicatable behavior
  • Write and run tests for Android including AndroidX Test
  • Test your whole app: UI
  • data
  • and code using coroutines
  • Room
  • Espresso
  • and data binding

Lesson 6
Login

  • Implement user login and identity management for your app using the open source library FirebaseUI
  • Enable login and logout for your app's users
  • Control navigation in your app based on whether a user is logged in

Prerequisites and Requirements
General Experience: Comfortable with Object Oriented Programming and Android fundamentals with Kotlin.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Kotlin Bootcamp for Programmers (Udacity) Udacity
Udacity,Google

Kotlin Bootcamp for Programmers (Udacity)

Language fundamentals for developers. Learn the essentials of the Kotlin programming language from Kotlin experts at Google. Kotlin is a modern and concise JVM language that supports functional programming paradigms. Whether you’re a Java developer or a programmer in another object-oriented language, this course will teach you the essential language features that has made Kotlin so popular with developers.

Self Paced
Self-Paced
Programming Languages, Part A (Coursera) Coursera
University of Washington

Programming Languages, Part A (Coursera)

This course is an introduction to the basic concepts of programming languages, with a strong emphasis on functional programming. The course uses the languages ML, Racket, and Ruby as vehicles for teaching the concepts, but the real intent is to teach enough about how any language “fits together” to make you more effective programming in any language -- and in learning new ones.

Oct 5th 2026
5-12 Weeks
Introduction à la programmation orientée objet (en Java) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Introduction à la programmation orientée objet (en Java) (Coursera)

Ce cours introduit la programmation orientée objet (encapsulation, abstration, héritage, polymorphisme) en l'illustrant en langage Java. Il présuppose connues les bases de la programmation (variables, types, boucles, fonctions, ...). Il est conçu comme la suite du cours « Initiation à la programmation (en Java) ».

Oct 11th 2026
5-12 Weeks
Data Wrangling with MongoDB (Udacity) Udacity
Udacity,MongoDB University

Data Wrangling with MongoDB (Udacity)

In this course, we will explore how to wrangle data from diverse sources and shape it to enable data-driven applications. Some data scientists spend the bulk of their time doing this! Students will learn how to gather and extract data from widely used data formats. They will learn how to assess the quality of data and explore best practices for data cleaning. We will also introduce students to MongoDB, covering the essentials of storing data and the MongoDB query language together with exploratory analysis using the MongoDB aggregation framework.

Self Paced
Self-Paced
Firebase Analytics: Android (Udacity) Udacity
Udacity,Google

Firebase Analytics: Android (Udacity)

Improve your apps with better user data. In this course, you’ll learn how to grow an app's user base using Firebase Analytics, a free and unlimited analytics solution. You'll be able to learn who your users are and how they interact with your app. You can then use this information to make informed decisions to improve your app, such as how difficult to make a level in a game, where to place an advertisement, or what products to stock.

Self Paced
Self-Paced
JavaScript Design Patterns (Udacity) Udacity
Udacity

JavaScript Design Patterns (Udacity)

Organizing Code in a Disorganized World. This course covers methods for organizing your code, both conceptually and literally. You’ll learn the importance of separating concerns when writing JavaScript, gaining hands-on experience along the way. Separating concerns can be done with or without an organizational library or framework. We’ll learn how to separate concerns without one, and then we’ll explore an organizational library together. You’ll also learn strategies for exploring other libraries and frameworks on your own.

Self Paced
Self-Paced
Firebase in a Weekend: Android (Udacity) Udacity
Udacity

Firebase in a Weekend: Android (Udacity)

Building a Realtime Chat App. In this course, you’ll learn how to use Firebase. Firebase is app development platform that provides developers a variety of tools and a scalable infrastructure to build high quality apps. We’ll begin by showing you how easy it is to read and write almost any data to Firebase. After that, we’ll teach you how to allow users to login, have data associated with them and send them notifications. You’ll learn how to use Firebase’s Security and Rules language to secure and add permissions to your data.

Self Paced
Self-Paced
HTML5 Canvas (Udacity) Udacity
Udacity

HTML5 Canvas (Udacity)

From Pixels to Animation! Canvas is an HTML5 element which gives you drawable surface inside your web pages you can control with JavaScript. Powerful enough to use for compositing images and even creating games. In this course, through several sample projects, you’ll learn how to use the canvas; how to make compositions using shapes, images, and text; how to create effects and filters on images and how to create animations.

Self Paced
Self-Paced
Java Programming Basics (Udacity) Udacity
Udacity

Java Programming Basics (Udacity)

Take your first steps towards becoming a Java developer! Learn Java syntax and create conditional statements, loops, and functions. Taking this course will provide you with a basic foundation in Java syntax, which is the first step towards becoming a successful Java developer. You’ll learn how computers make decisions and how Java keeps track of information through variables and data types.

Self Paced
Self-Paced
Objective-C for Swift Developers (Udacity) Udacity
Udacity

Objective-C for Swift Developers (Udacity)

This course is designed to teach students how to understand and identify the differences between the Objective-C and Swift programming languages, and especially, how to rewrite from the former to the latter. Understanding communications between the two languages—called "interoperability"—is becoming more and more important for developers, particularly as we prepare for the arrival of Swift 3.0.

Self Paced
Self-Paced