Google、Room 3.0を発表:Kotlinファーストの非同期マルチプラットフォーム永続化ライブラリ
本文の状態
日本語全文を表示中
詳細モードで約4分の本文を読めます。
同じ出来事の情報源
6媒体で確認
Google Developers AI · The Decoder · AI Business · TechCrunch AI · Hugging Face Blog · InfoQ
各社の報じ方を比較 ↓GoogleはRoom 3.0を発表した。本バージョンは破壊的変更を導入し、Kotlin Multiplatform対応を強化するとともにJSとWasmへのサポートを追加した。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
Room 3.0 is a major update to Android's persistence libraryが主要な領域で破壊的変更を導入するアップデートです。今回の新リリースは、Kotlin Multiplatformを中心にAndroidの永続化レイヤー(Persistence Layer)を近代化することに焦点を当て、JavaScriptおよびWebAssemblyを含むプラットフォームサポートも拡大しています。
Room 3.0における最大の変更点は、Javaコードの生成を廃止し、代わりにKotlinのみを生成するようになったことです。開発チームによれば、これによりコードベースと開発プロセスの両方が簡素化され、より高速なイテレーションが可能になります。
Javaコードの生成に加え、Room 3.0はJava Annotation Processing(AP)およびKAPTのサポートも削除します:
Room 3.0はKSP(Kotlin Symbol Processing)プロセッサのみとなり、Java言語に縛られることなくKotlinコードベースの処理をより最適に行えるようになります。
その結果、Room 3.0はJavaのみのコードベースであってもKSPおよびKotlinコンパイラの使用を必要とします。このような場合の推奨アプローチは、Roomの使用を1つの専用モジュール内に隔離することであり、「Kotlin Gradle PluginおよびKSPを適用しても、コードベースの他の部分に影響を与えないようにする」ことができます。
アーキテクチャの観点からは、2つの追加の破壊的変更が際立っています。それはAndroidネイティブのSQLiteデータベースAPI(SupportSQLite)の削除と、コルーチンファーストモデル(Coroutine-first model)の採用です。Android固有のAPIに依存するのではなく、Room 3.0はKMP互換のandroidx.sqlite driver APIsを使用しており、2つのSQLバックエンドを維持する必要がなくなることで開発が簡素化されています。
Kotlin coroutinesの採用により、完全な非同期操作が可能になりました。その結果、データを挿入、削除、またはクエリするなどのデータ操作を行うために生成されるすべてのDAO(Data Access Object)関数は、suspendとして定義されます。あるいは、Kotlin FLowを使用して複数の値を順次出力できるリアクティブ型を返すことも可能です。
開発者がRoom 3.0へ移行し、AndroidネイティブのSQL APIから離れることを容易にするため、Room 2.8.0はandroidx.room:room-sqlite-wrapperを導入しました。このアーティファクトは、RoomDatabaseをSupportSQLiteDatabaseに変換できる互換性レイヤーを提供します:
これは、コードベースの完全な移行により時間を要する開発者にとっての一時的な橋渡しを提供します。このアーティファクトは、Room 3.0においてもandroidx.room3:room3-sqlite-wrapperとして存続し、重要なSupportSQLiteの使用を維持しつつRoom 3.0への移行を可能にします。
前述の通り、Room 3.0はプラットフォームサポートをJavaScriptおよびWasmJSにも拡張しています。これにより複数の破壊的変更が導入されており、多くのRoom 3.0関数がWebストレージを適切にサポートするために本質的に非同期な*suspend*関数として定義され直しているためです。
SQLiteDriver(SQLite Driver)APIもWeb対応のために更新され、androidx.sqlite:sqlite-webにおいて新しい非同期Webドライバが利用可能になりました。これはWeb Workerベースのドライバであり、Origin private file system (OPFS)(Origin Private File System)にデータベースを永続化することを可能にします。
Room 3.0のリリースに伴い、Room 2はメンテナンスモード(maintenance mode)に入り、Room 3.0が安定するまで、バグ修正と依存関係の更新に限定されたパッチリリース(patch releases)(2.8.0ベース)のみが提供されます。
著者について
セルジオ・デ・シモーネ
セルジオ・デ・シモーネはソフトウェアエンジニアです。セルジオは、Siemens、HP、小さなスタートアップなど、多様なプロジェクトや企業で25年以上にわたりソフトウェアエンジニアとして活動してきました。過去10年以上は、モバイルプラットフォームおよび関連技術の開発に注力しています。現在は大規模ML企業BigML, Inc.で働き、iOSおよびmacOS開発をリードしています。
詳細を表示表示を閉じる
同じ出来事を6媒体で確認
同じ出来事を扱う別媒体の記事です。見出しと公開時刻を比較できます。
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み