Kotlin
A concise multiplatform language developed by JetBrains
Kotlin Multiplatform이 안정화되어 이제 프로덕션에서 사용할 수 있습니다
오랫동안 기다리시던 소식을 전해 드립니다. 개발자가 네이티브 프로그래밍의 이점을 유지하면서 플랫폼 간에 코드를 공유할 수 있도록 하기 위해 JetBrains가 구축한 오픈 소스 기술인 Kotlin Multiplatform이 안정화 버전이 되었으며 이제 프로덕션에 사용할 준비를 완벽하게 마쳤습니다.
Kotlin Multiplatform(KMP)의 발전 과정과 이를 통해 개발 프로세스를 간소화하는 방법, 이 기술을 최대한 활용할 수 있도록 도와주는 교육 자료에 대해 알아보세요.
자신 있게 원하는 방식으로 코드를 공유하세요
유연성과 적응성에 중점을 두고 설계된 Kotlin Multiplatform(KMP)은 크로스 플랫폼 개발과 네이티브 개발 간의 경계를 허뭅니다. 이를 통해 개발자는 원하는 만큼 코드를 재사용하고, 필요에 따라 네이티브 코드를 작성하며, 공유 Kotlin 코드를 모든 프로젝트에 원활하게 통합할 수 있습니다.
처음 출시된 이후 KMP는 그 유연성 덕분에 Netflix, Philips, McDonald’s, 9GAG, Baidu 등 많은 유수 기업의 관심을 끌었습니다. 이미 많은 팀이 점진적으로 통합 가능하며 도입 시 위험도가 낮은 KMP의 이점을 활용하고 있습니다. 어떤 팀은 기존 Kotlin 코드에서 분리된 매우 중요한 부분을 공유하여 앱의 안정성을 개선합니다. 다른 팀은 앱 품질을 저하시키지 않으면서 최대한 많은 코드를 재사용하는 데 목표를 두고, 기본 UI를 유지하면서 모바일, 데스크톱, 웹, TV에서 모든 애플리케이션 로직을 공유합니다.
KMP 알파 출시 이후 프로덕션에서 널리 사용되면서 JetBrains는 광범위한 피드백을 수집하고 다음을 포함하여 안정화 버전에서 더 나은 멀티플랫폼 개발 환경을 제공하기 위해 기술을 개선하고 있습니다.
엄격한 호환성 보장
Kotlin Multiplatform 기술의 핵심에는 컴파일러 지원, 언어 기능, 라이브러리 API, IDE, 빌드 도구와 같은 많은 부분이 있습니다. 이 모든 요소가 가장 널리 사용되는 코드 공유 사용 사례를 반영하여 Kotlin 1.9.20에서 안정화되었습니다. ‘안정화’란 엄격한 호환성 규칙에 따라 해당 부분을 개선하여 사용자가 해당 코드에서 마음 놓고 사용할 수 있다는 의미입니다.
이러한 핵심 요소뿐만 아니라 KMP에는 현재 작업이 진행 중인 한층 발전된 기능도 있습니다. expect/actual 클래스는 이러한 기능의 예입니다(Kotlin 1.9.20에서 완전히 안정화된 expect/actual 함수와 혼동하지 마세요). 이러한 기능은 명시적으로 안정화되지 않았다고 표시되며 사용할 수 있게 되면 Kotlin에서 알려 드릴 예정입니다. 프로젝트에서 이러한 기능을 사용할지 여부에 대해 현명한 판단을 내리려면 실험적 단계임을 나타내는 경고와 해당 문서를 잘 살피세요.
사용자의 빌드 설정 경험 개선
프로젝트 설정과 유지 관리를 단순화하기 위해 디폴트 계층 구조 템플릿을 도입했습니다. Kotlin Gradle 플러그인의 이 새로운 기능은 널리 사용되는 시나리오에 맞게 Kotlin 소스 집합을 자동으로 구성하고 일반적인 빌드 스크립트에서 상용구의 양을 줄입니다.
빌드 구성 문제와 오류를 진단하는 데 도움이 되도록 KMP는 안정화 버전에서 몇 가지 개선 사항을 제공합니다.
- Kotlin Gradle 플러그인에는 약 50개의 진단 기능이 추가되어 일반적인 빌드 문제를 발견하고 해결 방법에 대한 빠른 팁을 제공합니다.
- Xcode에서 Gradle 오류가 보다 효과적으로 출력되어 프로젝트의 네이티브 부분에서 발생하는 빌드 문제를 더 쉽게 발견할 수 있습니다.
빌드 및 런타임 성능 개선
기타 안정성 및 견고성 개선 외에도 JetBrains는 KMP의 성능을 지속적으로 개선하고 있습니다.
- Gradle 구성 캐시 지원은 구성 단계의 결과를 후속 빌드에 재사용하여 빌드 프로세스의 속도를 높입니다.
- Kotlin/Native의 사용자 지정 메모리 할당자 테스트 버전은 Kotlin/Native 메모리 관리자의 런타임 성능을 높여줍니다.
- 실험 중인 새로운 ‘klib’ 아티팩트의 증분 컴파일은 Kotlin/Native 컴파일 속도를 높입니다.
- Kotlin/Native 컴파일러 캐시 관리를 Kotlin Gradle 플러그인에서 컴파일러로 이동하면 컴파일타임과 컴파일러 캐시 유연성이 더욱 향상됩니다.
이러한 모든 개선에 힘 입어 Kotlin Multiplatform은 가장 보수적인 사용 시나리오에서도 Android, iOS, 데스크톱(JVM), 서버 측(JVM) 및 웹 전반에서 프로덕션 코드를 공유하는 데 아무 걸림돌 없이 사용할 수 있습니다.
성장하는 Kotlin Multiplatform 에코시스템의 힘을 활용하세요
Kotlin Multiplatform의 발전은 기술 자체에만 국한되지 않고 전 세계 수천 명의 Kotlin 개발자가 육성하며 번성하고 있는 에코시스템으로 확장됩니다. 베타 이후 KMP 라이브러리의 수가 배가되어 네트워킹, 데이터 스토리지, 산술, 분석 등을 위한 다양한 도구가 제공됨에 따라 안심하고 빠르게 앱을 개발할 수 있게 되었습니다.

