Successfully reported this slideshow.
Your SlideShare is downloading. ×

Flow, Mortar and Dagger 2 のTIPS

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 7 Ad

More Related Content

Viewers also liked (20)

Advertisement

Recently uploaded (20)

Flow, Mortar and Dagger 2 のTIPS

  1. 1. Dagger2のTIPS フリーランス 武藤大樹 (@__tai2__) Flow, Mortar and Photo by Brenda Clarke(CC BY 2.0) https://flic.kr/p/6njqAc
  2. 2. メリット • Fragmentのライフサイクル問題が軽減される(No IllegalStateException!!!) • Flow: View主体の画面遷移、必要なデータはコンストラクタ に渡して遷移すればOK • Mortar: Context#getSystemServiceの拡張、Viewの永続化 がBundleでできるようになる • Dagger(2): コンポーネント間の疎結合、フィールドの先頭に @Injectと付けとけば勝手に初期化されるのでスッキリする
  3. 3. Dagger 2 (Daggerとの違い) • ランタイムリフレクション一切なし • ビルド前にアノテーションからソースコード生成
  4. 4. 階層毎のScope • オブジェクトグラフを階層化可能(階層毎にScopeアノテーショ ンが必要) • 画面毎に異なるオブジェクトグラフを構築。 • @Singleton(Applicationレベル)と@PerScreen(画面レベル)の2 階層 @Singleton @PerScreen
  5. 5. オブジェクトグラフの検索 • @WithComponent: 画面(Path)に対応するオブジェクトグラフ を指定する • @WithComponent,@Component,@Moduleからクラスをラン タイムリフレクションで検索して、オブジェクトグラフを生成 • オブジェクトグラフ間の依存関係はハードコーディング
  6. 6. Proguard -keep @dagger.Component public class *
 -keep @dagger.Module public class * { *; }
 -keep class net.tai2.flowmortardagger2demo.**Dagger** { *; }
  7. 7. サンプルコード https://github.com/tai2/flowmortardagger2demo (TODOアプリ)

×