Kotlin 2.0.0: 何が新しいのか?

Kotlin 2.0.0のリリースは、JetBrainsにとって重要なマイルストーンであり、安定版Kotlin K2コンパイラの導入と、性能、機能、開発者の体験を向上させる多くの改善をもたらしました。

主な特徴と改善点

Kotlin K2コンパイラ

Kotlin K2コンパイラが安定版となり、JVM、ネイティブ、Wasm、およびJSのすべてのターゲットプラットフォームでデフォルトとなりました。これにより、大幅なパフォーマンス向上、プラットフォームサポートの統一、マルチプラットフォームプロジェクトのためのより良いアーキテクチャが提供されます。安定化プロセスには18,000人以上の開発者と80,000プロジェクトが関与し、その堅牢性が確保されました。

IDEサポート

Kotlin 2.0.0プラグインは最新バージョンのIntelliJ IDEAおよびAndroid Studioにバンドルされており、手動でのプラグイン更新が不要となりました。ビルドスクリプトをKotlin 2.0.0に更新するだけで使用できます。

スマートキャストの改善

K2コンパイラはスマートキャスト機能を強化しました:

  • ローカル変数とさらなるスコープ:条件内でnullでないと評価された変数は、スコープ全体でスマートキャスト情報を保持します。

  • 論理OR演算子:スマートキャストは`Any`型にデフォルトするのではなく、最も近い共通のスーパータイプを対象とします。

  • インライン関数:暗黙的に`callsInPlace`契約を持つと見なされ、キャプチャされた変数の安全なスマートキャストが可能になります。

  • 関数型のプロパティ:これらのプロパティがスマートキャストされないバグが修正されました。

  • 例外処理:スマートキャスト情報は`catch`および`finally`ブロック内でも維持されます。

  • インクリメントおよびデクリメント演算子:これらの演算子使用後の型変化を正確に追跡します。

Kotlinマルチプラットフォームの改善

Kotlinマルチプラットフォームプロジェクトのためのいくつかの改善が行われました:

  • 共通ソースとプラットフォームソースの分離:コンパイル中の厳密な分離を保証し、アクセス問題を防ぎ、プラットフォーム間で一貫した動作を維持します。

  • 可視性レベル:expectedとactualの宣言は異なる可視性レベルを持つことができ、実際の宣言がより許容的である限り問題ありません。

その他の注目すべき機能

  • 新しいComposeコンパイラGradleプラグイン

  • 安定した`kotlinx-metadata-jvm`ライブラリ

  • Kotlin/NativeでのGCパフォーマンス監視

  • Kotlin/Wasmでの名前付きエクスポートサポート

  • `@JsExport`を使用する関数での符号なしプリミティブ型サポート(Kotlin/Wasm)

  • Binaryenを使用したデフォルトでの最適化されたプロダクションビルド

  • マルチプラットフォームプロジェクトにおけるコンパイラオプションの新しいGradle DSL

  • Enumクラスの値のジェネリック関数の安定した代替

  • 安定した`AutoCloseable`インターフェース

結論

Kotlin 2.0.0は特にK2コンパイラの安定化により、大きな前進を遂げました。これらの進展は、様々なプラットフォームでKotlinを使用する開発者の生産性、パフォーマンス、および全体的な開発体験を向上させることを目的としています。


詳細については、公式Kotlin 2.0.0リリースノートを参照してください。

この記事が気に入ったらサポートをしてみませんか?