Multiplatform projects in Kotlin 1.3

RU / Day 2 / 15:30 / Track 1

Kotlin is primarily known as Android and JVM development language. But it supports not only these platforms: it can also be compiled into JavaScript and native code for different architectures. Such variety of compilers naturally brings about projects in which code is reused for different platforms.

Starting from version 1.2, experimental support of these multiplatform projects was added on the syntax level, in regards to tooling. This essentially means that Kotlin developers now can use same code on different platforms, all the while retaining their access to platform-specific API. This is an experimental feature, i.e. an area subject to frequent changes. In Kotlin 1.3 multiplatform project support was reworked significantly, especially on the design model level.

This talk deals with the concept of multiplatform projects in Kotlin in and of itself as well as changes in this concept since 1.3. So it could be interesting both to those who haven't even heard about this feature and those who already tried it in Kotlin 1.2.

We'll discuss:

  • what multiplatform projects are essentially, why do we need them and what they enable us to do;
  • how they look like on the part of build systems, what challenges appear there and how we solve them;
  • how to use such projects for Android and iOS apps development.