Releases

Kotlin 1.5.0 – 2021 年最初の大規模リリース

Read this post in other languages:

新しいリリーススケジュールに準じた Kotlin 最初の機能リリース、Kotlin 1.5.0 をご紹介します!

このリリースでは、JVM レコード、sealed インターフェース、インラインクラスなどのstable化した言語機能のほか、新しいデフォルトの JVM IR コンパイラーを提供しています。 Kotlin 1.4.30 および Kotlin 1.5.0 EAP リリースの機能プレビューについて皆様からお寄せいただいたフィードバックが、これらの機能を安定させるうえで大いに役立ちました。 ご支援いただきありがとうございました! よろしくお願いいたします! 

すでに 25,000 人以上の開発者が IntelliJ IDEA の新しい JVM IR コンパイラーを試しています。

その良さは時間が経つにつれて実感できるかと思います。 新しいコンパイラーは、統合されたパイプラインとビジネスロジックを Kotlin/Native および Kotlin/JS IR コンパイラーと共有しています。そのため、あらゆるプラットフォーム向けにほとんどの機能実装、最適化、バグ修正を同時に実行できます。 また、あらゆるプラットフォームで自動的に機能するようなカスタム処理や変換処理を追加できます。

Kotlin 1.5.0 に関するご質問はございますか? Roman ElizarovSvetlana Isakova をはじめとする Kotlin チームのメンバーが、5 月 25 日の Kotlin 1.5 オンラインイベントで皆様からの質問に生でお答えします。

Kotlin 1.5 オンラインイベントへのご登録


このブログ記事では、次の概要を説明します。

Kotlin 1.5.0 への自動アップデート

IntelliJ IDEAAndroid Studio をお使いの場合は、新しい Kotlin リリースが入手できるようになった時点で自動アップデートするオプションがあります。

詳細については、Kotlin 1.5.0 のインストールを参照してください。

stable化した言語機能

Kotlin 1.5.0 には、1.4.30 のプレビューで提供された次の新しい言語機能のstable版が含まれています。

  • JVM レコードのサポート。最新 Java の機能であるレコードクラスとの相互運用性を維持しています。 Kotlin クラスを Java コード内でレコードとして使用するには、次のようにそれを data クラスにして @JvmRecord 注釈を付けてください。

    詳細は、JVM レコードを使用するための要件を参照してください。

  • sealed インターフェースsealed 修飾子は、インターフェースについてもクラスの場合と同様に機能します。sealed インターフェースの実装はすべてコンパイル時に認識されます。

  • sealed クラスに関する改善。 従来はすべてのサブクラスを sealed クラスと同じファイルに記述する必要がありました。 今後は、同じコンパイルユニットと同じパッケージに属するすべてのファイルに記述することができます。

  • インラインクラスは、値のみを保持する値ベースクラスのサブセットです。 インラインクラスはメモリの割り当てに起因する余計なオーバーヘッドを発生させず、特定の型の値をラップする目的で使用できます。 宣言には value 修飾子を使用します。

Kotlin 1.5.0 の言語機能に関する詳細

標準ライブラリとテストライブラリに関する改善点

私たちが Kotlin 1.5.0-RC のブログ記事で実施したアンケートの結果から判断する限り、符号なし整数型用の Stable 化した APIは、最も期待されていた Kotlin 1.5.0 ライブラリの改善点です。

標準ライブラリでは、次のように多くの有益な機能を提供しています。

  • 符号なし整数型用の Stable 化した API。Range および符号なし整数型の数列、符号なし整数型を伴う演算ができる関数にも対応しています。 詳細は、符号なし整数を参照してください。

  • java.nio.file.Path拡張関数。最新の非ブロッキング Java I/O を Kotlin-idiomatic スタイルで利用できるようにします。

  • String および Char API に関する改善点。文字列や文字の大文字・小文字の変換に便利なロケールに依存しない API、文字とその整数コードおよび数値の間で変換操作を行える関数、その他の Char 関数のマルチプラットフォーム対応が含まれています。

  • Duration API の変更。内部表現に Long 値を使用するようにしました。また、Duration を Long 値として取得するためのプロパティも導入しています。

テストライブラリでは、次のような重要な改善が行われています。

  • マルチプラットフォームプロジェクトの共通ソースセットに、kotlin-test を単一の依存関係として追加できるようにしました。

  • 依存関係に kotlin-test を指定するだけで、Kotlin/JVM ソースセット用のテストフレームワークが自動的に選択されるようになりました。

  • アサーション関数について多数の更新を行いました。

ライブラリの改善点に関する詳細

Kotlin/JVM

Kotlin 1.5.0 の新機能:

Kotlin/Native

