Submit Search
Upload
Tips of dagger2 (@SubComponent vs dependencies)
•
0 likes
•
582 views
Tsuyoshi Yoshioka
Follow
Presented in Potatotips #43
Read less
Read more
Mobile
Report
Share
Report
Share
1 of 13
Download now
Download to read offline
Recommended
システムのモダナイズ 落ちても良いアプリの作り方
システムのモダナイズ 落ちても良いアプリの作り方
Chihiro Ito
昔からシステムは常に問題なく使えて当然のように思われてきました。しかし現実には、現在に至るまでアプリケーションが落ちることが想定されていないシステムも少なくありません。 ステートレスなアプリケーションの場合、落ちることが想定されているシステムでは、アプリケーションを複数個並べることでそのうちのいくつかが落ちてしまっても、アプリケーション利用者には影響が無いように作られています。一方でHTTPセッションというステートフルな情報を持つアプリケーションはどうでしょうか? 本セッションでは、ステートフルなアプリケーションにおいて、落ちても問題ないアーキテクチャとはどのようなものになるのかを紹介します。
Mixed Reality Toolkit V2.4.0の機能 ~ Progress Indicator ~
Mixed Reality Toolkit V2.4.0の機能 ~ Progress Indicator ~
Takahiro Miyaura
XRミーティング2020/07/15登壇資料。 Mixed Reality Toolkit V2.4.0のProgress Indicatorについての調査内容とカスタムする方法についての紹介。
[DevSummit2013S]Android_Multi-Version_Multi-Device
[DevSummit2013S]Android_Multi-Version_Multi-Device
Kenichi Kambara
夏サミ2013のB2セッションの資料です。 Androidのマルチバージョン・マルチデバイス対応についてです。
最新アドテク×Java script実践活用術
最新アドテク×Java script実践活用術
Nagao Shun
3月3日開催 【ヒカ☆ラボ】JavaScript技術を高めたい方必見!最新アドテク×JavaScript実践活用術 https://atnd.org/events/61737 登壇資料になります。
明示的アニメで、Flutterアニメーション入門
明示的アニメで、Flutterアニメーション入門
cch-robo
Flutter Meetup Osaka #3 (2020/05/22) https://flutter-jp.connpass.com/event/169452/ IWD 2020 Women Techmakers (2020/05/24) の発表資料です。 https://wtmkyoto.connpass.com/event/176877/
GDG DevFest 2020 Android data linkage info
GDG DevFest 2020 Android data linkage info
tsutomuhayakawa
新しくなった画面間のデータ連携を知ろう
GoF デザインパターン 2009
GoF デザインパターン 2009
miwarin
t-wada さんが fukabori.fm で「デザインパターンの内訳が 2009 年に更新されていた」という話題をされていたので、自分でも整理します。
はじめようVue3!ハンズオンでとらのあなラボのフロントエンドを学ぶ_20210611_TechDay#1
はじめようVue3!ハンズオンでとらのあなラボのフロントエンドを学ぶ_20210611_TechDay#1
虎の穴 開発室
2021/06/11 とらのあなラボTechDay#1 における登壇資料です https://www.youtube.com/watch?v=PrU3roPxjz0 ソースコードはこちら https://github.com/toranoana/vue3-handson
Recommended
システムのモダナイズ 落ちても良いアプリの作り方
システムのモダナイズ 落ちても良いアプリの作り方
Chihiro Ito
昔からシステムは常に問題なく使えて当然のように思われてきました。しかし現実には、現在に至るまでアプリケーションが落ちることが想定されていないシステムも少なくありません。 ステートレスなアプリケーションの場合、落ちることが想定されているシステムでは、アプリケーションを複数個並べることでそのうちのいくつかが落ちてしまっても、アプリケーション利用者には影響が無いように作られています。一方でHTTPセッションというステートフルな情報を持つアプリケーションはどうでしょうか? 本セッションでは、ステートフルなアプリケーションにおいて、落ちても問題ないアーキテクチャとはどのようなものになるのかを紹介します。
Mixed Reality Toolkit V2.4.0の機能 ~ Progress Indicator ~
Mixed Reality Toolkit V2.4.0の機能 ~ Progress Indicator ~
Takahiro Miyaura
XRミーティング2020/07/15登壇資料。 Mixed Reality Toolkit V2.4.0のProgress Indicatorについての調査内容とカスタムする方法についての紹介。
[DevSummit2013S]Android_Multi-Version_Multi-Device
[DevSummit2013S]Android_Multi-Version_Multi-Device
Kenichi Kambara
夏サミ2013のB2セッションの資料です。 Androidのマルチバージョン・マルチデバイス対応についてです。
最新アドテク×Java script実践活用術
最新アドテク×Java script実践活用術
Nagao Shun
3月3日開催 【ヒカ☆ラボ】JavaScript技術を高めたい方必見!最新アドテク×JavaScript実践活用術 https://atnd.org/events/61737 登壇資料になります。
明示的アニメで、Flutterアニメーション入門
明示的アニメで、Flutterアニメーション入門
cch-robo
Flutter Meetup Osaka #3 (2020/05/22) https://flutter-jp.connpass.com/event/169452/ IWD 2020 Women Techmakers (2020/05/24) の発表資料です。 https://wtmkyoto.connpass.com/event/176877/
GDG DevFest 2020 Android data linkage info
GDG DevFest 2020 Android data linkage info
tsutomuhayakawa
新しくなった画面間のデータ連携を知ろう
GoF デザインパターン 2009
GoF デザインパターン 2009
miwarin
t-wada さんが fukabori.fm で「デザインパターンの内訳が 2009 年に更新されていた」という話題をされていたので、自分でも整理します。
はじめようVue3!ハンズオンでとらのあなラボのフロントエンドを学ぶ_20210611_TechDay#1
はじめようVue3!ハンズオンでとらのあなラボのフロントエンドを学ぶ_20210611_TechDay#1
虎の穴 開発室
2021/06/11 とらのあなラボTechDay#1 における登壇資料です https://www.youtube.com/watch?v=PrU3roPxjz0 ソースコードはこちら https://github.com/toranoana/vue3-handson
改めまして、Cognitive ToolKit です。
改めまして、Cognitive ToolKit です。
Ryuichi Tokugami
meetup app tokyo@2 での発表資料 CNTK. Published by 得上 竜一. 1 View, 0 Likes on Docs.com. #cntk #Cognitive...
楽しいアプリ制作の会 #12 Windows Phone 開発
楽しいアプリ制作の会 #12 Windows Phone 開発
Tomonori Ohba
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
Unity Technologies Japan K.K.
Unite Tokyo 2018 Training Day「C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Component System 編~」の資料です。 講師:大西 康満(ディベロッパーリレーションマネージャー・エンジニア|ユニティ・テクノロジーズ・ジャパン合同会社) ※【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~ の資料はこちら https://www.slideshare.net/UnityTechnologiesJapan/cjobsystem-ecscpu ■ワークショップ内容 C# Job System、ECS(Entity Component System)がUnity2018で使えるようになりました。 C# Job SystemはUnityのシステムと親和性が高く、安全なマルチスレッドプログラミングを容易にする新機能です。ECSは非常に高速な、新しいオブジェクトの管理システムです。この二つを組み合わせて、CPUのパワーを非常に効率よく利用することができます。 ※このセッションは、受講者がUnity上での基本的なC#プログラミング・マルチスレッドプログラミングに関する基本的な知識を持っている前提で行います。 ※ECSは現在ベータ段階で今後も調整、変更が重ねられる予定です。
Using the Fragments(Android)
Using the Fragments(Android)
Teruaki Kinoshita
A guide for beginners on how to use the Fragments.
おいしいFragment #antama_ws
おいしいFragment #antama_ws
Takahiro Yoshimura
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Yoshifumi Kawai
Metro.cs #1 Background of PhotonWire - Typed Asynchronous RPC Layer for Photon Server + Unity
ぱっと見でわかるC++11
ぱっと見でわかるC++11
えぴ 福田
Tech talk salesforce mobile sdk
Tech talk salesforce mobile sdk
Kazuki Nakajima
Fujitask meets Extensible Effects
Fujitask meets Extensible Effects
Hikaru Yoshimura
ScalaMatsuri2019 day2 slide https://y-yu.github.io/fujitask-eff-slide/fujitask_without_animation.pdf
Flutter のリアクティブ戦略 set state 〜 redux まで
Flutter のリアクティブ戦略 set state 〜 redux まで
cch-robo
Build reactive mobile apps with Flutter (Google I/O '18) セッションのまとめです。 Flutter Meetup Tokyo #2 (LT資料) https://flutter-jp.connpass.com/event/86352/ Build reactive mobile apps with Flutter (Google I/O '18) https://www.youtube.com/watch?v=RS36gBEp8OI
More Related Content
Similar to Tips of dagger2 (@SubComponent vs dependencies)
改めまして、Cognitive ToolKit です。
改めまして、Cognitive ToolKit です。
Ryuichi Tokugami
meetup app tokyo@2 での発表資料 CNTK. Published by 得上 竜一. 1 View, 0 Likes on Docs.com. #cntk #Cognitive...
楽しいアプリ制作の会 #12 Windows Phone 開発
楽しいアプリ制作の会 #12 Windows Phone 開発
Tomonori Ohba
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
Unity Technologies Japan K.K.
Unite Tokyo 2018 Training Day「C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Component System 編~」の資料です。 講師:大西 康満(ディベロッパーリレーションマネージャー・エンジニア|ユニティ・テクノロジーズ・ジャパン合同会社) ※【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~ の資料はこちら https://www.slideshare.net/UnityTechnologiesJapan/cjobsystem-ecscpu ■ワークショップ内容 C# Job System、ECS(Entity Component System)がUnity2018で使えるようになりました。 C# Job SystemはUnityのシステムと親和性が高く、安全なマルチスレッドプログラミングを容易にする新機能です。ECSは非常に高速な、新しいオブジェクトの管理システムです。この二つを組み合わせて、CPUのパワーを非常に効率よく利用することができます。 ※このセッションは、受講者がUnity上での基本的なC#プログラミング・マルチスレッドプログラミングに関する基本的な知識を持っている前提で行います。 ※ECSは現在ベータ段階で今後も調整、変更が重ねられる予定です。
Using the Fragments(Android)
Using the Fragments(Android)
Teruaki Kinoshita
A guide for beginners on how to use the Fragments.
おいしいFragment #antama_ws
おいしいFragment #antama_ws
Takahiro Yoshimura
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Yoshifumi Kawai
Metro.cs #1 Background of PhotonWire - Typed Asynchronous RPC Layer for Photon Server + Unity
ぱっと見でわかるC++11
ぱっと見でわかるC++11
えぴ 福田
Tech talk salesforce mobile sdk
Tech talk salesforce mobile sdk
Kazuki Nakajima
Fujitask meets Extensible Effects
Fujitask meets Extensible Effects
Hikaru Yoshimura
ScalaMatsuri2019 day2 slide https://y-yu.github.io/fujitask-eff-slide/fujitask_without_animation.pdf
Flutter のリアクティブ戦略 set state 〜 redux まで
Flutter のリアクティブ戦略 set state 〜 redux まで
cch-robo
Build reactive mobile apps with Flutter (Google I/O '18) セッションのまとめです。 Flutter Meetup Tokyo #2 (LT資料) https://flutter-jp.connpass.com/event/86352/ Build reactive mobile apps with Flutter (Google I/O '18) https://www.youtube.com/watch?v=RS36gBEp8OI
Similar to Tips of dagger2 (@SubComponent vs dependencies)
(10)
改めまして、Cognitive ToolKit です。
改めまして、Cognitive ToolKit です。
楽しいアプリ制作の会 #12 Windows Phone 開発
楽しいアプリ制作の会 #12 Windows Phone 開発
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
Using the Fragments(Android)
Using the Fragments(Android)
おいしいFragment #antama_ws
おいしいFragment #antama_ws
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
ぱっと見でわかるC++11
ぱっと見でわかるC++11
Tech talk salesforce mobile sdk
Tech talk salesforce mobile sdk
Fujitask meets Extensible Effects
Fujitask meets Extensible Effects
Flutter のリアクティブ戦略 set state 〜 redux まで
Flutter のリアクティブ戦略 set state 〜 redux まで
Tips of dagger2 (@SubComponent vs dependencies)
1.
Dagger2 の @SubComponent と
dependencies について Tsuyoshi Yoshioka (@tsuyogoro) Mercari Android Engineer
2.
About me Tsuyoshi Yoshioka
(@tsuyogoro) Android engineer Mercari, Inc
3.
Mercari in US
4.
5.
About this talk @SubComponent vs dependencies
= { .... }
6.
Dagger2 Component Module (A) @Provide XData
provideX() { … } Module (B) @Provide YData provideY() { … } Module (C) @Provide ZData provideZ() { … } @Inject XData x; @Inject YData y; @Inject ZData z; … void init() { … Component.get().inject(this); }
7.
@SubComponent App Component EventRegister Component @Component (modules =
{ … } ) interface AppComponent { EventRegisterComponent subComponent(); .... } @SubComponent (modules = { … }) interface EventRegisterComponent { ... } appComponent.subComponent() ● AppComponent が provide するインスタンスも provideできる ⇛ クラス継承に似ている ● SubSubComponent は無いので、これ以上の親子関係が作れない
8.
dependencies App Component EventRegister Component @Component (modules =
{ … } ) interface AppComponent { ... } @Component ( modules = { … } dependencies = AppComponent.class ) interface EventRegisterComponent { ... } DaggerEventRegisterComponent .builder() .appComponent(appComponent) .build(); ● @SubComponent 同様 AppComponent の provide 機能を継承 (?) できる ● dependencies には複数 component を指定することが可能 ● ただし、SubSubComponent のような階層構造になる時は書き方に注意 (appendix にて)
9.
@SubComponent vs dependencies @SubComponent
dependencies 依存グラフの階層 親 & 子 まで 親子以上作れる 使いやすさ 割と最初はとっつきやすかった印象。 色々理解してから dagger2 を使い出す と、”親子まで” という制約が辛くなる時が ある component の取り扱いを理解するまで はなかなかキツかった。 親子以上の依存グラフが作れるのはと ても大きい。データのライフサイクルを きちんと考えて設計する場合はこちらを オススメ。
10.
More practice... http://qiita.com/tsuyoyo/items/d48553cdc4189ade17bc
11.
Let’s make world
better place together!! (Android) http://bit.ly/2wGK8r2 (iOS) http://bit.ly/2wsUzPK
12.
13.
dependencies App Component EventRegister Component @Component (modules =
{ … } ) interface AppComponent { … @Provide AppData appData() { … } } @Component ( modules = { … } dependencies = AppComponent.class ) interface EventRegisterComponent { … AppData appData(); } SubEventRegister Component @Component ( modules = { … } dependencies = EventRegisterComponent.class ) interface SubEventRegisterComponent { ... } provide の継承は一つ下までしかでき ないので、それ以上を継承したい場合 は、親側で宣言が必要。 この場合は、 EventRegisterComponent に AppData を provide する旨を記載し ないと、 SubEventRegisterComponent で AppData が inject できない
Download now