Using C & native platforms in Kotlin : Building a multi-platform advanced library

Salomon Brys

Kotlin/Multiplatform is an amazing tech which allows you to develop your business code once and deploy it to every mobile platform. However, to do things, you need to access APIs that are either provided by the platform in its native language (Obj-C, Swift) or as native libraries (C, C++, Rust).
In this live coding talk, we will see how to use different types of APIs in a Kotlin Multi-platform library that can be used on Kotlin/Multiplatform. Using Cryptography primitives as an excuse, we will see how to configure, compile, test and deploy a simple algorithmic library, and how to use it in a Kotlin/Multiplatform Mobile (KMM) project.
We will first demonstrate how to create a library with a native C dependency for the JVM, Android, Kotlin/Native & iOS, the Web, and more specifically to align JVM JNI, Kotlin/Native C-interop and JS WebAssembly.
Finally, we will explore how to use Swift iOS SDKs in conjunction with Kotlin Android SDKs to commonize advanced platform features, such as embedded cryptography.