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実装に適用する際のベター/ベストプラクティスを知りたい人
Android Vitals徹底活用
快適なAndroidアプリをユーザーに提供しようと思うと、避けて通れないのが
+ クラッシュフリー
+ ANRフリー
+ 高い描画パフォーマンス
+ 短い起動速度
等の非機能要件です。現在のGoogle Play Consoleでは、Android Vitalsというこれらの各種パフォーマンス指標をウォッチし、改善の役に立てることができる情報を見ることができる機能が提供されています。
本発表ではAndroid Vitalsを知らない方、知っているが何となく触れずに来た方、見ているが実際にどう活用するべきかわからない方などに向けて、Android Vitalsをどう見るか、どう活用していくかという話をします。起動速度や描画速度の改善を目的とした際に、Android Studioのパフォーマンスプロファイリングの機能を活用する方法、あるいはGoogle Play Consoleの自動テストを活用して致命的なクラッシュ問題を避ける方法など、Android Vitalsに限らずAndroidアプリのパフォーマンス改善に役立つ方法についても実践内容を交えてお話ししますので、そちらに興味がある方にもおすすめです。
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