I just got back from the first-ever Kotlin-focused conference, KotlinConf 2017. The two-day event included talks from the big names in Kotlin - like Andrey Breslav, Roman Elizarov, and Dmitry Jemerov - plus lots of fantastic presentations from a variety of developers in the community.
The presentations were all recorded, and are available for your online viewing pleasure. In the meantime, I wanted to share my top takeaways with you, so here they are!
1. Coroutines are Production-Ready
The Kotlin team made it very clear - coroutines are ready for you to use in your production applications. Yes, they’re still in the
kotlinx package. They’re still marked as “experimental”. But they’re here for the long-term, and they’re already being used successfully in a variety of solutions, such as JetBrains’ own Ktor project.
So, don’t confuse “experimental” with “unstable”. There might be a small amount of shifting before they’re pulled out of
kotlinx, but they’re ready for you now, and your feedback about them will be very valuable to move them forward.
You absolutely must watch Roman’s two talks:
The state machine implementation was especially fascinating. I’ll link to those videos once they’re available.
2. Multiplatform is Major
All of this means that Kotlin can be used across your entire stack if you wanted. When you do that, you’ll probably want to share some code across platforms - for example, you might want to make your model objects available to both servers and clients, without having to duplicate that code. The Kotlin team is excited about this feature, and they seem committed to making Kotlin available everywhere.
To read more about multiplatform projects, you can see the official reference. To see a demo, check out the code for the KotlinConf app.
3. Pick a Style Guide
As you probably know, there’s a short Coding Conventions document in the official Kotlin language reference.
At KotlinConf, the Android team shared their official style guide for Kotlin. This guide is quite a bit more detailed, covering styling issues, arrangement of file contents, naming conventions, and so on. So far, almost all of this guide appears to be applicable to Kotlin development on any platform, not just Android.
The Kotlin team also shared a new Kotlin Style document, which covers some similar ground, but also includes a lot of unique content here that covers specific uses of things like scope functions. My understanding is that this document is the draft for the official coding conventions document above. That makes me wonder if the issues-based style guide on Github is being deprecated, or if that’s going to be the preferred way to add to the style guide.
In any case, we’ve got a few style guides out there now, so it’d be worth reading over each of them.
Lots of Other Stuff
Naturally, I learned a ton of other things from all of the presentations that I attended, like:
- How to make my own Android linting rules
- How to contribute to the Kotlin project
- How to speed up my Gradle builds
- How Machine Learning is going to eat up programming jobs
Congrats to JetBrains on a fantastic event! All of the talks were outstanding, and it was also fun just getting a chance to brush shoulders with other Kotlin developers.You can watch all of the KotlinConf sessions online.
Did you attend KotlinConf? What were your top takeaways?