BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Google Jetpack、アーキテクチャとUIコンポーネントの更新とパフォーマンスツールの改良を実現

Google Jetpack、アーキテクチャとUIコンポーネントの更新とパフォーマンスツールの改良を実現

ブックマーク

原文(投稿日:2022/05/22)へのリンク

先日開催されたGoogle I/Oカンファレンスの中で、Googleは、新しいJetpackのリリースを発表した。アーキテクチャライブラリの更新、アプリのパフォーマンス最適化サポートの強化、Jetpack Compose 1.2などが含まれる。

Jetpackは、100以上のライブラリとツールからなるスイートだ。ボイラプレートを削減し、ベストプラクティスを取り入れ、デバイス間の互換性を向上することで、Androidアプリの開発を容易なものにする。データ永続化レイヤのRoom、設定ストレージを共有するライブラリDataStorePagingライブラリなど、重要なJetpackコンポーネントのリリースも新たに発表された。

SQLite上で抽象化レイヤを提供するRoomは、バージョン2.4で導入されたKotlin Symbol Processingの安定版サポートにより、KotlinアノテーションプロセッサKAPTを使用していた前バージョンの2倍のスピードアップを実現している。Kotlin Symbol Processing(KSP)は、Kotlinプログラムを理解して処理することの可能なコンパイラプラグインを開発するために使用するAPIである。簡単に言えば、コンパイラに入力するコードを生成するために使用するシンボルプロセッサだ。その他、Roomで注目すべき機能としては、JSONクエリのサポート、新たなアノテーションとプロパティによるデータベースマイグレーションの簡略化などが挙げられる。Roomを全面的にKotlinでリライトする作業も始まっており、将来バージョンで完成する予定である。

DataStoreは、アプリ設定をキー/値ペア形式で管理する、型安全で使いやすいコルーチンベースの非同期ライブラリだ。プロトコルバッファを使った型付きオブジェクトもサポートしている。DataStoreは、設定を格納するための新たな公式ライブラリである。Googleは、SharedPreferenceからの移行に関するガイドを提供している。

最近拡張されたもうひとつのライブラリであるPagingは、インクリメンタルなデータフェッチを可能にすることで、アプリケーションのパフォーマンスとリソース使用効率を改善するものだ。典型的なユースケースは、リモートデータ項目の巨大なリストの処理である。Paging 3.1では、RxとGuavaの安定したサポートが提供されている。Kotlinのコルーチンが必要なPagingで、Javaコードを利用したい場合には便利だ。無効なデータや古いデータ、空白ページの表現も適切なものになった。

アプリのパフォーマンスという面では、新たにBaseline Profileが含まれている。これはコードパスの使用に関するメタデータを提供するもので、Androidランタイムのアヘッド・オブ・タイム(AOT)コンパイルの優先度設定や、ローンチ時間の改善に使用することができる。同じく、新たに追加されたMacrobenchmarkライブラリライブラリは、より複雑なユースケースを扱えるようにJetpackベンチマークを拡張するものだ。アプリの起動や、RecycleViewやアニメーションといったUI操作の測定が可能になる。このMacrobenchmarkは、Baseline Profileの生成にも使用することができる。さらにGoogleは、UIレンダリングやフレームドロップのような問題を調査するライブラリのJankStatsもリリースしている。

最後に、バージョン1.2ベータに到達したJetpack Composeでは、テキスト処理の改善、ダウンローダブルフォントのサポート、UIのパフォーマンス向上によりコンテキストのオンデマンド表示を可能にする新しいレイジーレイアウトAPI、Wear OSのベータサポートなどが提供される。

著者について

作者について

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT