Slide 1

Slide 1 text

iOSΞϓϦͷΞʔΩςΫνϟʹ͍ͭͯ ߟ͑ͯͨͲΓண͍ͨ݁࿦ DevSapษڧձ 18/07/28

Slide 2

Slide 2 text

ੁݪ ༞ @yusuga_

Slide 3

Slide 3 text

ਪ͠ΞʔΩςΫνϟ ReactorKit

Slide 4

Slide 4 text

• ReactorKit͸ϦΞΫςΟϒͰ୯ํ޲ͷ ΞʔΩςΫνϟΛߏங͢ΔͨΊͷ Framework

Slide 5

Slide 5 text

Flux + Reactive Programming

Slide 6

Slide 6 text

iOSΞϓϦͷΞʔΩςΫ νϟʹ͍ͭͯߟ͑Δ DevSapษڧձ 17/05/20 MVC2/MVVM/ReactorKitͷൺֱ

Slide 7

Slide 7 text

ReactorKitΛֶͿγϦʔζ ೖ໳ฤ/جૅฤ/࣮ફฤ

Slide 8

Slide 8 text

ReactorKit Meetup Japan LT࿮Ͱൃද

Slide 9

Slide 9 text

ReactorKit Meetup Japan Report ~࡞ऀdevxoulʹΑΔجௐߨԋͱ࣮ફLT~

Slide 10

Slide 10 text

ReactorKitΛਪ͍ͯ͠Δཧ༝

Slide 11

Slide 11 text

ʓʓͷਖ਼͍͠ઃܭ͸Θ͔Γ·͔͢ʁ • ʓʓ → MVC, MVVM, MVP, Clean Architecture, VIPER • ֶशίετ • ϩʔΧϧ/ࣾ಺ϧʔϧ͕௥Ճ͞Εɺ͞Βʹֶशίετ

Slide 12

Slide 12 text

ΞʔΩςΫνϟΛਖ਼͘͠ ࣮૷͢Δͷ͸೉͍͠

Slide 13

Slide 13 text

• ReactorKit͸ɺΞʔΩςΫνϟΛߏங͢ΔͨΊͷFramework • ֶशίετ͕খ͍͞ (※ RxSwiftͷཧղ͸ඞਢ) • Flux෦෼Λࣗಈߏஙͯ͘͠ΕΔͷͰίʔυྔ͕ݮΔ

Slide 14

Slide 14 text

ReactorKit Meetup JapanͷΞϑλʔύʔςΟʹͯ • ΞʔΩςΫνϟʹڵຯ͋Δਓ͕ଟ͍ͷͰ৭ʑͳ࿩Λฉ͘ • Ωʔϫʔυͱͯ͠ɺFlux, Redux, MVVM, Clean Architecture • ʓʓΛϕʔεʹ˚˚ͷҰ෦औΓೖΕͯΔͱ͍͏࿩͕ଟ͔ͬͨ • ΞʔΩςΫνϟͷ֦ு͸ආ͚Δ΂͖ͩͱࢥ͍ͬͯͨ • Ή͠Ζ൚༻ΞʔΩςΫνϟΛͦͷ··ద༻͢Δํ͕ٯʹί ετ૿ʹͳΔ͜ͱ΋…ʁ

Slide 15

Slide 15 text

ͲͷϓϩδΣΫτʹ΋ϑΟοτ͢Δ ൚༻ΞʔΩςΫνϟΛ୳͍ͯͨ͠ • ݬ૝ͩͬͨ… • ͦΜͳ΋ͷ͸ଘࡏ͠ͳ͍ • ϓϩδΣΫτͷن໛͕খ͚͞Ε͹ͳΜͰ΋Α͘ɺن໛͕େ͖͚ Ε͹ແཧʹ߹ΘͤΔඞཁ͸ͳ͍ • νʔϜʢ࣮૷ऀʣͷ޷ΈͰ͋ͬͨΓɺઃܭࢥ૝ʹࠨӈ͞ΕΔ

Slide 16

Slide 16 text

݁࿦

Slide 17

Slide 17 text

൚༻తͳΞʔΩςΫνϟ͸͋͘·Ͱ΋ϕʔεͰ ඞཁͰ͋Ε͹ϓϩδΣΫτʹϚον͢ΔΑ͏ ΞʔΩςΫνϟΛ֦ு͢Δ

Slide 18

Slide 18 text

ཱྀͷऴᖼ • ΞʔΩςΫνϟΛ୳ཱྀ͢͸ऴΘΓ • ݸਓతʹ͸ReactorKitΛϕʔεʹ͍ͯ͘͠ • ίʔυྔ͕ݮΓɺ؆୯ʹਖ਼͍͠ΞʔΩςΫνϟ͕ߏஙͰ͖Δ • ࠓͷॴࠔͬͨ͜ͱ͸ͳ͘ɺಠ֦ࣗு΋ඞཁͱ͍ͯ͠ͳ͍ • ԿΑΓઃܭࢥ૝͕޷͖

Slide 19

Slide 19 text

ʢଓʣReactorKit Meetup JapanͷΞϑλʔύʔςΟʹͯ • ৭ʑͳ࿩Λฉ͍ͯͯɺͳͥ൚༻తͳΞʔΩςΫνϟ͕ϑΟοτ ͠ͳ͘ͳͬͯ͘ΔΜͩΖ͏ͱٙ໰ • ߏ଄ͷෳࡶԽ • Ұ෦ίϯϙʔωϯτͷංେԽ • ίϯϙʔωϯτؒͷґଘؔ܎

Slide 20

Slide 20 text

࣍ͷཱྀ • Dependency Injection (DI) • ґଘΦϒδΣΫτͷ஫ೖ • ࠓ·Ͱ͸SwinjectΛService૚ʹରͯ͠࠾༻͍ͯͨ͘͠Β͍

Slide 21

Slide 21 text

ൺֱ • DIͳ͠ • DI: खಈ, Pure • ಈతDIίϯςφ: Swinject, Cleanse • ੩తDIίϯςφ: DIKit, Cake pattern, Reader Monad • Service Locator ύλʔϯ • Dependency Lookup

Slide 22

Slide 22 text

࠷༗ྗਪ͠DI Pure

Slide 23

Slide 23 text

Pure DI • Pure DI by Mark Seemann • DIίϯςφΛ࢖༻͠ͳ͍DI • ݸਓతʹ͸ಈతDIίϯςφ͸ڧ͍੩త ܕ෇͚Ͱ͋ΔSwiftʹϚον͠ͳ͍ͷͰ ͸ͱײ͡Δ ! • ίʔυྔ͸ݮָͬͯͳͷͰ͕͢…

Slide 24

Slide 24 text

Pure DI in Swift • devxoul/Pure • ࡞ऀ͸ReactorKitͱಉ͡ʂʂ • v1.0.0 • ϥΠϒϥϦࣗମ͸ඇৗʹܰྔ • ׆༻͢ΔͨΊʹ͸DIͷ஌͕ࣝඞཁ • ReactorKitʹҾ͖ଓ͖ઃܭࢥ૝͕޷ ͖ • ݱࡏ࣮Ҋ݅ʹ࠾༻͠ઈࢍࢼߦࡨޡத

Slide 25

Slide 25 text

Pureͷ։ൃཧ༝Λฉ͍ͯΈͨ • ReactorKitͷαϯϓϧͷ1ͭͰ͋ΔDrrribleͷ࠷৽͸Swinject͕࡟ আ͞ΕɺPureΛ࢖Θͳ͍Pure DIͷ࣮૷ʹͳ͍ͬͯΔ • ͦͷཧ༝ΛReactorKit Meetup JapanͷΞϑλʔύʔςΟͰ࡞ऀ ͷಉ྅ͷํʹ࣭໰ͨ͠ • ಈతDIίϯςφͷ࣮૷ϛε͸ϥϯλΠϜͰ͔͠ݕ஌Ͱ͖ͳ͍ ͷΛ໰୊ʹײ͔ͨ͡Β • ࣮૷ϛε͸ίϯύΠϧͷ࣌఺Ͱݕ஌ɾղܾ͍ͨ͠

Slide 26

Slide 26 text

DIͷཱྀ΁

Slide 27

Slide 27 text

͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