Firebase が Kotlin への取り組みを拡大しているのに伴い、Google は Android エコシステムのモダナイゼーションを進めて、Firebase における Kotlin のアクセスしやすさおよび使いやすさを改善しています。
このモダナイゼーションを実現するために、Google は Android 向け Firebase SDK にいくつかの変更を加えています。このページでは、この変更に関する次のような重要な情報について説明します。
変更内容
Kotlin 拡張機能(KTX)API がそれぞれのメイン モジュールに追加されました。たとえば、firebase-perf-ktx
のすべての API が、com.google.firebase.perf
パッケージの firebase-perf
に追加されています。
この変更により、Kotlin デベロッパーは、KTX モジュールではなく、メイン モジュールを利用できるようになりました(Firebase BoM v32.5.0 以降、または、BoM v32.5.0 以降で一覧表示されているメイン モジュールのバージョンを使用している場合)。
この変更の一環として、すべての KTX モジュールの Kotlin 拡張機能(KTX)API が非推奨になりました。早ければ 2024 年 9 月には KTX モジュールのリリースが終了し、その時点で Firebase Android BoM から KTX ライブラリも削除されます。
この変更を行う理由
Firebase は、Android デベロッパー向けの Kotlin ファーストのエコシステムを実現いたします。このパッケージのモダナイゼーションには、次の利点があります。
依存関係の管理の簡素化: 依存するモジュールが 1 つだけになったため、メイン モジュールと Kotlin 拡張機能を切り替えたり、両方に依存したりする必要がなくなりました。
Kotlin のサポートの強化: Android 用のすべての Firebase SDK で Kotlin のサポートが強化されます。Kotlin 向けのすべての新機能が、メイン モジュールに直接組み込まれます。
この変更の重要な日程
2023 年 10 月
Kotlin 拡張機能(KTX)API がそれぞれのメイン モジュールに追加されました。つまり、Firebase BoM v32.5.0 以降、または、BoM v32.5.0 以降で一覧表示されているメイン モジュールのバージョンを使用している場合、メイン モジュールから直接 KTX API を使用できるようになりました。
これと並行して、KTX モジュールの Kotlin 拡張機能(KTX)API も非推奨になりました(この変更についてはリリースノートをご覧ください)。この非推奨フェーズの間、KTX モジュール内の非推奨 API は引き続き機能し、維持されます。
2024 年 9 月以降
Google は、KTX モジュールの新バージョンのリリースを停止し、KTX モジュールを Firebase BoM から削除します。
以前にリリースされたバージョンの KTX モジュールまたは BoM は引き続き機能しますが、メンテナンス終了となります。つまり、バグの修正、下位互換性のある変更、新機能がKTX モジュールに追加さえることはなくなります。代わりに、Android での Firebase の今後の開発はすべて、(Java と Kotlin のいずれの場合も)メイン モジュールで行われるようになります。
メイン モジュールから KTX API を使用するように移行する方法
Kotlin 拡張機能(KTX)API を使用している場合は、KTX モジュールではなくメイン モジュールから API を使用できるように、アプリで次の更新を行います。
KTX モジュールではなくメイン モジュールを利用するように Gradle の依存関係を修正します。たとえば、Firebase Android BoM を使用する場合(推奨):
変更前
dependencies { // ... // Import the Firebase BoM implementation(platform("com.google.firebase:firebase-bom:33.3.0")) // Using KTX libraries for Authentication and Cloud Firestore implementation("com.google.firebase:firebase-auth-ktx") implementation("com.google.firebase:firebase-firestore-ktx") }
AFTER
dependencies { // ... // Import the Firebase BoM as usual // Make sure to use Firebase BoM v32.5.0 or higher implementation(platform("com.google.firebase:firebase-bom:33.3.0")) // No need to use the KTX libraries, everything is now in the main module implementation("com.google.firebase:firebase-auth") implementation("com.google.firebase:firebase-firestore") }
コードを更新して、すべての KTX API を、
com.google.firebase
パッケージのメイン モジュール内に再配置された API に置き換えます。BEFORE
import com.google.firebase.auth.ktx.auth import com.google.firebase.firestore.ktx.firestore import com.google.firebase.firestore.ktx.toObject import com.google.firebase.ktx.Firebase
AFTER
import com.google.firebase.auth.auth import com.google.firebase.firestore.firestore import com.google.firebase.firestore.toObject import com.google.firebase.Firebase