Google의 Android 팀은 실험적인 Jetpack 라이브러리의 멀티플랫폼 버전을 제공하여 KMP 사용자를 계속 지원하고 있으며 이미 Collections, DataStore, Annotations 및 Paging 라이브러리를 Kotlin Multiplatform과 호환되도록 만들었습니다.
KMP 에코시스템은 또한 iOS 개발자 경험을 위한 다양한 도구도 제공하며, 특히 Touchlab의 SKIE가 눈에 띕니다. SKIE는 중요한 Kotlin 타입을 서로 연결하고 원활한 코루틴 상호 운용성을 구현하는 Swift 친화적인 API 레이어를 제공하는 Swift 코드를 생성합니다.
Compose Multiplatform으로 더욱 자유롭게 코드를 공유하세요
JetBrains의 최신 선언적 크로스 플랫폼 UI 프레임워크인 Compose Multiplatform은 끊임없이 확장되는 KMP 에코시스템에서 중요한 부분을 차지합니다. Compose Multiplatform을 사용하여 이제 완전한 코드 공유의 유연성을 누릴 수 있습니다. 프로젝트 및 팀의 요구 사항에 따라 로직의 한 부분, 모든 애플리케이션 로직 또는 로직과 UI 모두를 공유하세요.

Android 및 데스크톱(JVM)용 Compose Multiplatform은 이미 안정화 단계이며, iOS에 대한 지원은 현재 알파 단계이고 웹(Wasm) 지원은 실험적 단계입니다.
Kotlin Multiplatform의 미래 살펴보기
JetBrains는 Kotlin을 플랫폼 간 코드 공유를 위한 최고의 도구로 만들기 위해 계속해서 Kotlin을 사용한 멀티플랫폼 개발을 개선하고 있습니다.
- 핵심 Kotlin Multiplatform 기술에 대한 향후 업데이트를 통해 Kotlin에서 Swift로의 직접적인 상호 운용성과 SwiftPM 지원을 포함해 iOS 개발자 경험이 개선될 것입니다.
- iOS용 Compose Multiplatform의 다음 목표는 2024년 베타 지원입니다.
- JetBrains는 KMP를 통한 현대적 웹 개발을 촉진하기 위해 Kotlin/Wasm을 적극적으로 개발하고 있으며, 내년에 웹용 Compose Multiplatform(Wasm)의 알파 버전을 제공한다는 목표를 갖고 있습니다.
이게 전부가 아닙니다. 앞으로 몇 주 동안 Kotlin Multiplatform 도구의 진화에 관한 흥미로운 발표가 있을 예정이니 계속 주목해 주세요!
Kotlin Multiplatform 시작하기
포괄적이고 사용자 친화적인 교육 자료를 이용해 여정을 시작하세요.
Kotlin Multiplatform 웨비나 11월 시리즈에 참여하여 JetBrains 전문가로부터 직접 인사이트을 얻으세요! Kotlin Multiplatform 기능을 살펴보고, 네이티브 UI와 공유 UI를 모두 사용하여 KMP 앱을 빌드하고, iOS 개발을 위한 팁과 요령을 알아보세요.
새로운 Kotlin Multiplatform 개발 포털에서 Kotlin Multiplatform 및 Compose Multiplatform을 사용하여 앱을 빌드하기 위한 모든 측면을 다루는 상세한 문서, 시작 가이드 및 단계별 튜토리얼을 제공합니다.
게시물 원문 작성자
Subscribe to Kotlin Blog updates
Discover more
Kotlin Multiplatform が安定版および本番対応になりました
ネイティブプログラミングのメリットを維持しながら複数プラットフォーム間でコードを共有できる JetBrains のオープンソーステクノロジー「Kotlin Multiplatform」が待望の安定版となり、本番環境で 100% 使用できるようになりました。
Kotlin Multiplatform(KMP)の進化とそれに伴う開発プロセスの合理化、およびこのテクノロジーを最大限に活用できるように提供されている教材の詳細をお読みください。
開発者の条件に合わせて確実にコードを共有
柔軟性と適合性を重視して設計された Kotlin Multiplatform(KMP)により、クロスプラットフォーム開発とネイティブ開発の境界が柔軟になります。 そのため、開発者は好きなだけコードを再利用し、必要に応じてネイティブコードを記述し、あらゆるプロジェクトに共有の Kotlin コードをシームレスに組み込むことができます。
KMP の初回リリース以来、Netflix、Philips、McDonald’s、9GAG、Baidu などの多数の有名企業がその柔軟性に魅了されています。 すでに多くのチームが段階的に統合できる KMP の機能と採用リスクの低さを活用しています。 分離された既存の Kotlin コードの重要な部分を共有してアプリの安定性を改善しているチームもいれば、 アプリの品質を損なわずにできるだけ多くのコードを再利用することを目標に掲げ、ネイティブ UI を維持しながらすべてのアプリケーションロジックをモバイル、デスクトップ、ウェブ、TV の間で共有しているチームもいます。
KMP はアルファリリースから本番環境で広く使用されているため、JetBrains は大量のフィードバックを収集してテクノロジーを改良し、以下を含む安定版でのマルチプラットフォーム開発エクスペリエンスを向上させることができました。
厳格な互換性保証
Kotlin Multiplatform テクノロジーはコンパイラーのサポート、言語機能、ライブラリ API、IDE、ビルドツール一式などの多数の要素で構成されています。 これらすべてはごく一般的なコード共有のユースケースに対応しており、Kotlin 1.9.20 では安定しています。 「安定版」とは、このような要素を厳格な互換性ルールに従って進化させることを意味しています。そのため、ユーザーはこのような要素をコードで安心して使用することができます。
KMP には基本要素だけでなく、現在も開発が続けられているさらに高度な要素もあります。 このような機能の例には expect/actual クラスが挙げられます(Kotlin 1.9.20 で完全に安定した expect/actual 関数とは異なります)。 このような機能は明示的に非安定扱いとなっており、使用しようとすると Kotlin がその旨を通知します。 プロジェクトでこういった機能を使用するかどうかを十分な情報を元に判断するため、実験的機能の警告と対応するドキュメントに注意するようにしてください。
ビルドセットアップのユーザーエクスペリエンスの向上
プロジェクトのセットアップと保守を単純化するため、デフォルトの階層テンプレートを導入しました。 Kotlin Gradle プラグインのこの新機能によって Kotlin ソースセットを一般的なシナリオ向けに自動的に構成し、典型的なビルドスクリプトに含まれるボイラープレートの量を減らすことができます。
ビルドの構成ミスとエラーを診断できるよう、KMP の安定版では以下の改善を行っています。
- およそ 50 個の診断機能が Kotlin Gradle プラグインに追加され、一般的なビルドの問題を検出し、修正方法についての簡単なヒントが提供されるようになりました。
- Xcode における Gradle エラーの出力の改善により、プロジェクトのネイティブ部分にあるビルドの問題が検出しやすくなりました。
ビルドと実行時のパフォーマンス改善
安定性と堅牢性に関する他の改善点に加えて、以下のような KMP のパフォーマンス改善にも引き続き取り組んでいます。
- Gradle 構成キャッシュのサポートによって構成フェーズの結果を後続のビルドで再利用することで、ビルドプロセスの速度を向上させています。
- Kotlin/Native のカスタムメモリアロケーターのプレビューによって Kotlin/Native メモリマネージャーの実行時パフォーマンスを改善しています。
- 新しい実験的な `klib` アーティファクトのインクリメンタルコンパイルによって Kotlin/Native コンパイルの速度を向上させています。
- Kotlin/Native コンパイラーのキャッシュ管理を Kotlin Gradle プラグインからコンパイラーに移動することにより、コンパイル時間とコンパイラーキャッシュの柔軟性をさらに改善できるようにしています。
これらすべての進歩のおかげで、どんなに保守的な使用シナリオであっても、Android、iOS、デスクトップ(JVM)、サーバーサイド(JVM)、ウェブにわたる本番環境でのコードの共有に Kotlin Multiplatform をためらうことなく使用できます。
成長を続ける Kotlin Multiplatform エコシステムの力を使用する
Kotlin Multiplatform の進化はテクノロジーそのものに限らず、世界中の数千もの Kotlin 開発者が開拓するエコシステムの繁栄にも及んでいます。 ベータ版以降、KMP ライブラリの数は倍増しており、ネットワーキング、データストレージ、算術、解析など、迅速かつ確実なアプリ開発を可能にする多様なツールが提供されています。

