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
870
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
19k
Fluxで複雑な状態の変化を予測可能にするiOSアプリ開発
yonekawa
9
42k
ネイティブアプリでもFluxしたい
yonekawa
0
2.3k
freeeモバイルチームの変遷と進化
yonekawa
0
9.4k
RAC用クラス拡張の作り方
yonekawa
2
3k
Dive into Joybox
yonekawa
5
1.8k
Other Decks in Programming
See All in Programming
CDIの誤解しがちな仕様とその対処TIPS
futokiyo
0
190
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
kztakasaki
2
550
CSC307 Lecture 15
javiergs
PRO
0
230
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
0
110
文字コードの話
qnighy
44
17k
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
100
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
170
Ruby x Terminal
a_matsuda
7
590
オブザーバビリティ駆動開発って実際どうなの?
yohfee
3
780
atmaCup #23でAIコーディングを活用した話
ml_bear
4
760
Claude Code の Skill で複雑な既存仕様をすっきり整理しよう
yuichirokato
1
340
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
230
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Deep Space Network (abreviated)
tonyrice
0
87
Mind Mapping
helmedeiros
PRO
1
110
Accessibility Awareness
sabderemane
0
74
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
150
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
67
37k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
480
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.1k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.4k
Tell your own story through comics
letsgokoyo
1
830
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ͱ͔Ͱ͖Δͷָͦ͏ͩͬͨ • υΩϡϝϯτແ͠Ͱ͍ํΛ୳Δͷ͍͠