In this workshop, you’ll learn everything you need to know to become productive with coroutines in Kotlin. We’ll start with the basics of asynchronous programming, its differences from blocking code, and the concepts of suspending functions and coroutines. We’ll explore coroutine contexts, concurrent decomposition of work via futures (represented by the Deferred type), and structured concurrency.
The second part of the workshop will be devoted to Kotlin Flows. Together, we’ll study how Kotlin Flows are designed on a basic level, discuss their typical usage patterns and the differences with other communication mechanisms like Channels, and even peek into some of their implementation details. In the process, we’ll see how they enable you to write safe, reliable, and leak-free concurrent systems. We’ll also talk about how they relate to and incorporate ideas from reactive extensions and reactive streams, and how they can be used together.
Svetlana and Sebastian will be leading you throughout the workshop. Roman, the original creator of Kotlin coroutines, will be available throughout to provide in-depth detail and answer your questions.
By the end of this workshop, you’ll have enhanced your coroutines-related vocabulary, understand how to spot and avoid common problems, and will be able to effectively and confidently use coroutines in your own projects.