Slide 1

Slide 1 text

Understanding Dagger2 ਂ͍͍ษڧձ#8 Fuji

Slide 2

Slide 2 text

What’s Dagger2, why use it? • DI (Dependency Injection) Library • Easy to test • Manage Lifecycle • Module sharing, reusing, replacing • Auto code generating with annotation • Ikeike, Cool, Kacchoiiiiiiiiiii

Slide 3

Slide 3 text

Կ͕ศརʁ • ଞͷΫϥεͷґଘؔ܎ΛݮΒͤΔͨΊɺΫϥε͝ ͱͷςετΛॻ͖΍͘͢ͳΔ • ࢖͍·Θ͍ͨ͠ΠϯελϯεΛ؆୯ʹఆٛͰ͖Δ& Ұݩ؅ཧͰ͖Δ • ϘΠϥʔϓϨʔτͳίʔυΛݮΒͤΔ • ContextΛߦّͷྑ͍ํ๏Ͱ֤Ϋϥεʹ౉ͤΔ

Slide 4

Slide 4 text

Constitution • @Inject
 - ϑΟʔϧυσʔλ΍ίϯετϥΫλʹ෇͚Δͱର৅ΦϒδΣΫτΛnew͠ͳͯ͘ ΋injectΛݺΜͩλΠϛϯάͰউखʹ࡞ͬͯ͘ΕΔ • Module
 - new ͍ͨ͠΋ͷΛఆ͓ٛͯ͘͠ͱ͜Ζ • Component
 - ֤Moduleಉ࢜ΛͲͷΑ͏ʹඥ෇͚(ґଘ)ͤ͞Δ͔Λఆٛ͢Δ΋ͷ
 - Moduleಉ͕࢜਌ࢠؔ܎ͱͳΓɺࢠ͸਌ͷModule΋ࢀরͰ͖Δ • Scope
 - ComponentΛͲΕ͘Β͍ͷؒੜଘͤ͞Δ͔Λ؅ཧ͢Δ΋ͷ

Slide 5

Slide 5 text

Component & Module & Scope

Slide 6

Slide 6 text

͞Βʹࡉ͔͘ʂ

Slide 7

Slide 7 text

Jake͞ΜͷεϥΠυ͕Θ͔Γ ΍͍͢ͷͰҠಈʂ

Slide 8

Slide 8 text

Ͳ͏͍͏෩ʹΦϒδΣΫτ͕ ΠϯδΣΫτ͞Ε͍ͯ͘ͷ͔

Slide 9

Slide 9 text

΋͏গ͠ࡉ͔͘ʂ

Slide 10

Slide 10 text

Jake͞ΜͷεϥΠυ͕Θ͔Γ ΍͍͢ͷͰҠಈύʔτ2ʂ

Slide 11

Slide 11 text

طଘͷnanaͷDaggerͷ࢓૊ ΈΑΓ΋΋ͬͱྑ͍ํ๏Λߟ ͑ͯΈΔ

Slide 12

Slide 12 text

΋ͬͱྑ͍ํ๏Ҋ • Dagger.android֦ுΛ࢖ͬͯ͞ΒʹϘΠϥʔϓϨʔτίʔ υΛݮΒ͍ͯ͘͠ • ActivityComponent/ModuleͱFragmentComponent/ ModuleΛ͞Βʹݫີʹ؅ཧ͢Δ
 - MainActivityModuleɺSetupActivityModuleɺ RecordActivityModuleͳͲ
 - RepositoryΫϥε(SwaggerͷΧςΰϦͷཻ౓)ͱಉ͡ྖҬ Ͱ෼͚ͨΓͯ͠΋ྑͦ͞͏

Slide 13

Slide 13 text

࣮ࡍʹॻ͍ͯΈͨ

Slide 14

Slide 14 text

ଓ͘ɻ
 (Ϗϧυ͸௨ͬͨ)

Slide 15

Slide 15 text

References • Dagger2 ೖ໳ղઆ
 - https://qiita.com/MoyuruAizawa/items/ 26cb093adbc778013467 • Dependency Injection with Dagger2
 - https://jakewharton.com/dependency-injection-with-dagger-2/ • Dagger Android֦ுͷ࢖͍ํ
 - https://medium.com/@star_zero/dagger- android%E6%8B%A1%E5%BC%B5%E3%81%AE%E4%BD%BF %E3%81%84%E6%96%B9-6527dcb74531

Slide 16

Slide 16 text

Next Steps • Helping Dagger Help You
 - https://jakewharton.com/helping-dagger-help-you/ • Dagger2 - Subcomponent vs dependencies
 - http://yuki312.blogspot.com/2016/02/android- dagger2-subcomponent-vs.html • Dagger2 - MultibindingͰComponentΛ៉ྷʹ࢓্͛Δ
 - http://yuki312.blogspot.com/2017/02/dagger2- multibindingcomponent.html

Slide 17

Slide 17 text

Fin.