Save 37% off PRO during our Black Friday Sale! »

rxswift2.pdf

70d9714ea13fc1133803d61fb16e4160?s=47 Yusuke Hosonuma
June 13, 2016
140

 rxswift2.pdf

70d9714ea13fc1133803d61fb16e4160?s=128

Yusuke Hosonuma

June 13, 2016
Tweet

Transcript

  1. RxSwiftษڧձ ͦͷ1

  2. ࣗݾ঺հ • Yusuke Hosonuma • ʢ࠷ۙͷʣҰݴɿ
 ʢ։ൃऀʹʣΊ͙Γ⁊͍ʢίʔυΛʣ๰͗ • ࠷ۙɺݞ͜Γͱ͔ࠅ͍ͷͰϤΨΛ࢝Ί·ͨ͠ɻ

  3. લճͷJOJORxSwift

  4. લճ • ϦΞΫςΟϒϓϩάϥϛϯάʹֶ͍ͭͯΜͩ • ඇಉظετϦʔϜΛѻ͏ϓϩάϥϛϯά • ݴ͍׵͑ΔͱԿ͔͕ྲྀΕͯ͘Δʮ઒ʯͰ͋Δ • ಺෦తʹ͸Observerύλʔϯ͕࢖ΘΕ͍ͯΔ

  5. ิ଍ • ϦΞΫςΟϒͱ͸ʮ൓Ԡੑʯͱ͍͏ҙຯ • Կ͔ʹ࿈ಈͯ͠উखʹԿ͔͕มΘΔΠϝʔδ • Excelͷ਺ࣜγεςϜ͸ϦΞΫςΟϒͳΞϓϦ έʔγϣϯͱݴ͑Δ

  6. ࠓճ

  7. ந৅తͳ֓೦Λ཭Εͯ

  8. ࣮ફతͳRxSwift ʹ͍ͭͯ

  9. ֶΜͰ͍͖·͢ʂ ʢલճͷ಺༰͸๨ΕͯOKʣ

  10. ΞδΣϯμ • RxSwiftͷϞδϡʔϧ • RxSwiftͷΠϯετʔϧ • Observable<T> —> Observer<T> ͷ઀ଓ

    • RxSwiftͷαϯϓϧίʔυ • ϥΠϒίʔσΟϯάʢؤுͬͯΈΔΑʂʣ
  11. RxSwiftͷϞδϡʔϧ

  12. RxSwiftͷϞδϡʔϧ • 2ͭͷϞδϡʔϧͰ੒Γཱ͍ͬͯΔ • 1) RxSwift • 2) RxCocoa

  13. 1) RxSwift

  14. 1) RxSwift • import RxSwift • RxʢReactive ExtensionʣͷίΞ෦෼ͷػೳΛఏ ڙ͢ΔϞδϡʔϧ •

    UIKitͳͲʹґଘ͠ͳ͍७ਮͳϦΞΫςΟϒϓϩ άϥϛϯάͷࡐྉΛఏڙ͢Δ • ଞͷϓϩάϥϛϯάݴޠͰ΋ຆͲಉ͡ʢ͸ͣʣ
  15. 2) RxCocoa ࢲͷ͜ͱݺΜͩʁ

  16. 2) RxCocoa • import RxCocoa • UIKitͳͲiOSʹґଘͨ͠෦෼ͷػೳΛఏڙ • UIView΍NSNotificationʹରͯ͠ɺrx_xxxͱ͍ͬ ͨϓϩύςΟ͕௥Ճ͞ΕΔɻ

    • ྫʣrx_tapɺrx_textɺrx_valueɺetc…
  17. RxSwiftͷΠϯετʔϧ

  18. RxSwiftͷΠϯετʔϧ • CocoaPodsͰ΋ • CarthagoͰ΋ • ͨͿΜকདྷతʹ͸Swiftඪ४ͷύοέʔδϚωʔ δϟͰ΋ • ·͊ৄ͘͠͸ެࣜυΩϡϝϯτΛಡΜͰͶʂ

  19. Observable<T>ͱ Observer<T>ͷ઀ଓ

  20. Observerύλʔϯͷ෮श • GoFͷ23ͷσβΠϯύλʔϯͷ1ͭ • iOSͰ͸NSNotification͕ͦͷྫ • Observableʢ؍ଌ͞ΕΔ΋ͷʣͱɺ • Observerʢ؍ଌ͢Δ΋ͷʣ͕ొ৔͠ɺ •

    Observableͷมߋ͕Observerʹ௨஌͞ΕΔ
  21. RxSwiftͰͷ࿩ • ετϦʔϜ͕Observableʢ؍ଌ͞ΕΔ΋ͷʣ • ߪಡ͢Δͷ͕Observerʢ؍ଌ͢Δ΋ͷʣ • ্ه͸ʮ઒ʯͱʮ͓͹͋ͪΌΜʯʹஔ͖׵͑ͯ ΋OKʢ౧ଠ࿠ϝλϑΝʔ࠶ͼʣ

  22. ॏཁͳίϯηϓτ

  23. Observable<T>ͱ

  24. Observer<T>͸

  25. ઀ଓʢbindʣ͢Δ͜ͱ͕ ՄೳͰ͋Δ

  26. ͱΓ͋͑ͣίʔυྫ

  27. ྫʣλοϓ࣌ʹϥϕϧߋ৽

  28. ͜Ε͕Rxʹ͓͚Δ σʔλόΠϯσΟϯά

  29. σʔλόΠϯσΟϯά • Observable<T>ʢ؍࡯͞ΕΔ΋ͷʣͱɺ • Observer<T>ʢ؍࡯͢Δ΋ͷʣ͸ɺ • ઀ଓʢbindʣՄೳͰ͋Δɻ • Tͷҙຯ͢Δͱ͜Ζ͸ܕɻ •

    ͭ·Γಉ͡ܕͰͳ͚Ε͹઀ଓͰ͖ͳ͍ɻ
 ʢT͸ʹஔ͖׵͑ͯ΋OKʣ
  30. ΋͏Ұ౓ίʔυΛݟͯΈΔ • 2.ͰจࣈྻܕͷετϦʔϜʢObservable<String>ʣʹม ׵͢Δ͜ͱͰɺ • UILabelͷrx_textଐੑʢObserver<String>ʣʹ઀ଓ͍ͯ͠ Δɻ • ͜ΕʹΑΓϘλϯλοϓͷετϦʔϜʹྲྀΕͨσʔλ͕ ࣗಈతʹUILabelͷtextଐੑʹ൓ө͞ΕΔɻ

  31. RxSwift ίʔυαϯϓϧ

  32. 1. Ϙλϯͷλοϓ

  33. Ϙλϯͷλοϓ • DisposeBagͱ͍͏ͷ͸ϝϞϦ؅ཧ༻ • ଞͷํ๏΋͋Δ͚Ͳɺ࠷ޙʹॻ͍͓͚ͯ͹ͱΓ͋͑ ͣOKͱࢥͬͯେৎ෉

  34. 2. εϥΠμʔ

  35. εϥΠμʔ

  36. 3. NSNotification

  37. NSNotification

  38. ࡉ͔͍ҧ͍͸ ͋Δ͚ΕͲ΋

  39. ຊ࣭తͳߟ͑ํ͸ ڞ௨͍ͯ͠Δ

  40. ͢ͳΘͪ • Observable<T>ʢετϦʔϜʣΛ࡞Γग़͠ɺ • ετϦʔϜΛՃ޻ʢmapɺstartWithʣ͠ɺ • Observer<T>ʢ؍ଌऀʣʹ઀ଓ͢Δɻ

  41. ͜Ε͕Rxʹ͓͚Δ σʔλόΠϯσΟϯά Rx͸ετʔΧʔߦҝΛॿ௕͢Δ΋ͷͰ͸ அͯ͋͡Γ·ͤΜʢIt’s a jokeʣ

  42. લճͷ෮श΋݉Ͷͯ • ετϦʔϜ͸҆ՁͰ؆୯ʹ࡞ΕΔ • ετϦʔϜΛՃ޻͢ΔͨΊͷखஈ͕ἧ͍ͬͯΔ • ετϦʔϜʢObservableʣ͸ɺ
 ؍ଌऀʢObserverʣʹ઀ଓ͢Δ͜ͱ͕ग़དྷΔ • ͢΂ͯ͸ετϦʔϜͰ͋Δ

  43. ϥΠϒίʔσΟϯά

  44. όϦσʔγϣϯΛॻ͍ͯ ΈΔΑʂʢ࣌ؒ͋Ε͹ʣ

  45. ࠓ೔ͷ·ͱΊ • RxSwiftͷϞδϡʔϧ • ίΞ෦෼ͷʮRxSwiftʯͱ • UIKit෦෼ͷʮRxCocoaʯ͕͋Δ • RxSwiftͷΠϯετʔϧ •

    CocoaPods·ͨ͸CarthagoͰͲ͏ͧ
  46. ࠓ೔ͷ·ͱΊ • Observable<T> —> Observer<T> ͷ઀ଓ • Rxʹ͓͚ΔσʔλόΠϯσΟϯάػߏ • T͸ܕΛද͠ɺಉ͡ܕͳΒ઀ଓͰ͖Δ

    • ܕ͕ҟͳΔ৔߹͸ετϦʔϜΛՃ޻ʢmapͨ͠ Γʣ͢Δ͜ͱͰɺಉ͡ܕͷετϦʔϜʹ͢Δ͜ ͱ΋ग़དྷΔ
  47. ࠓ೔ͷ·ͱΊ • RxSwiftͷαϯϓϧίʔυ • Ϙλϯλοϓ • εϥΠμʔ • NSNotification •

    ͲΕ΋ڞ௨ͨ͠ύλʔϯɺObservable<T>ͱ Observer<T>ͷ઀ଓɺؒʹՃ޻͕͋ͬͨɻ
  48. ࠷ޙʹ

  49. ࠓճͷεϥΠυͷ಺༰ Λཧղ͢Ε͹

  50. RxSwiftͷίʔυ͸͔ͳΓಡ ΊΔΑ͏ʹͳΔͱࢥ͍·͢

  51. ެࣜυΩϡϝϯτΛ ಡΜͰΈ·͠ΐ͏ʂ

  52. Thanks!