Slide 1

Slide 1 text

Recent State of ReactiveCocoa @ikesyo ؔ੢ϞόΠϧΞϓϦݚڀձ #13, 2016-04-26 Tue #ؔϞό

Slide 2

Slide 2 text

@ikesyo • ͍͚͠ΐʔʗ஑ా ᠳ • Reactiveਓࡐ • ͸ͯͳ@ژ౎ • https://twitter.com/ikesyo • https://github.com/ikesyo

Slide 3

Slide 3 text

✨ Contributions ✨ • ReactiveCocoa • Carthage (Commandant, ReactiveTask) • Result • Himotoki • APIKit

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Reactive Swift Meetup • ReactiveCocoaೖ໳ by @Nirma • Getting Started with ReactiveCocoa v4.1.0 by @inamiy • Carthage and ReactiveCocoa by @ikesyo

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

Recent State of ReactiveCocoa

Slide 11

Slide 11 text

New Member • @RuiAAPeres Issues • Reduced from around 250 to 80+ (as of 2016-04-26)

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Moving Rex to the ReactiveCocoa org #2790 1. Discoverability 2. Credibility 3. Expansion 4. Easier to manage

Slide 14

Slide 14 text

Split Objective-C and Swift APIs going forward #2807 Correct me if I'm wrong, but maintaining both an Objective-C and Swift API for RAC is a bit of a burden, right? Perhaps going forward it's worth thinking about slimming ReactiveCocoa down to just support Swift. I'm sure you guys feel the pull of writing things in Swift as much as I do ! Obviously there's a lot of people reliant on the Objective-C APIs (myself included, for some rather large projects) but if there's support for this idea, splitting the language support up into separate repos/projects might be a good first step? What do you think?

Slide 15

Slide 15 text

Utilities / Examples • MailOnline/Reactor • RuiAAPeres/RACNest • inamiy/ReactiveCocoaCatalog • Carthage/Carthage !

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

ඇಉظॲཧͷఆܕԽ • APIຖʹελΠϧ͕ҟͳͬͯ໎Θͳ͍Α͏ʹ͢Δ • delegate, target-action, callback(Ҿ਺΋༷ʑ), ... • ඇಉظॲཧͷνΣʔϯ • ! Callback Hell • flatMap • flatten ίʔυϕʔεશମͰ࢖͏ͷ͕ޮՌతʢϩοΫΠϯ !ʣ

Slide 18

Slide 18 text

ඇಉظॲཧͷఆܕԽ • ಉظతAPI • ςετɺCLIϓϩάϥϜ • RxSwift: RxBlocking // SignalProducer func first() -> Result? func single() -> Result? func last() -> Result? func wait() -> Result<(), Error>

Slide 19

Slide 19 text

ಉظॲཧͷϥοϓ • ಉظॲཧ݁ՌͷϋϯυϦϯά΋ඇಉظॲཧͷ৔߹ͱڞ௨Խ • ಉظͱඇಉظΛҙࣝ͠ͳ͍ • ಺෦ॲཧ͕ಉظ͔ΒඇಉظʹมΘͬͯ΋ݺͼग़͠ଆʹ͸Ө ڹ͕ͳ͍ • ඇಉظॲཧͱͷ߹੒

Slide 20

Slide 20 text

ܕ෇͚͞ΕͨΤϥʔ • Signal, SignalProducer • Result ͔Βͷੜ੒: attempt, attemptMap • throwsΛѻ͏࣌͸໌നͳܕ΁ͷΩϟετɺ΋͘͠͸NSErrorͱ ͯ͠ѻ͏ʢResultͷAPIʣ • RAC: Atomic, MutablePropertyΛআ͍ͯthrows͸࢖ΘΕ͍ͯͳ ͍ • Carthage: throws͸࢖ΘΕ͍ͯͳ͍

Slide 21

Slide 21 text

ܕ෇͚͞ΕͨΤϥʔ • Result.NoError: Πϯελϯεੜ੒Ͱ͖ͳ͍Τϥʔܕ • ࣦഊ͢ΔՄೳੑ͕ͳ͍͜ͱΛAPIͷγάωνϟʔͱͯ͠දݱͰ͖ Δ • <~ΦϖϨʔλʔʹΑΔMutableProperty΁ͷSignal, SignalProducerͷόΠϯσΟϯάͷͨΊʹ͸NoErrorͰͳ͚Ε ͹ͳΒͳ͍ 1 1 https://github.com/ReactiveCocoa/ReactiveCocoa/blob/v4.1.0/ReactiveCocoa/Swift/Property.swift#L241-L302

Slide 22

Slide 22 text

!" Happy RAC Coding!! "!

Slide 23

Slide 23 text

Thank you❗"