Service API's written by various teams can wildly differ in style, even when libraries such as Spring bootstrap our apps. When we changed our code from Java to Kotlin we saw ample opportunity to design concise and consistent API’s.

I will share our best practices (with code examples) we discovered while making several services in a complex landscape. Kotlin’s set of features like data classes, extension functions, import aliases, coroutines, and others are uniquely placed to define your common language to fill the void between syntax and framework.

>>> The Path to Spring Fu (Nicolas Fränkel)

In recent years, there has been some push-back against frameworks, and more specifically annotations: some call them magic. Obviously, they make understanding the flow of the application harder.

Spring and Spring Boot latest versions go along this trend, by offering an additional way to configure beans with explicit code instead of annotations. It's called functional, because it moves configuration from objects to behavior, and it's based on Kotlin DSL.

This talk aims to demo a step-by-step process to achieve that. In the end, the demo application will run without any annotations at all using only declarative configuration, thanks to a new initiative called Spring Fu, also based on dedicated Kotlin DSL. This will allow you to use GraalVM to create a native image of the final JAR.

Are you tired of NullPointerExceptions?Do you wish to use lambdas, but you are stuck on an old JVM?Are you not ready to wait until 2022, just to be able to use the new and cool features on the JVM?Do you want to be freed from Oracle license changes?Have you always wanted to learn Kotlin, but you never had the opportunity?Now is your chance!

This workshop aims to give you an introduction into the wondrous world of Kotlin. We will start with a short presentation, followed by the actual workshop, which consists of a series of small assignments. Through these assignments we will explore the most important aspects of the Kotlin language and enables us to show where one can apply these. The workshop makes use of the JetBrains EduTools plugin, enabling us to provide a very natural and friendly environment for the participant to work in. Something very few programming workshops before this have been able to accomplish.

Programming experience is a pre. It is a Kotlin introduction; not a programming introduction.

We will be using an IntelliJ plugin called EduTools. Please have the following software installed before attending the workshop: