The Kotlin Cheatsheet: Getting to Idiomatic Kotlin
Status: submitted
Section: Full talk (35/45 minutes)
Technical level: Intermediate
Votes: +5
Your opinion is important to us! Rate this proposal
Abstract
You recently transitioned from a Java-heavy codebase to a Kotlin one, and you thought you were “doing Kotlin right” by using language features like extension functions, data classes, smart casting and so forth. Then slowly, the PR comments creep in about making your Kotlin code more “Kotlin-ey” and you enter the debates of “who wrote this better?” You begin to wonder, is the “Kotlin way” of doing things always better than the “Java way”? How do you make sure that your Kotlin code is clean, consistent and idiomatic?

In this talk, we will learn how we can improve our Kotlin code to be more idiomatic by going beyond the basics with Single expression functions, Delegated properties and Lazy, De-structuring declarations, Operator overloading, Sequences, Type aliases, Inline classes and more, while leveraging our existing knowledge of Java. With the help of practical examples straight from the Blinkist codebase, we will go over guiding principles or a “cheatsheet” to have in mind when working with Kotlin - one that I wish I had early on.



We will also learn how to apply the Kotlin Style Guide and use static analysis tools to help our teams be more happy and productive, as they help with code reviews and maintaining a healthy codebase. You will leave this talk with actionable tips and tools to make working with Kotlin an even better experience for yourself and your team, thus taking full advantage of what the language has to offer.
Speaker bio
Anita Singh is a Senior Android Engineer at Blinkist who recently moved to Berlin from Silicon Valley, where she lead mobile development at an early-stage startup. She transitioned from backend to Android development four years ago, and has never looked back! She is passionate about building beautiful and responsive apps, and making Android development more approachable for everybody.