
This is an introduction to show what this course is all about.
Requirements needed to complete this course
This video explains what coroutines are and why we should use them over RxJava
Compare global scope and runBlocking in Kotlin coroutines, and explain Life-Cycle scope and model scope, with insights for Android development.
In this lecture i am explaining what jobs are, how they work and how they work in a hierarchy
In this lecture, i'm talking about what dispatcher are, types of dispatchers and when to use which one. Also there is some coding to show how to use them and switch between them.
In this video i am explaining what suspend functions are and when&how to use them
In this lecture, i'm talking about async/await structure and do some coding to show how it works.
In this lecture i talk about what flows are, when to use them. And then of course make some coding.
In this lecture i'm showing how to use flow map operator
In this lecture i'm showing how to use filter operator.
In this lecture i'm showing how to use buffer operator
Discover how Kotlin channels enable inter-coroutine communication by creating a channel, sending items from a grocery list like apple, milk, bread, peanuts, and receiving them one by one.
Explore the default unbuffered channel in Kotlin coroutines, where send and receive suspend until the counterpart invokes them, demonstrated with a shopping list and grocery basket example.
Explore buffered channels in Kotlin coroutines with a capacity of one, showing that sends can proceed without suspension until the buffer fills and producer and consumer logs illustrate the flow.
Learn how a conflated channel in Kotlin coroutines overrides previous values, letting the channel hold only the most recent item; the receive method yields the last value.
Learn how receive channels produced with the produce keyword return a one-way channel you can only read from, and see how the code prints shopping list items from it.
Explore the main Android project architecture using MVVM, featuring repository, viewmodel, and model layers, a country population API service, and a recycler adapter for displaying yearly figures.
Explore how to start with suspend functions in your model and learn why network and database calls should run as suspend functions to avoid blocking the app.
Explore how to use lifecycleScope and launchWhenStarted in an activity to safely collect population data via stateful flows and update a recycler view.
In this project intro, we build a real-time UI that streams a list of universities in the United States using Kotlin flows, showing items one by one.
Explore the kotlin coroutines based project architecture by building a repository layer with a university API, a university service, and a data model, using a suspend function to fetch universities.
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.