{"id":377072,"date":"2023-07-31T15:08:53","date_gmt":"2023-07-31T14:08:53","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=377072"},"modified":"2023-07-31T15:14:14","modified_gmt":"2023-07-31T14:14:14","slug":"update-on-the-name-of-kotlin-multiplatform","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/zh-hans\/kotlin\/2023\/07\/update-on-the-name-of-kotlin-multiplatform","title":{"rendered":"Update on the Name of Kotlin Multiplatform"},"content":{"rendered":"\n<p><strong>TL;DR<\/strong>: To resolve the long-standing issues of naming inconsistency and abbreviation confusion that have puzzled many Kotlin developers over the past two years,<strong> we are deprecating the \u201cKotlin Multiplatform Mobile\u201d (KMM) product name. From now on, \u201cKotlin Multiplatform\u201d (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.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The origin of Kotlin Multiplatform<\/h2>\n\n\n\n<p>Kotlin Multiplatform was announced at <a href=\"https:\/\/blog.jetbrains.com\/zh-hans\/kotlin\/2017\/11\/kotlinconf-keynote-recap\" target=\"_blank\" rel=\"noreferrer noopener\">KotlinConf 2017<\/a> under the name &#8220;Kotlin Multiplatform Projects&#8221;, and it originally supported the JVM, Native, and JS targets. We quickly garnered a number of early adopters who began using the abbreviations &#8220;KMP&#8221; and, less frequently, &#8220;MPP&#8221;. Until 2020, the technology was in the experimental stage, and the team was shaping it based on feedback from these early adopters.<\/p>\n\n\n\n<p>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 \u201cKotlin Multiplatform Mobile\u201d, introduced the abbreviation KMM for it, and announced its <a href=\"https:\/\/blog.jetbrains.com\/zh-hans\/kotlin\/2020\/08\/kotlin-multiplatform-mobile-goes-alpha\" target=\"_blank\" rel=\"noreferrer noopener\">Alpha release<\/a>. Along with that, we also released the <a href=\"https:\/\/plugins.jetbrains.com\/plugin\/14936-kotlin-multiplatform-mobile\" target=\"_blank\" rel=\"noreferrer noopener\">Kotlin Multiplatform Mobile plugin for Android Studio<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The problem<\/h2>\n\n\n\n<p>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 &#8220;KMP&#8221;, resulting in an ecosystem with multiple names \u2013 Kotlin Multiplatform and Kotlin Multiplatform Mobile \u2013 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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The solution<\/h2>\n\n\n\n<p>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 \u201cKotlin Multiplatform Mobile\u201d product name.<\/p>\n\n\n\n<p><strong>From now on, \u201cKotlin Multiplatform\u201d is the preferred term when referring to the Kotlin technology for sharing code, regardless of the combination of platforms being discussed.<\/strong><\/p>\n\n\n\n<p>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 <a href=\"https:\/\/www.jetbrains.com\/lp\/compose-multiplatform\/\" target=\"_blank\" rel=\"noreferrer noopener\">Compose Multiplatform<\/a>, which now supports Android, desktop, iOS (Alpha), and web (Experimental), you gain more freedom and can opt to share 100% of your codebase \u2013 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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Moving forward together<\/h2>\n\n\n\n<p>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&#8217;s development and growth.<\/p>\n\n\n\n<p>We encourage you to adopt the name &#8220;Kotlin Multiplatform&#8221; (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.<\/p>\n","protected":false},"author":1130,"featured_media":377073,"comment_status":"closed","ping_status":"closed","template":"","categories":[956],"tags":[],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/kotlin\/377072"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/users\/1130"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/comments?post=377072"}],"version-history":[{"count":8,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/kotlin\/377072\/revisions"}],"predecessor-version":[{"id":377092,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/kotlin\/377072\/revisions\/377092"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media\/377073"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=377072"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/categories?post=377072"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/tags?post=377072"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/cross-post-tag?post=377072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}