Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ReactiveCocoa Pitfalls at freee
Search
Kenichi Yonekawa
October 18, 2014
Programming
2
850
ReactiveCocoa Pitfalls at freee
10/18にfreeeで開催されたReactiveCocoa TokyoのLT資料です
http://connpass.com/event/8680/
http://www.freee.co.jp/
Kenichi Yonekawa
October 18, 2014
Tweet
Share
More Decks by Kenichi Yonekawa
See All by Kenichi Yonekawa
iOSアプリの設計とDependency Injection
yonekawa
22
17k
Fluxで複雑な状態の変化を予測可能にするiOSアプリ開発
yonekawa
9
20k
ネイティブアプリでもFluxしたい
yonekawa
0
2.2k
freeeモバイルチームの変遷と進化
yonekawa
0
7.7k
RAC用クラス拡張の作り方
yonekawa
2
2.9k
Dive into Joybox
yonekawa
5
1.7k
Other Decks in Programming
See All in Programming
Cursor Meetup Tokyo ゲノミクスとCursor: 進化と制約のあいだ
koido
2
990
DroidKnights 2025 - 다양한 스크롤 뷰에서의 영상 재생
gaeun5744
2
130
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
1
640
ワンバイナリWebサービスのススメ
mackee
10
7.7k
技術懸念に立ち向かい 法改正を穏便に乗り切った話
pop_cashew
0
1.3k
実はすごいスピードで進化しているCSS
hayato_yokoyama
0
110
A comprehensive view of refactoring
marabesi
0
120
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
210
Gleamという選択肢
comamoca
6
700
GoのGenericsによるslice操作との付き合い方
syumai
2
530
Webからモバイルへ Vue.js × Capacitor 活用事例
naokihaba
0
540
Select API from Kotlin Coroutine
jmatsu
1
110
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.9k
Statistics for Hackers
jakevdp
799
220k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
How to Ace a Technical Interview
jacobian
276
23k
What's in a price? How to price your products and services
michaelherold
245
12k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Speed Design
sergeychernyshev
30
990
Rails Girls Zürich Keynote
gr2m
94
14k
Transcript
ReactiveCocoa Pitfalls at freee @yonekawa
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
None
sendErrorͷޙͷsendCompleted • sendErrorͷޙʹsendCompletedΛݺΜͰݺ Εͳ͍ɻ • subscribe͢ΔଆͰnextͱerrorͰڞ௨ͰΓͨ ͍ॲཧʢΠϯδέʔλΛࢭΊΔͱ͔ʣΛॻ͖͍ͨ࣌ ʹݸผʹॻ͔ͳ͍ͱ͍͚ͳ͍
[RACSignal empty]
None
[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ͱ͔Ͱ͖Δͷָͦ͏ͩͬͨ • υΩϡϝϯτແ͠Ͱ͍ํΛ୳Δͷ͍͠