JetBrainsは、ほとんどの新しいKotlin Multiplatform(KMP)プロジェクトでKotlin Toolchain 0.13を使用することを推奨した。これは、Kotlin環境のセットアップ、アプリケーションとライブラリの作成、ビルド、テスト、公開のための統一された入口となる。ツールは、宣言的な設定と単一のコマンドラインインターフェースを通じて、JVM、Android、iOS、マルチプラットフォーム、サーバーアプリケーションのプロジェクトを対象とする。
この方針は、Kotlin Toolchainが今年初めにAlpha段階へ移行した後、Slackチャンネルと課題トラッカーからフィードバックを集めたことを受けたものだ。JetBrainsによると、コマンドライン操作と開発環境の改善に加え、Webとcinteropのサポートが追加されたことで、新しいプロジェクトにこのツールを推奨するに至った。KMPの入門ガイドや、Webおよび開発環境におけるプロジェクト作成ウィザードにも組み込まれている。
プロジェクトの作成と環境設定
このリリースでは、Kotlin Multiplatform Wizardに似た対話型フローを通じてプロジェクトを作成するkotlin newコマンドが導入された。開発者はアプリケーションの種類を選択し、その後、対象プラットフォームを選択する。kotlin initコマンドも引き続き利用できるが、新しいコマンドと同じ動作になり、プロジェクトファイルを現在のフォルダー内に直接作成する。
また、ツールのテキストインターフェースでは、JDKパッケージ、Android SDK、iOSシミュレーターのランタイム環境、コンパイラーなど、必要なツールをダウンロードする際に進捗バーが表示される。iOSについては、Xcodeのインストール、ライセンスの承認、初回起動の状態に関する問題をより明確に診断できるようになった。必要に応じてiOSシミュレーターのランタイム環境をダウンロードし、存在しない場合はシミュレーターを自動的に作成する。
AndroidとAppleの改善
Android SDKコンポーネントの提供メカニズムが、コマンドラインと開発環境の間で統一された。これにより、IDEでプロジェクトをインポートする際に不足しているコンポーネントをダウンロードでき、ビルドまたは実行コマンドが開始されるまで待つ必要がなくなった。JetBrainsは、com.example.appのような試験用識別子を使ってアプリケーションやライブラリが公開されるのを防ぐため、namespaceとapplication IDの検証も強化した。さらに開発者は、ファイルエディター内からIDEの同期状態を確認できる。
Appleプラットフォームでは、Apple対応モジュール内でローカルパッケージを含むSwift Package Managerの依存関係がサポートされるようになった。これにより、Objective-CまたはSwiftコードから生成されたObjective-Cインターフェースをインポートでき、名前空間にはswiftPMImportという接頭辞が付く。マルチプラットフォームライブラリを公開する際には、Compose ResourcesのメタデータとSwiftPM依存関係がビルド成果物に含まれる。また、サードパーティーに属するマルチプラットフォームライブラリからCompose Resourcesを解決することもできる。
開発者にとって実際に何が変わるのか
このリリースにより、KMPプロジェクトのセットアップに必要な個別の手順が減少する。特に、AndroidとiOSを行き来する開発者や、クリーンなマシンで作業する開発者にとって有用だ。iOSとSwiftPMの改善は、Appleプラットフォームのネイティブツールに関連する摩擦点に対処するため、実用上重要である。一方、Android SDKの提供メカニズムは、最初のビルドを実行する前にインポートが失敗するのを防ぐのに役立つ。
このツールには、Hot Reload MCPというサーバーと、AIエージェント向けの専用スキルも含まれている。Kotlin公式スキルパッケージは、npx skills add kotlin/kotlin-agent-skillsコマンドでインストールできる。JetBrainsは、社内テストにより、エージェントがKotlin Toolchainプロジェクトをより高い信頼性で作成・保守し、使用するトークン数を削減できることが示されたとしている。ただし、これは開発元が公表した結果であり、独立したベンチマークではない。
Kotlin/Nativeの高速化と現在の制約
Kotlin Toolchainは、コンパイル済みのKotlin/Native依存関係を保存し、ビルド間だけでなくプロジェクト間でも再利用する。また、プロジェクトコードはファイル単位でキャッシュされるため、リンク時には影響を受けた部分だけを再ビルドできる。この機能はsettings.kotlin.compileIncrementally設定に基づいており、対応するターゲットでは最適化されていないdebugファイルをサポートする。一方、.klibファイルのコンパイルは引き続き完全に実行される。
JetBrainsは今後、brew install kotlinによるインストール、AIスキルのデフォルト提供、安定化後のSwift Exportサポート、アプリストアでのアプリ公開の簡素化を予定している。ただし同社は、Gradle上に構築された既存プロジェクトの移行をまだ推奨していない。まずユーザーからのフィードバックを理解し、ギャップを埋める必要があり、今後の変更によってプロジェクトの修正が必要になる可能性があるとしている。