Kotlin 1.5.0 の新機能:

  • linuxX64 および iosArm64 ターゲットで、デバッグモードがコンパイラーキャッシュに対応しました。 コンパイラーキャッシュを有効化すると、初回実行時を除いてほとんどのデバッグコンパイルがかなり高速に完了します。 私たちのテストプロジェクトで評価した結果、200%ほど速度が向上していることを確認できました。

  • アプリケーションのクラッシュが発生する問題を回避するため、組み込みのメモリリークチェッカーを無効にしました。 必要に応じ、メモリリークチェッカーを有効にする方法を参照してください。

Kotlin/JS

Kotlin/JS については、新しい Kotlin/JS IR コンパイラーのベータ版への移行が進められています。 IR コンパイラーでは、KVision / fritz2 / doodle など、すでに多くの有名なフレームワークやライブラリを使用できます。

ライブラリを作成している方は、下位互換性を利用して自分のライブラリを移行することで、自分のライブラリをこれらに追加できます。

また、webpack 4 の代わりに webpack 5 を使用して JS バンドルをビルドできるようになっています。

Kotlin 1.5.0 のインストール方法

すでに IntelliJ IDEAAndroid Studio をお使いの場合は、新しいリリースが入手できるようになった時点で Kotlin 1.5.0 への自動アップデートが提案されます。 指定の手順に従って手動でアップデートすることもできます。注:Android Studio 4.2.0、Arctic Fox Canary 15 以降のバージョンのみが Kotlin 1.5.0. をサポートしています。

以下の IDE の最新バージョンをいつでもダウンロードし、網羅的な Kotlin のサポートを受けることができます。

  • IntelliJ IDEA。さまざまなプラットフォームを対象とする Kotlin アプリケーションの開発に適しています。
  • Android Studio。Android とクロスプラットフォームモバイルアプリケーションの開発に適しています。

kotlinx ライブラリを互換性のあるバージョンにアップデートし、既存プロジェクトのビルドスクリプトで Kotlin バージョン 1.5.0 を指定していることも確認してください。

コマンドラインコンパイラーが必要な場合は、GitHub のリリースページからダウンロードできます。

問題発生時は以下の対応をお願いします

Kotlin 1.5 オンラインイベント

5 月 25 日の Kotlin 1.5 オンラインイベントにご参加ください。Kotlin チームが最新リリースに関する皆様からの質問に回答いたします。 気になることがあれば何でもご質問ください。特に質問がない方も、単に回答に興味がある方も歓迎します。 イベントの開催時間は 1 時間 30 分を予定しています。

Twitter で #kotlin15ask のハッシュタグを付けて質問を投稿するか、登録フォームに質問を追加してください。

Kotlin 1.5 オンラインイベントへのご登録

また、未回答の質問や新しい質問に対応するため、5 月 27 日から 28 日に Reddit で Ask Me Anything(AMA)セッションを開催する予定です。

互換性

すべての機能リリースと同様に、Kotlin 1.5.0 を以て、以前に発表した変更の使用廃止サイクルが一部終了を迎えます。 すべてのケースは言語委員会による十分な検討の後、「Kotlin 1.5 の互換性ガイド」に記載されています。 また、YouTrack でも変更内容を確認することができます。

動画とその他の情報

Kotlin の YouTube チャンネル:

Kotlin のブログをお読みください:

Kotlin ドキュメントを参照してください:

外部貢献者

このリリースに含められたプルリクエストは、次の外部貢献者からいただきました。ご協力いただきありがとうございました👏👏👏。

Jinseong Jeon, Mads Ager, Ivan Gavrilovic, pyos, Steven Schäfer, Iaroslav Postovalov, scaventz, Kristoffer Andersen, Bingran, Stefan Wolf, Victor Turansky, fjjohnchen, justin.wei, Nelson Osacky, Mikhail Galanin, Michael Hoisie, Kris Hall, Kevin Bierhoff, Jiaxiang Chen, Hung Nguyen, Cedric Champeau.

YouTrack の上位課題報告者

YouTrack に課題を報告してこのリリースの改善にご協力いただいたコミュニティメンバー全員に感謝いたします👏👏👏! 以下は上位 20 名の報告者です。このメンバーには特に感謝しています。

Morgan Bartholomew(118 課題)、Marc Knaup(78 課題)、Ryan Nett(61 課題)、Louis CAD(48 課題)、Daniil Stepanov(44 課題)、AndroidDeveloperLB(39 課題)、Victor Turansky(38 課題)、Jinseong Jeon(35 課題)、Zac Sweers(25 課題)、Łukasz Wasylkowski(22 課題)、Tianyi Guan(21 課題)、Christoph Sturm(20 課題)、Axel Fontaine(19 課題)、Alexander Nozik(18 課題)、Robert Stoll(18 課題)、Björn Kautler(18 課題)、Róbert Papp(14 課題)、Andreas Malik(14 課題)、Lorenzo Neumann(14 課題)、Iaroslav Postovalov(14 課題)


Kotlin 1.5.0 をインストールして、Kotlin 1.5 オンラインイベントにご登録ください

image description

Discover more