Jetpack はライブラリ スイートです。ベスト プラクティスを取り入れ、ボイラープレート コードを減らし、Android バージョンやデバイスが変わっても一貫して機能するコードの作成を助け、コーディングの負担を軽減します。
Jetpack Compose
ネイティブ UI を構築するための最新のツールキットです。Android での UI の開発を簡素化、高速化できます。

Jetpack の使い方を学ぶ

「Compose を用いた Android アプリ開発の基礎」コースで重要な Jetpack ライブラリについて学び、アプリのボイラープレートを削減する
データレイヤを簡素化する 3 つの Jetpack ライブラリ(LiveData、ViewModel、Room)を使ってみましょう。
最新の Android アーキテクチャが実際のアプリに実装される方法を確認します。

* 人気のライブラリや頻繁に使用されるライブラリを先に表示しています

activity *アクティビティの上に構築されるコンポーズ可能な API にアクセスします。
appcompat *プラットフォームの古い API バージョン(多くの API がマテリアル デザインを使用)で新しい API にアクセスできるようにします。
appsearch *ユーザー向けにカスタムのアプリ内検索機能を構築します。
camera *モバイル カメラアプリを構築します。
compose *形状とデータの依存関係を記述するコンポーズ可能な関数を使用して、UI をプログラムで定義します。
databinding *宣言形式を使用して、レイアウト内の UI コンポーネントをアプリ内のデータソースにバインドします。
fragment *アクティビティ内でホストされる複数の独立した画面にアプリを分割します。
hilt *Dagger Hilt の機能を拡張して、androidx ライブラリから特定のクラスの依存関係インジェクションを可能にします。
lifecycle *アクティビティまたはフラグメントの現在のライフサイクル状態に基づいて動作を調整できるライフサイクル対応コンポーネントを構築します。
マテリアル デザイン コンポーネント * Android 用のモジュール式でカスタマイズ可能なマテリアル デザイン UI コンポーネント。
navigation *アプリ内 UI の構築と構造化、ディープリンクの処理、画面間の移動を行います。
paging *データをページに読み込み、RecyclerView に表示します。
room *SQLite データベースに支えられた永続的なデータを作成、保存、管理します。
test *Android でテストを実施します。
work *延期可能な制約ベースのバックグラウンド タスクをスケジューリングして実行します。
adsPlay 開発者サービスの有無にかかわらず、広告 ID を取得します。
annotationツールと他のデベロッパーがアプリのコードを理解するのに役立つメタデータを公開します。
arch.coreLiveData で使用できる JUnit テストルールを含む、他の arch 依存関係のヘルパー。
asynclayoutinflaterUI でジャンクが発生しないように、レイアウトを非同期でインフレートします。
autofillヒントを拡張して自動入力の精度を高めます。
benchmarkAndroid Studio 内でコードのパフォーマンスを正確に測定します。
biometric生体認証システムまたはデバイス認証情報で認証を行い、暗号オペレーションを実行します。
Bluetooth下位互換性のある API を使用して、Android プラットフォームの Bluetooth 機能を使用します。
browserユーザーのデフォルト ブラウザにウェブページを表示します。
camera.viewfinderカメラ用スタンドアロンの Composable とビューベースのビューファインダー」
car-appAndroid Auto と Android Automotive OS 用のテンプレート化されたアプリを作成します。
cardview丸い角とドロップ シャドウを使用したマテリアル デザイン カードパターンを実装します。
collection小規模な既存のコレクションおよび新しいコレクションのメモリへの影響を軽減します。
compose.animationJetpack Compose アプリ内でアニメーションを作成して、ユーザー エクスペリエンスを高めます。
compose.compiler@Composable 関数を変換し、Kotlin コンパイラ プラグインで最適化を有効にします。
compose.foundationすぐに使用できるビルディング ブロックで Jetpack Compose アプリを作成し、基盤を拡張して独自のデザイン システム要素を構築します。
compose.materialすぐに使用できるマテリアル デザイン コンポーネントで Jetpack Compose UI を構築します。Compose の上位レベルのエントリ ポイントであり、www.material.io のガイドラインと適合するコンポーネントを提供するように設計されています。
compose.material3マテリアル デザインの進化版であるマテリアル デザイン 3 コンポーネントで Jetpack Compose UI を構築します。マテリアル 3 には、最新のテーマ設定とコンポーネント、ダイナミック カラーなどの Material You のパーソナライズ機能が含まれており、Android 12 の新しい視覚的スタイルとシステム UI と調和するように設計されています。
compose.material3.adaptiveマテリアル 3 アダプティブ ライブラリを使用してアダプティブ UI を作成する 現在のウィンドウに合わせて自動的に調整され、 設定(ウィンドウ サイズクラスやデバイスの形状など)です。このライブラリには、 デフォルトのスキャフォールド実装と必要なビルディング ブロック コンポーザブルの両方 独自のエクスペリエンスを構築できます
compose.runtimeCompose のプログラミング モデルと状態管理の基本ビルディング ブロックと、Compose コンパイラ プラグインがターゲットとするコアランタイム。
compose.uiレイアウト、描画、入力など、デバイスの操作に必要な Compose UI の基本コンポーネント。
concurrentコルーチンを使用してメインスレッドからタスクを移動し、ListenableFuture を活用します。
constraintlayout相対位置を使用して、ウィジェットの位置とサイズを柔軟に調整します。
contentpagerバックグラウンド スレッドで ContentProvider データの読み込みとページングを行います。
coordinatorlayoutAppBarLayout や FloatingActionButton など、最上位のアプリ ウィジェットを配置します。
core最新のプラットフォーム機能と API をターゲットにしつつ、古いデバイスもサポートします。
core.uwbサポート対象のデバイスに超広帯域無線(UWB)を実装します。
credentials このライブラリはユーザーの認証情報への統合アクセスを提供します。パスワード、パスキー、フェデレーションの認証情報などが含まれます。このライブラリは、シームレスで安全なログイン エクスペリエンスを提供する際に使用します。
cursoradapterカーソルデータを ListView ウィジェットに公開します。
customviewカスタムビューを実装します。
datastore一貫性のある、トランザクションとしてのデータの保存を非同期で行い、SharedPreferences の欠点の一部を解消します。
documentfileファイル ドキュメントを表示します。
draganddrop別のアプリからの、またはアプリ内でのドラッグ&ドロップデータを受け入れ、一貫したドロップ ターゲット アフォーダンスを表示します。
drawerlayoutマテリアル デザインのドロワー ウィジェットを実装します。
dynamicanimation物理理論を取り入れたアニメーション API で、スムーズなアニメーションを作成します。
emoji現在のデバイスと古いデバイスで絵文字を表示します。
emoji2現在のデバイスと古いデバイスで絵文字を表示します。
enterpriseエンタープライズ対応アプリを作成します。
exifinterface画像ファイルの EXIF タグの読み取りと書き込みを行います。
gamesアプリ内で Android Game SDK をネイティブに使用して、フレーム ペーシングなどの複雑なゲームタスクを実行します。
glanceJetpack Compose スタイルの API を使用して、リモート サーフェスのレイアウトを作成します。
graphics複数の Android プラットフォーム リリースでグラフィック機能を利用します
gridlayoutグリッド レイアウトを実装します。
healthプラットフォームに依存しない方法で高性能のヘルスケア アプリを作成します。
health.connectユーザーの健康状態やフィットネスの記録をデベロッパーが読み取り/ 書き込みできるようにします。
heifwriter利用可能なコーデックを Android デバイスで使用して、画像または画像コレクションを HEIF 形式でエンコードします。
ink最高水準のペンアプリを開発できます。高パフォーマンスで美しい描画エクスペリエンスへのデベロッパーの参入障壁を下げます。
input今後の MotionEvents を予測して、入力インタラクションのレイテンシを短縮します
interpolator古いプラットフォームでアニメーション インターポレータを使用します。
javascriptengineAndroid アプリで JavaScript を評価できるようにします。
jetifier非推奨のサポート ライブラリに対するライブラリの依存関係を同等の AndroidX 依存関係に移行するスタンドアロン ツール。
leanbackこのアーティファクトの代わりに Compose for TV を使用してください。
legacyこのアーティファクトとそのクラスは非推奨になりました。Android 8 以降、バックグラウンド チェックの制限により、このクラスは有用でなくなりました。
lintGradle API の使用状況を確認する lint チェック
loader設定の変更後も保持される UI のデータを読み込みます。
localbroadcastmanagerこのアーティファクトとそのクラスは非推奨になりました。代わりに、LiveData ストリームまたはリアクティブ ストリームを使用してください。
mediaメディアのコンテンツとコントロールを他のアプリと共有します。media2 が優先されます。
media2メディアのコンテンツとコントロールを他のアプリと共有します。
media3 *メディアのユースケースのサポート ライブラリ。
mediarouter共通のユーザー インターフェースを使用して、リモートの受信デバイスでメディアの表示と再生を有効にします。
multidex複数の dex ファイルを使用するアプリを Android 5 より前のデバイスにデプロイします。
metricsアプリのさまざまなランタイム指標を追跡して報告します
palette画像から代表的なカラーパレットを抽出します。
PDFアプリ内に PDF 表示機能を追加するライブラリ。
percentlayoutこのアーティファクトとそのクラスは非推奨になりました。代わりに、ConstraintLayout と関連レイアウトを使用してください。
preferenceデバイス ストレージの操作や UI の管理なしで、インタラクティブな設定画面を構築します。
printアプリから、写真、ドキュメント、その他のグラフィックと画像を印刷します。
privacysandbox.activityTODO
privacysandbox.adsこのライブラリにより、Android 版プライバシー サンドボックスの一部であるプライバシー保護 API との統合が可能になります。
privacysandbox.pluginsAndroid プライバシー サンドボックス SDK ライブラリ Gradle プラグイン
privacysandbox.sdkruntimeこのライブラリは SdkRuntime 対応コンシューマ用のコンポーネントを提供します。
privacysandbox.toolsAndroid でプライバシー サンドボックス機能を活用するためのライブラリ。
privacysandbox.uiTODO
profileinstallerART によって読み取られる事前コンパイル トレースをライブラリが事前取り込みできるようにします。
recommendationAndroid TV ランチャーのホーム画面におすすめのコンテンツを表示します。
recyclerviewメモリ使用量を最小限に抑えつつ、大規模なデータのセットを UI に表示します。
remotecallbackデベロッパーが PendingIntent を提供しやすくするためのラッパーを作成します。
resourceinspectionAndroid Studio の Live Layout Inspector にカスタムビューの属性を表示します。
savedstateプロセスの終了時に UI の状態を保存し、プロセスの再開時にその状態を復元するプラグイン可能なコンポーネントを作成します。
security鍵を安全に管理し、ファイルと sharedpreference を暗号化します。
sharetargetショートカットを直接共有ターゲットとして使用するための下位互換性を提供します。
sliceテンプレート化された UI 要素をアプリ外で表示します。
slidingpanelayoutスライディング ペイン UI パターンを実装します。
startupアプリの起動時にコンポーネントを初期化する簡単で効率的な方法を実装します。
sqliteローカル SQLite データベースを操作します。可能であれば、代わりに Room を使用してください。
swiperefreshlayoutスワイプで更新する UI パターンを実装します。
test.uiautomatorクロスアプリで機能する UI テスト用のフレームワークです。
textclassifierテキスト内の会話、リンク、選択内容などの構造を識別します。
tracingトレース イベントをシステム トレース バッファに書き込みます。
transition開始レイアウトと終了レイアウトで UI のモーションにアニメーションを付けます。
tvテレビ用のアプリを作成するための Compose とマテリアル デザインの機能をデベロッパーに提供します。
tvproviderAndroid TV のチャンネルを提供します。
vectordrawableベクター グラフィックをレンダリングします。
versionedparcelable安定したコンパクトなバイナリ シリアル化形式を提供します。この形式は、プロセス間で渡すことも安全に永続化することもできます。
viewpagerビューまたはフラグメントをスワイプ可能な形式で表示します。可能であれば、代わりに viewpager2 を使用してください。
viewpager2ビューまたはフラグメントをスワイプ可能な形式で表示します。
wearWear OS by Google スマートウォッチ向けのアプリを作成します。
wear.composeウェアラブル固有のデバイス、サイズ、形状、ナビゲーション操作をサポートする機能を提供して、ウェアラブル デバイス向けの Jetpack Compose アプリを作成します。
wear.protolayoutこのライブラリを使用すると、リモート サーフェスでレンダリング/評価される UI レイアウトと非 UI 式のセットを定義できます。
wear.tilesWear OS by Google スマートウォッチ向けのアプリを作成します。
wear.watchfaceWear OS by Google スマートウォッチ向けのアプリを作成します。
webkitAndroid 5 以上で、最新の WebView API を操作します。
window折りたたみ式デバイスなど、さまざまなデバイス フォーム ファクタをサポートできるようにします。
window.extensions.coreWindow Manager ライブラリ拡張機能のコア API。
Compose 2023 年 8 月
Jetpack Compose 1.5.0 は安定版になり、パフォーマンスが大幅に改善されました。たとえば、「Clickable」などの高レベルの修飾子のリファクタリングにより、コンポーズ時間を 80% 短縮できます。2023 年 8 月の Compose では、メモリ割り当て(特にグラフィック スタック)が最大 70% 改善され、デバイス上の Compose のメモリ使用量が削減されます。
Wear Compose と Tiles 1.2
Wear Compose と Wear Tiles の両方が安定版に移行され、Wear OS デベロッパーのエクスペリエンスがさらに向上しました。これらは互いに補完しあうため、Wear Compose を使用して Wear デバイスで複雑なアプリ画面を作成したり、Wear タイルを使用してアプリタイルを作成したりできます。新しい Wear Compose リリースには、エキスパンド アイテムやスワイプでの表示などの新機能が含まれています。Wear Tiles のリリースでは、ウィジェットのアニメーションとプラットフォーム データ バインディング(健康データソースなど)もサポートされるようになりました。
Window 1.1
1.1 によりアクティビティの埋め込みの API が安定し、WhatsApp、eBay、Temu などのアプリで大画面レイアウトを実装できるようになりました。この API には、デベロッパーが分割画面の動作を変更したり、実行時に分割状態を確認(および変更)したり、横方向の分割を実装したり、全画面でモーダルを開始したりできる機能が豊富に用意されています。
リリースノート
詳細については、リリースノートをご覧ください。

Android Jetpack を使用する理由

Android Jetpack ライブラリは最新の設計プラクティスに基づいており、下位互換性を備え、クラッシュやメモリリークを最小限に抑えます。
Android Jetpack はバックグラウンド タスク、ナビゲーション、ライフサイクル管理などの煩雑な設定を削減でき、アプリの基幹機能に開発リソースを集中することができます。
Android のバージョンやデバイスを問わず一貫して動作するライブラリにより、複雑さを軽減できます。

ニュースと動画