Android Driver SDK 6.0 移行ガイド

DriverStatusListener インターフェースに移行する

Driver v5 では、DriverStatusListener を優先して StatusListener インターフェースのサポートを終了することを発表しました。今年、StatusListener インターフェースは正式に削除されます。新しいインターフェースへの移行ガイドについては、StatusListener の非推奨をご覧ください。

Kotlin 2.0 に移行する

Android 6.0 以降用の Driver SDK を使用している場合は、Kotlin 2.0 にアップグレードする必要があります。このページでは、新しい Kotlin バージョンへの移行を容易にするためのガイダンスを提供します。

Gradle と AGP の互換性

Kotlin 2.0 には、Gradle と Android Gradle プラグイン(AGP)のバージョンの最小バージョンと最大バージョンの要件があります。プロジェクトが Kotlin 2.0 の要件を満たしていることを確認します。

Driver SDK 6.0 以降の AGP の最小バージョン

Driver SDK 6.0 で AGP 7.3 以降を使用することをおすすめします。

フル R8 モード

Driver SDK v6 以前は、Full R8 モードをサポートしていません。アプリが AGP 8.0 以降をターゲットとしている場合は、Full R8 モードを明示的に無効にする必要があります。

# settings.gradle
android.enableR8.fullMode=false

Kotlin バージョンの互換性

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

Kotlin の互換性フラグ

前のセクションで説明したように、Kotlin はアップグレード時に最大 3 つ前のバージョンの言語をサポートしています。Kotlin には、互換性を損なう変更を制限するのに役立つ 2 つのフラグが用意されています

language-version X.Y

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

android {
   kotlinOptions {
       languageVersion = '1.7'
   }
}
api-version X.Y

このフラグにより、依存するダウンストリーム コードが Kotlin 2.0 を組み込む準備が整うまで、新しい API が使用されなくなります。

android {
   kotlinOptions {
       apiVersion = '1.7'
   }
}

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

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