Slide 1

Slide 1 text

RxSwiftษڧձ ͦͷ0

Slide 2

Slide 2 text

ࣗݾ঺հ • Yusuke Hosonuma • ݴޠ͸JavaɺObjective-CɺSwiftɺଞ৭ʑ • ʢ࠷ۙͷʣ࠲ӈͷ໏ɿ
 ͝஫จ͸10೥ؒอकՄೳͳίʔυͰ͔͢ʁ • QiitaͰ1,000௒͑ͨΑʂ

Slide 3

Slide 3 text

RxSwift
 ʢ͋ʔΔ͍͑ͬ͘͢͢;ͱʣ

Slide 4

Slide 4 text

͊͞RxSwiftॻͧ͘ʂ

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

ʁ

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

ʂʁ

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

ͦΜͳ͜ͱʹ ͳΒͳ͍Α͏ʹ

Slide 11

Slide 11 text

·ͣ͸

Slide 12

Slide 12 text

ϦΞΫςΟϒ
 ϓϩάϥϛϯάͷ

Slide 13

Slide 13 text

ߟ͑ํ͔Βֶ΅͏ʂ

Slide 14

Slide 14 text

ࠓ೔ͷຊ୊

Slide 15

Slide 15 text

ϦΞΫςΟϒϓϩάϥ ϛϯάͱ͸Կ͔ʁ

Slide 16

Slide 16 text

ඇಉظσʔλετϦʔϜ Λ༻͍Δϓϩάϥϛϯά

Slide 17

Slide 17 text

ඇಉظσʔλετϦʔϜͷྫ • I/OΠϕϯτ • ΫϦοΫΠϕϯτ • λονΠϕϯτ • etc…

Slide 18

Slide 18 text

͑ɺͦΕͷ Ͳ͕͜৽͍͠ͷʁ

Slide 19

Slide 19 text

ϦΞΫςΟϒϓϩάϥ ϛϯάͰ͸

Slide 20

Slide 20 text

ຆͲ͢΂ͯΛ ετϦʔϜͰߟ͑Δ

Slide 21

Slide 21 text

ԿͰ΋ετϦʔϜ • ม਺ • Ϣʔβೖྗ • ϓϩύςΟ • σʔλߏ଄ • etc…

Slide 22

Slide 22 text

ͱ͜ΖͰ ετϦʔϜͬͯԿʁ

Slide 23

Slide 23 text

ҰݴͰ͍͏ͳΒ

Slide 24

Slide 24 text

Կ͔͕ྲྀΕͯ͘Δ ʮ઒ʯ

Slide 25

Slide 25 text

౧͕ྲྀΕͯ͘ΔσʔλετϦʔϜʢ઒ʣ

Slide 26

Slide 26 text

ετϦʔϜ͸ ͍ΖΜͳૢ࡞͕ग़དྷΔ

Slide 27

Slide 27 text

ετϦʔϜͷૢ࡞ • ࡞੒
 ⾣ ৽ͨͳ઒Λ࡞ΕΔ • ߹੒ʢmergeʣ
 ⾣ ઒Λ߹ྲྀͯ͠Ұͭʹ͢Δ͜ͱ͕ग़དྷΔ • ม׵ʢfilterɺmapɺflatMapʣ
 ⾣ ͸ແࢹͨ͠Γɺ౧ଠ࿠ʹม͑ͨΓʢڧҾʁʣ

Slide 28

Slide 28 text

ετϦʔϜͷ ՄೳੑΛߟ͑Δ

Slide 29

Slide 29 text

ͦͷલʹ RxSwiftʹ͍ͭͯগ͠

Slide 30

Slide 30 text

ུྺ • ReactiveX (Rx) ϑΝϛϦʔͷҰһ • Rxࣗମ͸.NETൃ঵ʢ࣮͸ރΕٕͨज़ʣ • ڝ߹͸ʮReactiveCocoaʯʮSwiftBondʯͱ͔

Slide 31

Slide 31 text

ֶͿϞνϕʔγϣϯ • ঢ়ଶม਺ΛݮΒͤΔ • ෳࡶͳॲཧΛγϯϓϧʹهड़Ͱ͖Δ • ॲཧΛએݴతʹهड़Ͱ͖Δ
 ʢؔ਺ܕͷӨڹ͸ڧ͘ड͚ͯΔʣ • ͏ͪͷϓϩδΣΫτͰਖ਼ࣜ࠾༻ʢϐϯνͩΑʂʣ

Slide 32

Slide 32 text

ؓ࿩ٳ୊

Slide 33

Slide 33 text

ετϦʔϜ͸

Slide 34

Slide 34 text

࣌ؒॱʹฒΜͩ
 ਐߦதͷΠϕϯτͷྻ

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

