Android Driver SDK 6.0 移行ガイド

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

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

Kotlin 2.0 に移行する

Driver SDK for Android 6.0 以降を使用している場合は、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 以前は、フル 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 では、各バージョンの互換性ガイドに、破壊的変更のリストと、元の動作を維持するために設定できるフラグが記載されています。