Skip to content
UdemyAndroid DevelopmentPaid courseAll LevelsCertificate

Kotlin Coroutines and Flow for Android Development [2026] (Udemy.com)

The Complete Guide! Get a deep understanding of Kotlin Coroutines and Flow to use them successfully in your Android Apps

Created by: Lukas Lechner

Last updated July 2026

icon
What you will learn

  • Implement the most common use cases for Kotlin Coroutines and Flow on Android
  • Get a deep understanding of Kotlin Coroutines and Flows
  • Learn advanced Coroutine Concepts (Structured Concurrency, Coroutine Scopes and Contexts, internal workings, )
  • Learn how to create Flows using different Flow builders
  • Learn about Flow operators (lifecycle operators, intermediate operators, terminal operators)
  • Learn about different kind of Flows (regular Flows, SharedFlows, StateFlows)
  • Create a stock live-tracking app with Flows
  • Learn when to use Channels in Android Development
  • Understand the advantages of using Coroutines over Callbacks or RxJava.
  • How to perform network requests with Retrofit sequentially and concurrently.
  • How to use Room together with Coroutines.
  • Background processing with Coroutines.
  • Exception Handling and Cancellation in Coroutines and Flows.

How it compares

Against the other 166 rated Udemy courses in Android Development on CourseDuck:

  • Rating4.5 out of 5higher than 69% of them
  • Reviews2,254#24 of 167 by number of reviews
  • Length16.3 hourslonger than 65% of them
  • Last updatedJuly 2026more recently than 87% of them

icon
Course Description

Google recommends Kotlin Coroutines and Flow as the preferred solution for asynchronous programming on Android. Sooner or later, probably every  Android developer will get in touch with these topics.


This course will give you a deep understanding of Kotlin Coroutines and Flow and show how to implement the most common use cases for Android applications.


This course consists of two big parts: The Coroutines part and the Flow part.

Before being able to use Flows in our applications, we first need a solid understanding of Coroutines. That’s why Coroutines are covered first. However, if you already have some experience with Coroutines, then you can also start with the Flow part right away, and jump back to lessons of the Coroutines part whenever needed.


In the part about Coroutines, first, we will take a detailed look at the advantages of Kotlin Coroutines over other approaches for asynchronous programming, like RxJava and Callbacks.


Then, we will talk about some theoretical fundamentals. These include:

  • Routines vs. Coroutines

  • Suspend Functions

  • Coroutines vs. Threads

  • Blocking vs. Suspending

  • Multithreaded Coroutines

  • Internal workings


Next, we will implement some of the most common use cases for Kotlin Coroutines in Android applications. These include: 

  • Performing network requests with Retrofit sequentially and concurrently

  • Implementing Timeouts and Retries

  • Using Room with Coroutines

  • Performing background processing with Coroutines

  • Continuing Coroutine execution even when the user leaves the screen.


To improve your learning experience, this course also challenges you with several exercises.


Learning Coroutines can be overwhelming because you need to learn a lot of new concepts. However, we are going to start simple and as our use cases will get more and more complex, we will learn about new concepts step-by-step. These new concepts are:

  • Coroutine Builders (launch, async, runBlocking)

  • Coroutine Context

  • Coroutine Dispatchers

  • Structured Concurrency

  • Coroutine Scopes (viewModelScope, lifecycleScope, GlobalScope)

  • Jobs and SupervisorJobs

  • scoping functions (coroutineScope{} and supervisorScope{})

  • Cooperative Cancellation

  • Non-Cancellable Code


We will also make a deep dive into Exception Handling and discuss concepts like: 

  • exception handling with try/catch

  • exception handling with CoroutineExceptionHandlers

  • when to use try/catch and when to use a CoroutineExceptionHandler

  • exception handling in Coroutines started with launch and async

  • exception handling specifics of scoping functions coroutineScope{} and supervisorScope{}


Unit Tests are very important for every codebase. In the course's final section, we will write unit tests for most of the coroutine-based use cases we implemented earlier. We will discuss concepts like

  • TestDispatchers (StandardTestDispatcher, UnconfinedTestDispatcher)

  • Creating a JUnit4 Rule for testing coroutine-based code

  • runTest{} Coroutine Builder

  • virtual time

  • Testing sequential and concurrent execution

  • TestScopes

  • Updated coroutine testing module using the latest APIs (2026)


In the part about Kotlin Flow, we first cover all the basics. We will answer the question “What is a Flow?” and then we discuss the benefits and drawbacks of reactive programming.


Afterward, we are going to have a look at different Flow builders and operators:

  • basic flow builders

  • terminal operators

  • terminal operator “launchIn()”

  • terminal operator “asLiveData()”

  • lifecycle operators

  • intermediate operators


In our first real Flow use case, we use a Flow to create a live stock-tracking feature, that uses all the available basic flow components.


In the next module, we will take a look at Exception Handling and Cancellation with Kotlin Flow.


In the following module, you will learn about StateFlow and SharedFlow and the following concepts:

  • how to make Coroutines lifecycle-aware with the “repeatOnLifecycle()” suspend function

  • Hot Flows VS Cold Flows

  • Converting Flows to SharedFlows with the “shareIn()” operator

  • Converting Flows to StateFlows with the “stateIn()” operator

  • When to use SharedFlow and when to use StateFlow


