Kotlin/Native is a technology for compiling Kotlin code to native binaries which can run without a virtual machine. Kotlin/Native includes an LLVM-based backend for the Kotlin compiler and a native implementation of the Kotlin standard library.
Why Kotlin/Native?Kotlin/Native is primarily designed to allow compilation for platforms on which virtual machines are not desirable or possible, such as embedded devices or iOS. It is ideal for situations when a developer needs to produce a self-contained program that does not require an additional runtime or virtual machine.
Target platformsKotlin/Native supports the following platforms:
macOS
iOS, tvOS, watchOS
Linux
Windows (MinGW)
Android NDK
To compile Apple targets, macOS, iOS, tvOS, and watchOS, you need Xcode and its command-line tools installed.
See the full list of supported targets.
InteroperabilityKotlin/Native supports two-way interoperability with native programming languages for different operating systems. The compiler creates:
an executable for many platforms
a static library or dynamic library with C headers for C/C++ projects
an Apple framework for Swift and Objective-C projects
Kotlin/Native supports interoperability to use existing libraries directly from Kotlin/Native:
static or dynamic C libraries
C, Swift, and Objective-C frameworks
It is easy to include compiled Kotlin code in existing projects written in C, C++, Swift, Objective-C, and other languages. It is also easy to use existing native code, static or dynamic C libraries, Swift/Objective-C frameworks, graphical engines, and anything else directly from Kotlin/Native.
Kotlin/Native libraries help share Kotlin code between projects. POSIX, gzip, OpenGL, Metal, Foundation, and many other popular libraries and Apple frameworks are pre-imported and included as Kotlin/Native libraries in the compiler package.
Sharing code between platformsKotlin Multiplatform helps share common code across multiple platforms, including Android, iOS, JVM, web, and native. Multiplatform libraries provide the necessary APIs for common Kotlin code and allow writing shared parts of projects in Kotlin all in one place.
You can use the Create your first cross-platform app tutorial to create applications and share business logic between iOS and Android. To share UIs among iOS, Android, desktop, and web, complete the tutorial for Compose Multiplatform, JetBrains' declarative UI framework based on Kotlin and Jetpack Compose.
How to get startedNew to Kotlin? Take a look at Getting started with Kotlin.
Recommended documentation:
Introduction to Kotlin Multiplatform
Interoperability with C
Interoperability with Swift/Objective-C
Recommended tutorials:
Get started with Kotlin/Native
Create your first cross-platform app
Mapping primitive data types from C
Kotlin/Native as a dynamic Library
Kotlin/Native as an Apple framework
Last modified: 14 October 2024Kotlin/WasmKotlin for JavaScript