Session

Dagger2を活用してAndroid SDKの依存関係をクリーンにする

MVP、MVVM、クリーンアーキテクチャ等、Androidアプリケーションの設計を整理するパターンは様々存在しますが、
実際にこれらのパターンを開発で適用しようとすると、どうしてもネックになりやすいのがAndroid SDKに依存する機能の呼び出し部分です。

例えば

+ Contextに依存する処理
+ 画面遷移
+ FragmentManagerの操作
+ DialogFragmentの表示、
+ Lifecycleイベントのハンドリング

などがあげられます。

Fat Activity/Fragmentを避けようとMVP、MVVM、クリーンアーキテクチャ等のパターンを適用したはずなのに、どうしてもActivity/Fragmentにロジック部分が残ってしまいがちで結局設計を逸脱した例外的な処理の記述の仕方を行った経験などがある方もいらっしゃるのではないでしょうか。

本発表ではDagger2のScope、Subcomponentの機能を活用し、Android SDK由来の各種機能を疎結合に整理する方法、その利用例をご紹介します。

なお、本発表のサンプルコードはAndroid Data Bindingを利用したMVVMパターンを適用したアプリケーションを例として使用します。

## 目次(予定)

+ Scopeは二つに分ける(Singletonスコープ、Lifecycleスコープ)
+ Context依存を切り離す
+ 二つの方法、メリット/デメリット
+ 画面遷移を整理する
+ Delegationパターンを使ってActivity/Fragment/DialogFragmentに対応する
+ FragmentManager(DialogFragment)依存を切り離す
+ Lifecycleイベントのハンドリングを整理する
+ Android Architecture Componentsを利用するパターン
+ 自前でコールバックを定義するパターン

## 対象者

+ Fat Activity/Fragmentをスリムにしたい人
+ Dagger2の基本的な使い方は理解しているが、実践的にAndroid実装に適用する際のベター/ベストプラクティスを知りたい人

梅森 翔

dely, Inc. Lead Android Engineer

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top