Next, you will learn about Channels, how they differ from hot flows, and when they are useful in Android Applications.


By the end of this course, you will have a fundamental understanding of Kotlin Coroutines and Flows and be able to write readable and maintainable, asynchronous, and multithreaded Android Applications.

icon
Udemy Discount

The discount is applied through our link. Open the course from here and Udemy's current promotional price is applied at checkout on most courses, no code to type.

Some courses are excluded from Udemy's promotions. If the price does not drop, clear your browser cookies and use the button again.

icon
Instructor Details

Lukas Lechner

Hi, I'm Lukas!

I'm a Software Developer from Austria with more than 15 years of experience, and I've helped over 10,000 students level up their skills here on Udemy.

After many years of building professional Android apps and Spring Boot Backends for companies all across Europe, I've gone deep into AI Engineering.


Want to keep learning between courses?

Subscribe to my newsletter, where I share practical AI Engineering tips and insights. You can also connect with me on the platforms that you can see on the right =>
There, I regularly post about AI Engineering and software development.


I'd love to see you in one of my courses!

icon
More Android Development courses

$11.99

$54.99

$74.99

$74.99

$11.99

$64.99

icon
Reviews

4.5

2,254 ratings on Udemy

Select a bar to show only those reviews.Select the bar again to show every rating.

By Neil Souza on 3/15/2026

Great course on learning kotlin coroutines and flows. The instructor really took the time to understand the concepts and explain them in this course. Under the flows topic, was hoping that certain topics like callback flow, converting one shot callbacks to suspend functions, scheduling upstream of a flow on another thread and collecting on main thread, combining more than 2 flows, testing flows, etc would be discussed. However, the course on flows is a good place to get your basic understanding clear. Would definitely recommend it to fellow developers

By Gabor Berenyi on 2/3/2026

I don't like that this speaker is unaware of Jetpack Compose and uses the old View system throughout the course. He is also unaware of KMP and thinks that Coroutines/Flow are somehow Android-specific.

By Danilo Carvalho da Paz Gomes on 11/20/2025

This course provides a deep understanding of coroutines and flows in a very understandable way. The examples are practical, and the teacher explains a lot about the "under the hood". The only drawback is the coroutines testing lesson that uses deprecated libraries. But for the rest it's really updated and also teaches a lot about migration from legacy codes to modern Android development

By Adrian Purcaroiu on 5/19/2024

Pros: - Very well documented, touches lots of points of interest and it's nice that one could get back to the slides and refresh their memory when needed - The exercises are very helpful, the whole project setup and environment is great. - The teacher seems very knowledgeable Cons: - I had to use 1.5 speed in order to understand what the teacher is saying. Maybe their microphone was faulty as well, sometimes the sound semed to have a lot of bass or I don't know. - The theory from the begining of coroutines section was a bit strange. Like they tried to explain for total beginners but I'd have liked if this was explained for someone with a background in programming. For example, I'd have understood faster if they began explaning since the beginning on which thread runs X thing and if the vocabulary was more technical. I got it in the end but at first I felt the need to jump into some youtube videos of the creator of coroutines where he gives some presentations and it was clearer there. Thank you for your work and keep producing quality stuff, I wish you best of luck with your next course.

By Daniel Campbell on 3/21/2024

This course is very well designed course. Lukas Lechner teaching skills is good, he make the complex concept become simple and easy to comprehend. I think it would be great that he can add another module about testing with Flow. (5/5)

By Karen Forde on 2/22/2024

This course is an excellent deep-dive into Coroutines and Flows, really explained in depth and with accessible language that made the course easy to follow - I really found the pancake analogy a brilliant and insightful way to explain how the buffer works for example :) Thanks Lukas!

By Tobias Reich on 8/8/2023

Great course. More detailed than I even hoped for but I love it. Only "negative" thing is the speed. I played the videos in 1.25x or even 1.5x the speed. But that might be my personal preference. Thanks for the course. Worth every cent / minute of my time!

By Anastasiya Barska on 7/15/2023

Fantastic course, well structured, updated with the latest changes that took place after initial publishing. After all the free videos from JetBrains and Google that positioned coroutines as simple and intuitive, finally there is a complete guide that explains why they never work as expected. And applause for the section about the exception handling

By Harsh Lakhani on 3/3/2023

Lucas, you are simply amazing. Perfect course! Great content! Explanation with use cases! I do recommend for every Android developer even if you know coroutine and flow since this is going to be a good refresher course. I could have written more if I had not running out of time. Thanks.

By Suleman Khan on 1/10/2023

Really great structured course, if you want to master coroutines and flows Lukas explains every concept in depth and after completing this course you will have in depth knowledge of coroutines and flows Waiting for some new course from Lukas, just one thing to improve in this course about subtitles, udemy auto generated subtitles are not that much good, so it would be good if you can add subtitles from your end Rest thankyou very much for making this course It really helped me to improve my android skills.

Showing all 10 reviews on CourseDuck

Read all 2,254 reviews on Udemy

icon
Quality Score

No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 90 / 100