Kotlin バージョンの互換性と移行

このページでは、Navigation SDK の Kotlin バージョンの互換性に関する情報と、新しいバージョンに移行するためのガイダンスを提供します。

次の表に、Navigation SDK の最近のバージョンにおける Kotlin のバージョン要件と、推奨される AGP および Gradle のバージョンを示します。

Navigation SDK のバージョン Kotlin バージョン(必須) Android Gradle プラグイン(AGP)と Gradle のバージョン(推奨)
6.2 以降 2.1
  • AGP 8.7.3
  • Gradle 8.10.2
6.0 ~ 6.2 2.0
  • AGP 8.3.0
  • Gradle 8.4
5.1 - 5.99.1 1.9 JDK-8272564 の回避策が用意されている AGP 7.3 以降を使用することをおすすめします。

Kotlin バージョンの互換性

Kotlin 2.1 は Kotlin 2.0 との下位互換性をサポートしています。つまり、Navigation SDK で Kotlin 2.0 をすでに使用している場合は、すべての互換性のない変更を解決しなくても Kotlin 2.1 にアップグレードできるはずです。ただし、これは安定版の言語機能にのみ適用されます。Kotlin 言語でアルファ版、ベータ版、試験運用版の機能を使用している場合は、アップグレード時に追加の変更が必要になることがあります。

移行を容易にする: Kotlin 互換性フラグ

Kotlin には、互換性を維持するのに役立つ 2 つのフラグが用意されています。https://kotlinlang.org/docs/compatibility-modes.html

language-version X.Y

このフラグは、以前の Kotlin バージョンの動作に対する破壊的変更を元に戻します。たとえば、Kotlin 2.0 を使用している場合は、[ - language-version 2.0] を指定すると、新しい互換性を破る変更は有効になりません。

android {
   kotlinOptions {
       languageVersion = '2.0'
   }
}

api-version X.Y

このフラグは、apiVersion より新しい Kotlin バージョンの API が使用された場合に Gradle ビルドエラーをスローします。

android {
   kotlinOptions {
       apiVersion = '2.0'
   }
}

よりターゲットを絞ったアプローチ

Kotlin 互換性フラグを使用するだけでなく、Kotlin のリリースノートを確認し、アップグレード元のバージョンから保持したい動作を選択することをおすすめします。Kotlin では、各バージョンの互換性ガイドで、重大な変更のリストと、元の動作を保持するために設定できるフラグが提供されています。

今後の Kotlin のアップグレード

Kotlin は 6 か月ごとに新しいバージョン(言語リリース)をリリースしており、Google は通常、その 1 ~ 2 か月後に最新バージョンをプロダクトのデフォルトとして組み込んでいます。以前の Kotlin バージョンには、Navigation SDK のお客様が新しいバージョンにアップグレードする必要がある互換性を破る変更が含まれていました。そのため、最新バージョンの Navigation SDK を採用する場合は、6 か月ごとに Kotlin のアップグレードを計画することをおすすめします。