Android DevelopersではMVVMアーキテクチャを推奨しています。
MVVMアーキテクチャを用いて開発することで、Controllerが抱えていたロジックをModelとViewModelに移すことができます。
これにより、これまでActivityやFragmentがロジックによって肥大化していた状態から改善することが可能になります。
また、UIとロジック(プレゼンテーションロジックやビジネスロジック)をレイヤー分けすることで、ロジックのテストもしやすくなります。
このMVVMアーキテクチャは、Jetpackに含まれるデータバインディングやViewModel、LiveDataなどを用いることで実現できます。
そのため、Android Jetpackを導入してAndroidアプリエンジニアとしてステップアップしていきたいと思います。
Android Jetpackとは
Android Jetpackは、androidx.*
パッケージライブラリで構成されているライブラリや、ツールの集まりです。
各コンポーネントは個別に導入が可能で、組み合わせることにより威力を発揮します。
既に触れていますが、MVVMアーキテクチャを実現する際には、データバインディングやLiveData、ViewModelのコンポーネントを組み合わせることでレイヤーを分けった設計が可能となります。
導入方法
プロジェクトのbuild.gradle
ファイルのrepositories
内にgoogle()
リポジトリを追加します。
新規プロジェクトを作成したときにはすでに定義されているかも知れませんが、一度確認してください。
allprojects {
repositories {
google()
jcenter()
}
}
コンポーネント毎の使い方
今後、コンポーネント毎に記事を順次まとめていく予定です。
現在作成している記事は以下になります。
Navigationコンポーネント
画面遷移を簡単に定義でき、フラグメントのトランザクション管理や戻るボタンの管理、画面遷移時のデータを安全に受け渡しなど魅力が多いです。
視覚的に画面遷移を表現することができるため、おすすめです。
ViewModelコンポーネント
画面を描画する際に必要となるデータの保存や管理をおこなうためのクラスです。
MVVMアーキテクチャで開発をする際のVM(View Model)の部分にあたる重要なコンポーネントです。
LiveDataコンポーネント
「Android JetpackのLiveDataってなに?」
「LiveDataはどうやって使ったらいいの?」
Android JetpackのLiveDataを使ったことがない方のこんな疑問を解決します。
LiveDataを使ったことがない方や、プロジェクトでLiveDataを使っているけど少し不安といった方は、是非記事をご覧ください。
データバインディング
データバインディング(DataBinding)とは、レイアウト内のコンポーネントに対してデータソースを定義することでバインドしてくれるライブラリです。
データバインディングを使ったことがない方や、いまいち理解できていないといった方は是非記事をご覧ください。