I had the great opportunity to visit this year's KotlinConf in Amsterdam, which took place from the 3rd to 5th of October 2018. In this post, I would like to give a short recap about the conference and point out some talks you should take a look into in case you are interested in Kotlin and its new upcoming features. Almost all talks are already uploaded and can be viewed on YouTube.
The focus of this conference was from my perspective heavily focused on the new upcoming features coming with Kotlin 1.3, and JetBrains, in fact, has posted an announcement at the beginning of the conference to encourage everyone to try out the new release candidate of Kotlin.
The biggest feature released in Kotlin 1.3 is the final introduction of coroutines which, until now, was just an experimental feature. They introduce an elegant approach for non-blocking and asynchronous programming in Kotlin which otherwise would be done with threads, callbacks, futures/promises or Reactive Extensions, which all have their benefits and drawbacks. A great introduction and a deep-dive into this new language feature was presented by Venkat Subramariam in his talk Exploring Coroutines in Kotlin. His presentation about coroutines involved a lot of live-coding which helped to understand the behavior of coroutines and continuations. His talks are always worth watching!
A more practical introduction about how to use coroutines on Android was made by Chris Banes and Florina Muntenescu. Chris’ talk Android Suspenders, which I, unfortunately, wasn't attending, focused on the best practices of using coroutines in an Android app and how to move away from RxJava. In her talk Shaping Your App's Architecture with Kotlin Florina showed how they have constructed the architecture of their app Plaid with respect to the new features of Kotlin and the Android Architecture Components. I really enjoyed seeing the overall modularization along with the reasoning behind their decisions. Also how they use suspension functions up to the data-source level of their architecture.
Another talk I would like to point out is 10 tips to make libraries Kotlin-friendly by Kyle Thomson who speaks about design decisions when writing Java APIs, which help to improve the usability of your own libraries. I wasn't expecting too many new things in this talk but I was proven wrong and I learned some pretty nasty pitfalls you can step into when writing a language-agnostic API.
The last and very entertaining session was presented by Anton Keks who did his second iteration of the annual Kotlin puzzlers. He showcased 16 Kotlin code snippets with strange behaviors and asked the audience why they behave like they do. Although a lot of these snippets are unlikely to reproduce in the daily use of Kotlin, it shows a couple of language features which could be misused especially when starting to learn the language.
I hope this short conference recap will come handy when deciding on what to watch from the conference program. I really enjoyed visiting the conference and I'm looking forward to next year’s event.