プロジェクト

全般

プロフィール

Androidプログラミング-Jetpack

Jetpack概要

Google I/O 2018で発表された、「次世代のコンポーネント、ツール、アーキテクチャガイダンス」で、ライブラリ集として提供され、任意に選択して使用します。
Kotlinの本格サポート、ボイラーテンプレートコードの撤廃、高品質などが目的です。

既存のSupport Library1やArchitecture Componentも含まれています。
名前空間は androidx となり、ターゲットAPI 28以上(Android OS 9+)となります。

1 API 27以前は、android.support.* パッケージで提供されており、今後もしばらく提供は継続するが、新しい開発はAndroidX下で行われる。新しいプロジェクトでは、anrdoid.supportではなくAndroidXのSupport Libraryを使うことが推奨となる

ライブラリ群は次の4つのカテゴリに分類されます。

No. 分類 含まれるライブラリ(抜粋)
1 Foundation AppCompat(下位互換)、AndroidKTX、Test
2 Architecture Data Binding、Lifecycles、LiveData、Navigation、Room、ViewModel、WorkManager
3 Behavior Download manager、Media & playback、Notifications、Permissions、Preferences
4 UI Animation & Transitions、Emoji、Fragment、Layout

アプリケーション構造は次のようなイメージです。

application_architecutre_jetpack.png

各コンポーネントは、その1つ下のレベルのコンポーネントにのみ依存します。例えば、Activity/Fragmentは、ViewModelに依存しますが、Repository以下のコンポーネントには依存してはいけません。

今までになかったViewModelは、特定のUIコンポーネントのデータを提供します。それにはまたモデルとやり取りをするデータ処理に必要なビジネスロジックも含まれます(いいのかな?)。
LiveDataは、監視可能なデータホルダで、アプリケーションのライフサイクルに対応しているので、従来のオブザーバーのようにライフサイクルの管理をコーディングする必要が少なくなっています。

Repositoryは、アプリケーションの上位に対してデータソースを抽象化しています。

JetPackの各ライブラリに付与されるバージョン番号は、セマンティックバージョンが採用されています。

ライブラリの使用

Androidプログラミング-ViewModel