Google の Android チームは KMP ユーザーを引き続きサポートしており、実験的な Jetpack ライブラリのマルチプラットフォームバージョンを提供しています。また、Collections、DataStore、Annotations、Paging ライブラリはすでに Kotlin Multiplatform に対応済みです。
KMP エコシステムは iOS 開発者エクスペリエンス向けのツールも広範に提供しており、中でも Touchlab の SKIE は注目に値します。 このツールは重要な Kotlin の型をブリッジする Swift 対応の API レイヤーを提供する Swift コードを生成し、シームレスなコルーチンの相互運用性を実現します。
Compose Multiplatform でさらに自由になったコード共有
Compose Multiplatform は JetBrains の最新の宣言型クロスプラットフォーム UI フレームワークであり、拡大し続ける KMP エコシステムの重要な構成要素です。 Compose Multiplatform を使うと、コード共有の柔軟性を最大限に活かすことができます。 プロジェクトとチームの要件に応じて、1 つのロジックだけを共有することも、アプリケーションロジック全体を共有することも、ロジックと UI の両方を共有することも可能です。

Android とデスクトップ(JVM)用の Compose Multiplatform はすでに安定版となっていますが、iOS のサポートは現在アルファ版であり、ウェブ(Wasm)のサポートは実験的です。
Kotlin Multiplatform の今後の展望
JetBrains は Kotlin によるマルチプラットフォーム開発の強化を続けており、このプラットフォームを複数のプラットフォーム間でコードを共有するための究極の選択肢にすることを目指しています。
- 将来的に基本的な Kotlin Multiplatform テクノロジーをアップデートすることで、Kotlin と Swift 間の直接的な相互運用性や SwiftPM のサポートなどを含め、iOS 開発者のエクスペリエンスを改善する予定です。
- iOS に関する Compose Multiplatform の次のマイルストーンは、2024 年にベータサポートを提供することです。
- JetBrains は KMP によるモダンなウェブ開発を容易にするために Kotlin/Wasm を活発に開発しており、ウェブ(Wasm)向けに Compose Multiplatform のアルファ版を来年リリースすることを目指しています。
しかも、それだけではありません。 今後数週間以内には Kotlin Multiplatform ツールの進化に関する発表が行われる予定です!
Kotlin Multiplatform を利用開始
豊富で分かりやすい教材を活用して Kotlin Multiplatform を使い始めましょう。
Kotlin Multiplatform ウェビナーの 11 月シリーズにご参加いただくと、JetBrains のエキスパートから直接インサイトを得られます! Kotlin Multiplatform 機能を詳しく見ながら、ネイティブおよび共有 UI を使って KMP アプリをビルドし、iOS 開発でのヒントとコツをご覧いただけます。
新しい Kotlin Multiplatform 開発ポータルには、Kotlin Multiplatform と Compose Multiplatform を使ったアプリのビルドに関わるあらゆる側面を取り上げた詳細なドキュメント、入門ガイド、およびステップバイステップ方式のチュートリアルが用意されています。
オリジナル(英語)ブログ投稿記事の作者:
Subscribe to Kotlin Blog updates
Discover more
Kotlin Multiplatform 已经稳定并且可以投入生产环境
Kotlin Multiplatform 是一项由 JetBrains 构建的开源技术,使开发者能够在跨平台共享代码的同时保留原生编程的优势。现在,这项技术取得了备受期待的进展,已经稳定并完全做好了投入生产环境的准备。
请继续阅读以详细了解 Kotlin Multiplatform (KMP) 的演变,它会如何简化您的开发流程,以及您可以获得哪些教育资源以充分利用这项技术。
信心满满地按照您的方式共享代码
Kotlin Multiplatform (KMP) 以灵活性和适应性为设计核心,模糊了跨平台与原生开发之间的界限。 它使开发者可以重用尽可能多的代码,根据需要编写原生代码,并将共享的 Kotlin 代码无缝集成到任何项目中。
自 KMP 首次发布以来,它的灵活性吸引了诸如 Netflix、Philips、McDonald’s、9GAG 和百度等许多知名公司。 许多团队都已经在利用 KMP 的逐步集成能力及其较低的采用风险。 其中一些团队会共享现有 Kotlin 代码中隔离的关键部分,从而提高应用的稳定性。 其他团队则致力于在不影响应用质量的情况下重用尽可能多的代码,在移动、桌面、Web 和电视端共享所有应用逻辑,同时保持原生 UI。
KMP 自 Alpha 版本以来便在生产中得到广泛使用,因此,JetBrains 能够收集到广泛的反馈并对技术进行了如下改进,以便在稳定版本中提供更出色的多平台开发体验。
严格的兼容性保证
Kotlin Multiplatform 技术的核心由许多部分组成,例如编译器支持、语言功能、库 API、IDE、构建工具等。 这些部分覆盖了最热门的代码共享用例,并且在 Kotlin 1.9.20 中得到稳定。 “稳定”意味着我们在改进这些部分时将遵循严格的兼容性规则,从而使您能够信心满满地将其用于您的代码。
除了核心之外,KMP 还有一些我们仍在继续开发的更高级部分。 expect/actual 类就是此类功能的一个示例(请勿与 expect/actual 函数混淆,它们在 Kotlin 1.9.20 中已完全稳定)。 此类功能被明确标记为非稳定,Kotlin 会在您使用它们时发出通知。 请注意实验性警告和相应文档,以便明智地决定是否要在项目中使用此类功能。
更出色的构建设置用户体验
为了简化项目设置和维护,我们引入了默认层次结构模板。 Kotlin Gradle 插件的这一新功能会针对热门场景自动配置 Kotlin 源集,并减少典型构建脚本中的样板代码量。
为了帮助您诊断构建错误配置和错误,KMP 在稳定版中提供了一些改进:
- Kotlin Gradle 插件中添加了约 50 项诊断,有助于检测常见的构建问题并提供有关如何修正这些问题的快速提示。
- 改进了 Xcode 中 Gradle 错误的输出,从而使项目原生部分中的构建问题更容易被发现。
构建和运行时性能改进
除了其他稳定性和稳健性改进之外,我们还在继续改进 KMP 的性能:
- Gradle 配置缓存支持可以通过在后续构建中重用配置阶段的结果来加快构建流程。
- Kotlin/Native 中的自定义内存分配器预览提升了 Kotlin/Native 内存管理器的运行时性能。
- 新的实验性 `klib` 工件增量编译可以加快 Kotlin/Native 编译速度。
- 将 Kotlin/Native 编译器缓存管理从 Kotlin Gradle 插件移至编译器可以进一步缩短编译时间和提高编译器缓存灵活性。
得益于上述各项进步,即使在最保守的使用场景中,用户也可以毫不犹豫地使用 Kotlin Multiplatform 在 Android、iOS、桌面 (JVM)、服务器端 (JVM) 和 Web 之间的生产环境中共享代码。
利用不断发展的 Kotlin Multiplatform 生态系统的力量
Kotlin Multiplatform 的发展不仅限于技术本身,还延伸到了由全球数千名 Kotlin 开发者共同培育的蓬勃生态系统。 自 Beta 版以来,KMP 库的数量已成倍增加,为网络、数据存储、算术、分析等领域提供了多样化的工具,助力快速和自信的应用开发。

