Even if you’re brand new to Kotlin, you might know that you can right-click any Java file and convert it automatically. Score! But wait, what are all these “!!” and why is the code littered with “?”. Sure, the code compiles, but how do you make the code not just compile but follow best practices? How do you get closer to making your code idiomatic?
In the third part of our series on learning the cool and idiomatic parts of Kotlin, we’re going to look at some intermediate Kotlin topics. We’re going to look at how inlining can improve the performance of higher-order functions as well as allow us to take advantage of type reification. Then we’ll take a look at how delegation can help us write dryer, more efficient, and more interesting properties with less boilerplate. Finally, we’ll dive into the magical world of asynchronous programming the Kotlin way with coroutines.