Starting with what coroutines are and ending with building high level Android projects. All with MVVM Architecture


In this course we are going to start with what coroutines are, will look at all basic concepts like suspend, async / await structure , jobs, dispatchers. Then we are going to continue with advanced topics like flows and channels. Finally we are going to finish the course with building two Android applications matching industrial standards.

Also in each lecture, we’re going to implement some code on what we have just learned to solidify our knowledge.

My aim in this course is to give you a quick start on Kotlin coroutines in the beginning and finish at a master level. I will not only try to explain how these concepts work, i will also make sure that i am explaining when to use each one of these coroutine concepts.

As Kotlin is gaining more and more popularity each passing day and Google also revealed Kotlin as their preferred language, i think that learning Kotlin is now essential especially for Android developers. On the other hand, concurrent programming is being more and more essential as the applications get more complex. Coroutines is the best way to handle Concurrency and knowing how to use it probably will give you a couple steps of advantage. I hope i can help along the way.







Definition of Coroutines and Coroutines Basic Concepts

What are coroutines and why you should choose it over RxJava

Coroutine Scopes




Suspend Functions

Async / Await


Flows Basics and Use Cases

Map Operator

Filter Operator


Get Instant Notification of New Courses on our Telegram channel.


What is a channel and how it works!

Rendezveous(Default) Channels

Buffered Channels

Conflated Channels

Receive Channels and Produce

Coroutines On Industrial Level with an Example Android Application

Project Intro

Project Architecture

Start with suspend functions in your model!

The Viewmodel with StateFlow and Kotlin Result Type

The Activity with lifecycleScope and launchWhenStarted

Get the app

Building An App Using Flows and Coroutines

Project Intro

Project Architecture and building the repository

Implementing the viewmodel with a use case! And the Flow!

Implementing The Activity and Testing the Application

Get the app and Adios !