通过提供实验性 Multiplatform 版本 Jetpack 库,Google 的 Android 团队正在继续为 KMP 用户提供支持,并且他们已经实现了 Collections、DataStore、Annotations 和 Paging 库与 Kotlin Multiplatform 的兼容。
KMP 生态系统还提供了一系列有助于提升 iOS 开发者体验的工具,其中由 Touchlab 打造的 SKIE 尤为突出。 它所生成的 Swift 代码提供了对 Swift 友好的 API 层,可桥接重要的 Kotlin 类型,并实现无缝式协程互操作性。
通过 Compose Multiplatform 获得更多代码共享自由
Compose Multiplatform 是由 JetBrains 打造的现代声明式跨平台 UI 框架,是不断壮大的 KMP 生态系统的重要组成部分。 借助 Compose Multiplatform,您现在可以体验到充分的代码共享灵活性。 共享一段逻辑、所有应用程序逻辑或同时共享逻辑和 UI,具体取决于您的项目和团队的要求:

Compose Multiplatform for Android 和适用于桌面 (JVM) 平台的 Compose Multiplatform 已经稳定,而对 iOS 的支持目前处于 Alpha 阶段,对 Web (Wasm) 的支持目前处于实验阶段。
探索 Kotlin Multiplatform 的未来
JetBrains 会继续增强 Kotlin 的多平台开发,旨在使其成为跨平台共享代码的理想选择:
- 未来的 Kotlin Multiplatform 核心技术更新将提升 iOS 开发者体验,包括 Kotlin 到 Swift 的直接互操作性和 SwiftPM 支持。
- Compose Multiplatform for iOS 的下一个里程碑将是在 2024 年推出的 Beta 支持。
- JetBrains 正在积极开发 Kotlin/Wasm 以促进 KMP 的现代 Web 开发能力,目标是明年提供 Compose Multiplatform for Web (Wasm) 的 Alpha 版本。
这还不是全部。 在接下来的几周内,准备好迎接有关 Kotlin Multiplatform 工具发展的一些激动人心的公告吧!
Kotlin Multiplatform 使用入门
借助我们广泛且人性化的教育资源开始您的旅程。
参加我们的 Kotlin Multiplatform 11 月系列在线讲座,直接从 JetBrains 专家那里获得见解! 探索 Kotlin Multiplatform 功能,使用原生和共享 UI 构建 KMP 应用,并探索 iOS 开发提示和技巧:
新的 Kotlin Multiplatform 开发门户提供了详细的文档、入门指南和分步教程,涵盖使用 Kotlin Multiplatform 和 Compose Multiplatform 构建应用的各方面内容:
本博文英文原作者:
Subscribe to Kotlin Blog updates
Discover more
Kotlin Multiplatform Is Stable and Production-Ready
In a highly anticipated move, Kotlin Multiplatform, an open-source technology built by JetBrains that allows developers to share code across platforms while retaining the benefits of native programming, has become Stable and is now 100% ready for use in production.
Read on to learn about the evolution of Kotlin Multiplatform (KMP), how it can streamline your development process, and what educational resources are available for you to get the most out of the technology.
(more…)
