Multiplatform

2024 年の Kotlin Multiplatform 開発ロードマップ

Read this post in other languages:

最近になり 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 のバージョンが新しくなってもそのまま動作します。

詳細情報

オリジナル(英語)ブログ投稿記事の作者:

Ryuji Owan

Egor Tolstoy

image description

Discover more