The async/await feature allows you to write the asynchronous code in a straightforward way, without a long list of callbacks. Used in C# for quite a while already, it has proven to be extremely useful. In Kotlin you have async and await as library functions implemented using coroutines.
A coroutine is a light-weight thread that can be suspended and resumed later. Very precise definition, but might be confusing at first. What ‘light-weight thread’ means? How does suspension work? This talk…