Multiplatform

Update on the Name of Kotlin Multiplatform

Read this post in other languages:

TL;DR: To resolve the long-standing issues of naming inconsistency and abbreviation confusion that have puzzled many Kotlin developers over the past two years, we are deprecating the “Kotlin Multiplatform Mobile” (KMM) product name. From now on, “Kotlin Multiplatform” (KMP) is the preferred term when referring to the Kotlin technology for sharing code across different platforms, regardless of the combination of targets being discussed.

The origin of Kotlin Multiplatform

Kotlin Multiplatform was announced at KotlinConf 2017 under the name “Kotlin Multiplatform Projects”, and it originally supported the JVM, Native, and JS targets. We quickly garnered a number of early adopters who began using the abbreviations “KMP” and, less frequently, “MPP”. Until 2020, the technology was in the experimental stage, and the team was shaping it based on feedback from these early adopters.

In 2020, we shifted our focus to code-sharing between iOS and Android, the most common use case. We aimed to attract more mobile developers to Kotlin Multiplatform, use their feedback to enhance the technology, and prepare it for future improvements, including better support for other targets. To reflect this focus, we split everything in Kotlin Multiplatform related to code-sharing between iOS and Android into a separate product called “Kotlin Multiplatform Mobile”, introduced the abbreviation KMM for it, and announced its Alpha release. Along with that, we also released the Kotlin Multiplatform Mobile plugin for Android Studio.

The problem

While the Alpha release with the new Kotlin Multiplatform Mobile name garnered attention, it also led to confusion, as developers were uncertain about how to refer to technology that shared code beyond iOS and Android. This confusion was compounded by existing community content and libraries with names that included “KMP”, resulting in an ecosystem with multiple names – Kotlin Multiplatform and Kotlin Multiplatform Mobile – and the abbreviations KMP, KMM, and MPP. This not only complicated content discovery but also led to the misunderstanding that Kotlin Multiplatform was primarily for mobile code sharing.

The solution

To resolve the long-standing issues of naming inconsistency and abbreviation confusion that have puzzled many Kotlin developers over the past two years, we are deprecating the “Kotlin Multiplatform Mobile” product name.

From now on, “Kotlin Multiplatform” is the preferred term when referring to the Kotlin technology for sharing code, regardless of the combination of platforms being discussed.

KMP is excellent for sharing code across multiple platforms, not just iOS and Android. It enables you to share code with desktop and server-side as well. Moreover, we are actively developing Kotlin/Wasm to facilitate modern web development with Kotlin Multiplatform. When used alongside Compose Multiplatform, which now supports Android, desktop, iOS (Alpha), and web (Experimental), you gain more freedom and can opt to share 100% of your codebase – all in Kotlin. JetBrains aims to deliver further improvements for Kotlin Multiplatform and Compose Multiplatform, making this combo the ultimate choice for sharing code between platforms.

Moving forward together

We want to thank every content creator and library author in the Kotlin Multiplatform ecosystem. The hard work you put into building content and libraries is integral to KMP’s development and growth.

We encourage you to adopt the name “Kotlin Multiplatform” (KMP) in your existing and future content and libraries. This unified terminology will streamline the onboarding process for new users and help KMP evolve further. We value your efforts and thank you for your continued commitment.

image description