Kotlin
A concise multiplatform language developed by JetBrains
2024 年の Kotlin Multiplatform 開発ロードマップ
最近になり Kotlin Multiplatform の安定版が提供されたことで、世界中の開発チームがシームレスに安心して本番環境に Kotlin Multiplatform を導入できるようになりました。 しかし、これは KMP とそのエコシステムの始まりに過ぎません。 JetBrains は最高のクロスプラットフォーム開発エクスペリエンスを達成するため、2024 年中に Kotlin Multiplatform のコアテクノロジー、Compose Multiplatform、KMP ツール一式、KMP ライブラリにさらに多くの改善を加えることを目指しています。 現在計画している内容とそれらの優先順位を以下に掲載しています。
Compose Multiplatform
JetBrains は Compose Multiplatform をすべての対応プラットフォームで外観を統一し、美しくパフォーマンスに優れたアプリケーションを制作できるフレームワークに成長させることに取り組んでいます。 現在は主に Compose for iOS をベータ版にすることに注力していますが、それ以外の取り組みもあります。 具体的には以下のような計画があります。
- すべての Jetpack Compose コア API とコンポーネントをマルチプラットフォーム化する。
- iOS でのレンダリングパフォーマンスを改善する。
- Compose for iOS アプリでのスクロール操作とテキスト編集の動作を iOS ネイティブアプリと同等にする。
- あらゆる種類のリソースを共有するための共通 API を実装する。
- iOS とデスクトップのアクセシビリティ API と統合する。
- マルチプラットフォームナビゲーションに対応したソリューションを提供する。
上記の改善の多くは Compose for Desktop にも適用されます。 また、本番環境で Compose for Desktop を使用しているユーザーからのフィードバックを元に安定性の向上と開発に取り組んでいます。
Compose for Web の可能性、特に Wasm の可能性についても調査を続けており、 以下の機能を含めたアルファ版に昇格させることを直近の目標としています。
- 既存アプリの移植とすべての共通コードの再利用を可能にする。
- さまざまな画面のサイズ、向き、および解像度をサポートする。
- マウス、タッチスクリーン、物理キーボード、またはオンスクリーンキーボードからの入力をサポートする。
- パフォーマンスとバイナリサイズを改善する。
ツール
JetBrains は Kotlin Multiplatform の IDE での使い勝手を大幅に向上させるための取り組みを行っています。 具体的にはコアプラットフォームの調査や Kotlin IDE プラグインから K2 コンパイラーフロントエンドへの移行などだけでなく、すべての Kotlin Multiplatform のターゲットとコードベースを単一のツール(Fleet)に統合し、複数の異なる IDE を頻繁に切り替える必要性をなくすことを考えています。
Kotlin Multiplatform 開発での Fleet の使用に関するフィードバックを素早く何度も検討することで、開発エクスペリエンスを大幅に向上させるのに必要なものをすべて用意できるようにする予定です。 特に以下の部分でこれを達成することを見込んでいます。
- 共通コードのライブプレビューや視覚的なデバッグツールなどを含む、Compose Multiplatform のサポートの強化。
- IDE によるプロジェクト構成の支援。
- Multiplatform プロジェクト全体のデバッグエクスペリエンスの統一と強化。
Multiplatform の中心
Kotlin Multiplatform の一般的なシナリオの 1 つに、iOS ターゲットとのコードの共有が挙げられます。 JetBrains はコードベースで Kotlin Multiplatform フレームワークを使用する iOS 開発者の開発エクスペリエンスに的を絞りたいと考えています。
この部分では主に Kotlin から Swift への直接的なエクスポートに取り組んでいます。 これによって Objective-C のボトルネックが解消され、より幅広い Swift 言語のサポートやより自然な API のエクスポートが可能となります。 また、Kotlin ライブラリの作成者専用のツールをいくつか制作しているところです。 これらのツールは Kotlin API を Swift にエクスポートする際の互換性と使いやすさを改善するように設計されています。 ツールの構成にも細心の注意を払っています。 IDE とビルドシステムは開発者エクスペリエンスの重要な構成要素であるため、Swift Export のスムーズな統合を確実に実現することを目標としています。
他にも Kotlin/Native コンパイルを高速化する、CocoaPods の統合を強化する、SwiftPM によるフレームワークのエクスポートを新たにサポートする、などの取り組みがあります。
Kotlin Multiplatform アプリケーションのビルドセットアップを改善する方法の調査を継続することも計画しています。 Kotlin 1.9.20 では Gradle Multiplatform DSL に大規模な改善を施し、読み書きをより簡単に行えるようにしました。 今後も徐々に改善していく予定です。 また、使いやすさ、オンボーディング、IDE のサポートに的を絞った Amper という新しいプロジェクト構成ツールの実験も行っています。
ライブラリのエコシステム
Kotlin Multiplatform エコシステムは急速に成長しているため、ライブラリの下位互換性が非常に重要になっています。 下位互換性を確保するには JetBrains チームとライブラリ作成者の連携が不可欠です。 以下のように計画しています。
- klib 形式を改善してライブラリ作成者が JVM ライブラリの構築に関する知識を活用できるようにする。
- Kotlin Multiplatform ライブラリに JVM と同じコードのインライン化動作を実装する。
- マルチプラットフォームライブラリのパブリック API が互換性を損なう形で変更されないようにするツールを提供する。
KMP ライブラリの公開プロセスの改善も予定しています。 具体的には以下を計画しています。
- Mac マシンを使用せずに KMP ライブラリをビルドして公開できるようにする。
- KMP ライブラリを作成して公開するためのテンプレートと広範なガイドラインを提供する。
Kotlin Multiplatform は安定版になりましたが、大きな更新を計画しています。 しかし、ご安心ください。現在のフォーマットでビルドされたライブラリは Kotlin のバージョンが新しくなってもそのまま動作します。
詳細情報
- Kotlin Multiplatform が安定版および本番対応になりました
- Compose Multiplatform 1.5.10 – 使い始める絶好のタイミング
- Amper – ビルドツールのユーザーエクスペリエンス向上
- Kotlin Multiplatform のツール一式を備えた Fleet へようこそ
- Kotlin のロードマップ
オリジナル(英語)ブログ投稿記事の作者:
Subscribe to Kotlin Blog updates
Discover more
2024년 Kotlin Multiplatform 개발 로드맵
최근 Kotlin Multiplatform이 안정화되면서 이제 전 세계 개발 팀은 안심하고 원활하게 이를 프로덕션에 채택할 수 있게 되었습니다. 하지만 이는 KMP와 에코시스템의 시작일 뿐입니다. 최고의 크로스 플랫폼 개발 경험을 제공하기 위해 JetBrains는 2024년에 핵심 Kotlin Multiplatform 기술, Compose Multiplatform, KMP 도구 및 KMP 라이브러리에 대한 다양한 추가 개선 사항을 제공하는 데 목표를 두고 있습니다. 이와 관련하여 JetBrains의 계획과 우선 순위를 알아보려면 계속 읽어보세요.
Compose Multiplatform
지원되는 모든 플랫폼에서 동일하게 보이는, 아름답고 성능이 뛰어난 애플리케이션을 만들 수 있는 프레임워크인 Compose Multiplatform을 개발하기 위해 최선을 다하고 있습니다. 현재는 Compose for iOS를 베타 버전으로 제공하는 데 중점을 두고 있지만 다른 작업도 진행 중입니다. 앞으로의 계획은 다음과 같습니다.
- 모든 Jetpack Compose의 핵심 API와 구성요소를 멀티플랫폼으로 만듭니다.
- iOS의 렌더링 성능을 향상시킵니다.
- Compose for iOS 앱의 스크롤 및 텍스트 편집이 iOS 기본 앱과 동일하게 작동하도록 만듭니다.
- 모든 유형의 리소스를 공유하기 위한 공통 API를 구현합니다.
- iOS 및 데스크톱 접근성 API와 통합합니다.
- 멀티플랫폼 탐색을 위한 솔루션을 제공합니다.
앞서 언급한 많은 개선 사항은 Compose for Desktop에도 적용 됩니다. 또한, 프로덕션에서 사용하는 분들로부터 받은 피드백을 반영하여 안정성을 개선하고 발전시키키 위해 노력하고 있습니다.
또한 Compose for Web, 특히 Wasm의 가능성을 탐구하는 작업을 계속 진행할 것입니다. 가장 가까운 목표는 알파 단계로 진행시키는 것이며, 여기에는 다음이 포함됩니다.
- 기존 앱을 이식하고 모든 공통 코드를 재사용할 수 있도록 합니다.
- 다양한 화면 크기, 방향 및 해상도를 지원합니다.
- 마우스, 터치스크린, 물리적 키보드 또는 화면 키보드를 통한 입력을 지원합니다.
- 성능 및 바이너리 크기를 개선합니다.
툴링(Tooling)
Kotlin Multiplatform을 위한 훌륭한 IDE 환경을 제공하기 위해 최선을 다하고 있습니다. 이는 핵심 플랫폼에 투자하고, 예를 들어 Kotlin IDE 플러그인을 K2 컴파일러 프런트엔드로 마이그레이션하는 것뿐만 아니라 통합하는 모든 Kotlin Multiplatform 타깃과 코드 베이스에 대한 단일 도구(Fleet)를 제공하여 여러 IDE 사이에서 지속적으로 전환할 필요가 없도록 한다는 것을 의미합니다.
Kotlin Multiplatform 개발을 위한 Fleet 사용에 대한 귀하의 피드백을 신속하고 반복적으로 수렴하여 개발 경험을 향상시키는 데 필요한 모든 환경이 갖춰지도록 할 계획입니다. 특히 다음 영역이 해당됩니다.
- 공통 코드에 대한 실시간 미리보기 및 시각적 디버그 도구를 포함하여 Compose Multiplatform에 대한 지원 개선
- 프로젝트 구성을 도와주는 IDE
- Multiplatform 프로젝트의 모든 부분에 대한 통합되고 향상된 디버깅 경험
Multiplatform의 핵심
Kotlin Multiplatform을 사용하는 주요 시나리오 중 하나는 iOS 타깃과 코드를 공유하는 것입니다. 코드 베이스에서 Kotlin Multiplatform 프레임워크를 사용하여 작업하는 iOS 개발자의 개발 경험을 개선하는 데 중점을 두려고 합니다.
이 영역에서 주요 이니셔티브는 Kotlin에서 Swift로 직접 내보내기입니다. Objective-C 병목 현상을 제거하여 더 광범위한 Swift 언어 지원과 더 자연스러운 API 내보내기가 가능해집니다. 또한 Kotlin 라이브러리 작성자를 특히 염두에 두고 도구를 만들고 있습니다. 이러한 도구는 Swift로 내보낼 때 Kotlin API의 호환성과 사용자 친화성을 개선하도록 설계되었습니다. 도구 개발에도 세심한 주의를 기울이고 있습니다. IDE와 빌드 시스템은 개발자 경험의 필수적인 부분이며, Swift Export가 원활하게 통합되도록 하는 것이 목표입니다.
다른 이니셔티브에는 Kotlin/Native 컴파일링 속도 향상, CocoaPods 통합 강화, SwiftPM을 사용한 프레임워크 내보내기 지원 도입 등이 포함됩니다.
또한 Kotlin Multiplatform 애플리케이션의 빌드 설정을 개선하기 위한 방법을 계속해서 탐구할 계획입니다. Kotlin 1.9.20에서는 Gradle Multiplatform DSL을 대폭적으로 개선하여 읽고 쓰기가 더 쉽도록 했습니다. 계속해서 점진적으로 개선해 나갈 예정입니다. 또한 사용 편의성, 온보딩 및 IDE 지원에 초점을 맞춘 새로운 프로젝트 구성 도구인 Amper가 실험적 단계에 있습니다.
라이브러리 에코시스템
Kotlin Multiplatform 에코시스템이 빠르게 성장함에 따라 라이브러리의 이전 버전과의 호환성이 중요해졌습니다. 이를 보장하려면 JetBrains 팀과 라이브러리 작성자가 서로 협력해야 합니다. 계획은 다음과 같습니다.
- 라이브러리 작성자가 JVM 라이브러리 빌드 지식을 활용할 수 있도록 klib 형식을 개선합니다.
- JVM과 마찬가지로 Kotlin Multiplatform 라이브러리에서 동일한 코드 인라인 동작을 구현합니다.
- 멀티플랫폼 라이브러리 공개 API가 호환되지 않는 방식으로 변경되지 않았는지 확인하는 도구를 제공합니다.
KMP 라이브러리의 게시 프로세스도 개선할 예정입니다. 구체적으로 다음을 계획하고 있습니다.
- Mac 컴퓨터 없이도 KMP 라이브러리를 빌드하고 게시할 수 있도록 합니다.
- KMP 라이브러리를 생성하고 게시하기 위한 템플릿과 광범위한 가이드라인을 제공합니다.
Kotlin Multiplatform이 이제 안정화되었지만 아직 중요한 업데이트가 계획되어 있습니다. 하지만 현재 형식으로 빌드된 라이브러리가 최신 Kotlin 버전에서도 계속 작동할 것이므로 걱정하지 마세요.
더 읽어보기
- Kotlin Multiplatform이 안정화되어 프로덕션에 사용할 수 있습니다
- Compose Multiplatform 1.5.10 – 시작한다면 지금입니다
- Amper – 빌드 도구 사용자 경험 개선
- Kotlin Multiplatform 도구가 포함된 Fleet을 만나보세요
- Kotlin 로드맵
게시물 원문 작성자