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 |
アプリケーション構造は次のようなイメージです。
各コンポーネントは、その1つ下のレベルのコンポーネントにのみ依存します。例えば、Activity/Fragmentは、ViewModelに依存しますが、Repository以下のコンポーネントには依存してはいけません。
今までになかったViewModelは、特定のUIコンポーネントのデータを提供します。それにはまたモデルとやり取りをするデータ処理に必要なビジネスロジックも含まれます(いいのかな?)。
LiveDataは、監視可能なデータホルダで、アプリケーションのライフサイクルに対応しているので、従来のオブザーバーのようにライフサイクルの管理をコーディングする必要が少なくなっています。
Repositoryは、アプリケーションの上位に対してデータソースを抽象化しています。
JetPackの各ライブラリに付与されるバージョン番号は、セマンティックバージョンが採用されています。
ライブラリの使用¶
Androidプログラミング-ViewModel
Androidプログラミング-LiveData
Androidプログラミング-DataBinding
Androidプログラミング-Room