長らくKotlin界隈でたびたび混乱していた KMM(Kotlin Multiplatform Mobile) と KMP(Kotlin Multiplatform) がついに終止符が打たれましたね
KMM(Kotlin Multiplatform Mobile)廃止です👋
📣 Update on the name of Kotlin Multiplatform
— Kotlin by JetBrains (@kotlin) July 31, 2023
From now on, “Kotlin Multiplatform” (KMP) is the preferred term when referring to the Kotlin technology for sharing code, regardless of the combination of platforms being discussed.
We are deprecating the “Kotlin Multiplatform…
しかし「KMM廃止」と言うと誤解を招きすぎるので、正しくいうと「KMMという名称をやめ、ターゲットの組み合わせに関係なく、Kotlin テクノロジーを指すものを KMP に統一しましょうね」ということ。
しかしそもそもKMPとKMM、何が違うのよ?
KMP(Kotlin Multiplatform) と KMM(Kotlin Multiplatform Mobile) の違い
KMP と KMM の違いを説明する前に、それぞれについてまとめました。
KMP(Kotlin Multiplatform) とは
そもそも KMP とは、JetBrains社で開発されているプログラミング言語 Kotlin を利用して、クロスプラットフォームの開発を簡素化するように設計された技術やそのエコシステム全体のことを指します。
※ 出典 https://kotlinlang.org/docs/multiplatform.html
この KMP を利用して開発されるプロジェクトのことを Kotlin MPP(Kotlin Multiplatform Project) と呼びます。
では KMM(Kotlin Multiplatform Mobile) とはなにか?
KMM(Kotlin Multiplatform Mobile) とは
KMM とはiOSやAndroidなど、モバイルアプリケーション開発に特化した機能や技術を KMP を使って実現させたものになります。

※ 出典 It's Time for Kotlin Multiplatform Mobile by Ekaterina Petrova
じゃあなぜ混乱したの?
答えは Kotlin Blog: Update on the Name of Kotlin Multiplatform に書いてあります。
そもそも KMP(Kotlin Multiplatform) は、 KotlinConf 2017で発表され、当初は JVM、ネイティブ、および JS をターゲットにサポートしていました。しかし2020年 iOS と Android の間のコード共有に焦点を移したことをきっかけに、多くのモバイル開発者を惹きつけました。
その際、多くのモバイル開発者のフィードバックやサポートの向上、さらに将来の改善に備えることを目的に iOS と Android の間のコード共有に関連する Kotlin Multiplatform のすべてを KMM(Kotlin Multiplatform Mobile) と総評したことでその結果 Kotlin Multiplatform と Kotlin Multiplatform Mobile という複数の名前と、略語 KMP、KMM、MPP を持つエコシステムが誕生しました。
名前や略語が複数検出されることで複雑になっただけでなく、 KMP(Kotlin Multiplatform) そのものが、モバイル開発のためのものであるという誤解につながりました。
さいごに
実際名称が複数あることで KMM = KPM と誤解することは少なからずあったと思います。iOS や Android で利用されることが多い KMP ですが、Webも含めて利用を検討していくことで KMP(Kotlin Multiplatform) が求めた理想的な活用に繋がっていくんじゃないかと期待します。