10/18にfreeeで開催されたReactiveCocoa TokyoのLT資料です http://connpass.com/event/8680/
http://www.freee.co.jp/
ReactiveCocoaPitfalls at freee@yonekawa
View Slide
freeeͷiOSΞϓϦ͕ReactiveCocoaΛಋೖ͔ͯ͠Β̕ϲ݄͕ܦͪ·ͨ͠
• 2014/12/20 iOSΞϓϦ։ൃணख• 2014/01/10 ReactiveCocoaಋೖ• 2014/02/14 1.0.0ϦϦʔε
ʹҰମԿ͕ɾɾɾ
ReactiveCocoaΛ͍ͬͯͯfreeeͰى͖ͨϋϚΓͲ͜ΖΛհ͠·͢: ReactiveCocoaͷAPI͕ͪΐ͍ͪΐ͍ग़͖ͯ·͢
combineLatestWith
combineLatestWithͱSignalͷ࣮ߦॱ• combineLatestWithฒྻʹSignalΛ࣮ߦ͢ΔͷͰൃՐ͞ΕΔॱংෆఆɻϩάΠϯ͔ͯ͠ΒσʔλΛऔಘɺΈ͍ͨͳॲཧʹ͏ͱϋϚΔ• ྻʹ͍ͨ࣌͠ʹflattenMapΛ͏
rac_textSignal
rac_textSignal vs RACObserve• textϓϩύςΟʹೖ͢ΔΑ͏ͳέʔεͰγάφϧ͕ൃՐ͠ͳ͍ɻRACObserveͰtextϓϩύςΟΛsubscribe͢ΔͱൃՐ͢Δ• ٯʹΩʔϘʔυ͔ΒͷೖྗRACObserveͩͱൃՐ͠ͳ͍ɻrac_textSignalͰऔΒͳ͍ͱ͍͚ͳ͍• combineLatestͯ྆͠ํൃՐ͢ΔsignalΛ࡞ͬͨΓͨ͠
sendCompleted
sendErrorͷޙͷsendCompleted• sendErrorͷޙʹsendCompletedΛݺΜͰݺΕͳ͍ɻ• subscribe͢ΔଆͰnextͱerrorͰڞ௨ͰΓ͍ͨॲཧʢΠϯδέʔλΛࢭΊΔͱ͔ʣΛॻ͖͍ͨ࣌ʹݸผʹॻ͔ͳ͍ͱ͍͚ͳ͍
[RACSignal empty]
[RACSignal empty]• RACSignalϕʔεͰΓऔΓ͍ͯ͠Δ࣌ɺ[RACSignal empty]Λฦ͢ͱવnexterrorൃՐ͞Εͳ͍• subscribeલʹΠϯδέʔλΛճͯ͠nextͱerrorͰࢭΊ͍ͯΔ߹ɺΠϯδέʔλ͕ճΓͬͺͳ͠ʹͳΔ• empty͡Όͳۭͯ͘ͷ݁ՌΛฦ͢SignalΛฦ͢ͷ͕Αͦ͞͏
UITableView
Cellͷதʹsubscribe͍ͨ͠View͕͋Δ࣌• ηϧ͕࠶ར༻͞ΕΔͱೋॏʹϑΥʔϜͷΠϕϯτΛsubscribeͯ͠͠·͏• reloadͳͲߟ͑ΔͱsubscriberΛഁغ͢ΔλΠϛϯά͕͍͠• ݱঢ়ۤͷࡦͰ࠶ར༻ΊͨΓͯ͠Δ
ReactiveCocoa3.0
ReactiveCocoa3.0• LTͷͨΊʹແͯ͠ಋೖ͠Α͏ͱௐͨ• طଘͷRACSignalϕʔεͷΠϯλϑΣʔεΛasColdSignalͱ͔Ͱ͖Δͷָͦ͏ͩͬͨ• υΩϡϝϯτແ͠Ͱ͍ํΛ୳Δͷ͍͠