ҎԼͷ3छྨ͕ྲྀΕͯ͘Δ • ʢԿΒ͔ͷܕʣ஋ • Τϥʔ • ׬ྃ • ஋ʹ͔͠ڵຯͳ͍ͱ͖͸ɺ
 Լ2ͭ͸ແࢹ͢Δ͜ͱ΋

Slide 37

Slide 37 text

͜ͷʢ઒ʹʣ
 ྲྀΕͯ͘Δ΋ͷΛ

Slide 38

Slide 38 text

؂ࢹʢlistenʣ͢Δ

Slide 39

Slide 39 text

ϦΞΫςΟϒ༻ޠͩͱ subscribingʢߪಡʣ

Slide 40

Slide 40 text

·͊ͭ·Γ͸

Slide 41

Slide 41 text

઒Ͱચ୕͠ͳ͕Β ౧Λ଴ͬͯΔ͓͹͋ͪΌΜ

Slide 42

Slide 42 text

μϒϧΫϦοΫͷ ετϦʔϜʹ͍ͭͯߟ͑Δ

Slide 43

Slide 43 text

ී௨ʹ࣮૷͢Δͱʁ

Slide 44

Slide 44 text

μϒϧΫϦοΫͷ࣮૷ • ΫϦοΫͨ͠λΠϛϯάΛ͓֮͑ͯ͘ม਺ • ִ࣌ؒؒΛௐ΂Δ • τϦϓϧΫϦοΫ͸ݕ஌͠ͳ͍Α͏ʹ • ؆୯ʹͰ͖ͦ͏͚ͩͲΘΓͱ໘౗ͦ͏

Slide 45

Slide 45 text

ετϦʔϜͰߟ͑Δͱʁ

Slide 46

Slide 46 text

250msͷִ͕ؒແ͍࣌ؒͰ ΠϕϯτΛ·ͱΊΔ

Slide 47

Slide 47 text

Πϕϯτͷ·ͱ·ΓΛ ݸ਺ʹม׵͢Δ

Slide 48

Slide 48 text

ݸ਺͕2ͷ΍͚ͭͩΛ ϑΟϧλʔ͢Δ

Slide 49

Slide 49 text

ΫϦοΫͷ ετϦʔϜ͔Β

Slide 50

Slide 50 text

μϒϧΫϦοΫͷ ετϦʔϜ͕ग़དྷͨʂʁ

Slide 51

Slide 51 text

ετϦʔϜͷՄೳੑ͕ ݟ͖͑ͯ·ͤΜ͔ʁ

Slide 52

Slide 52 text

๻͕޷͖ͳͷ͸ϦΞΫςΟϒϓϩάϥϛϯά͚ͩ͞ʂ ໋ྩܗϓϩάϥϛϯάͳΜͯΫιήʔͩʂ

Slide 53

Slide 53 text

ͦΖͦΖऴΘΓͰ͕͢

Slide 54

Slide 54 text

͜Ε͔ΒͷཱྀͷಓඪΛ

Slide 55

Slide 55 text

ಓඪ • ʲ຋༁ʳ͋ͳ͕ͨٻΊ͍ͯͨϦΞΫςΟϒϓϩά ϥϛϯάೖ໳
 http://ninjinkun.hatenablog.com/entry/introrxja • RxSwift: ReactiveX for Swift
 https://github.com/tid-kijyun/RxSwift/blob/ translates-into-japanese/README-ja.md • ໎ͬͨ࣌͸͍ͭͰ΋ʮ઒ʯΛࢥ͍ग़͢͜ͱ

Slide 56

Slide 56 text

ͪͳΈʹ಺෦తʹ͸

Slide 57

Slide 57 text

Observerύλʔϯ͕ ࢖ΘΕ͍ͯ·͢

Slide 58

Slide 58 text

΍΍͘͜͠ײ͡Δ༻ޠ͸ ͦͷ͋ͨΓ͔Βདྷ͍ͯ·͢

Slide 59

Slide 59 text

Observer༻ޠ • Subject • Observable • Observer • Subscribe

Slide 60

Slide 60 text

·ͱΊ

Slide 61

Slide 61 text

ࠓ೔ͷ·ͱΊ • ϦΞΫςΟϒϓϩάϥϛϯά͸ʮඇಉظσʔλ ετϦʔϜʯΛ༻͍Δϓϩάϥϛϯά • ετϦʔϜ͸Կ͔ΒͰ΋࡞ΕΔɻ • ετϦʔϜ͸͍ΖΜͳૢ࡞ʢ߹੒ɾϑΟϧλɾม ׵ʣ͕Ͱ͖Δɻ • ͢΂ͯ͸ετϦʔϜͰ͋Δɻ

Slide 62

Slide 62 text

Thanks.