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
RxSwift x Realm
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
USAMI Kosuke
September 29, 2015
Programming
0
260
RxSwift x Realm
Realm meetup #7
http://realm.connpass.com/event/19719/
USAMI Kosuke
September 29, 2015
Tweet
Share
More Decks by USAMI Kosuke
See All by USAMI Kosuke
Onsager代数とその周辺 / Onsager algebra tsudoi
usamik26
0
680
Apple HIG 正式名称クイズ結果発表 / HIG Quiz Result
usamik26
0
230
ゆめみ大技林製作委員会の立ち上げの話 / daigirin project
usamik26
0
360
@ViewLoadingプロパティラッパの紹介と自前で実装する方法 / @ViewLoading property wrapper implementation
usamik26
0
530
これからUICollectionViewを実践活用する人のためのガイド / Guide to UICollectionView
usamik26
1
780
Xcodeとの最近の付き合い方のはなし / Approach To Xcode
usamik26
2
700
UICollectionView Compositional Layout
usamik26
0
840
Coding Swift with Visual Studio Code and Docker
usamik26
0
540
Swift Extension for Visual Studio Code
usamik26
2
1.1k
Other Decks in Programming
See All in Programming
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
CSC307 Lecture 01
javiergs
PRO
0
690
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
470
Implementation Patterns
denyspoltorak
0
290
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
580
AI巻き込み型コードレビューのススメ
nealle
2
340
Package Management Learnings from Homebrew
mikemcquaid
0
230
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
730
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
290
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
AgentCoreとHuman in the Loop
har1101
5
240
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
130
What does AI have to do with Human Rights?
axbom
PRO
0
2k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
The browser strikes back
jonoalderson
0
380
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
For a Future-Friendly Web
brad_frost
182
10k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.5k
The Language of Interfaces
destraynor
162
26k
Making Projects Easy
brettharned
120
6.6k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Transcript
3Y4XJGUY3FBMN Ӊࠤݟެี 3FBMNNFFUVQ
ࣗݾհ w Ӊࠤݟެี !VTBNJL w େࡕࡖࢢࡏॅ w ϑΣϯϦϧגࣜձࣾ w
ΞϓϦέʔγϣϯڞಉ։ൃ෦ w J04ΞϓϦΤϯδχΞ ΞυϨεόʔ͢ΒऔΓͬͨ ڀۃͷઌతϒϥβ
ࠓͷ༰ w 3Y4XJGUͷհ w 3Y4XJGUͱ3FBMNͱͷ࿈ܞ
3Y4XJGU
None
3FBDUJWF1SPHSBNNJOH w ΠϕϯτͷؔΛهड़ w ҰํͷมԽΛଞํʹ w ϝοηʔδૹ৴ͷӅṭ w σʔλόΠϯσΟϯά3FBDUJWFͳΈͷҰछ
'VODUJPOBM3FBDUJWF1SPHSBNNJOH w ඇಉظσʔλετϦʔϜ w ࣌ؒ࣠ʹԊ͕ͬͯྲྀΕΔϦετ w ετϦʔϜʹର͢ΔϦετૢ࡞ w mapfilterͱ͍ͬͨؔܕͷΠσΟΦϜ
31'31ͷར w Πϕϯτۦಈॲཧ͕ॻ͖͍͢ w ඇಉظॲཧ͕ॻ͖͍͢ w ͕ͨͬͯ͠ɺ(6*ϓϩάϥϛϯάͱ૬ੑ͕Α͍
3FBDUJWF1SPHSBNNJOHGPSJ04 w 3FBDUJWF$PDPB w 3FBDU,JU w 3Y4XJGU w ͦΕͧΕʹྑ͕͋͞Δ
3FBDUJWF9ϑΝϛϦʔ w 3Y/&5 $ w 3Y+4 w 3Y+BWB w
3Y4XJGU w ɾɾɾͳͲ
3Y4XJGU w 4XJGUରԠ൛ w όʔδϣϯBMQIB w J04Ҏ߱ʢJ04Ҏ͕߱·͍͠ʣ w جຊతͳͱ͜Ζे͑Δঢ়ଶ w
࣮Ҋ݅Ͱ࠾༻த
3Y4XJGUͷ࣮ࡍ
3Y4XJGU3Y$PDPB w 3Y4XJGU w 0CTFSWBCMF֤छ0QFSBUPS4DIFEVMFSͳͲ w 3Y$PDPB w 6*,JU/463-4FTTJPO,70ͳͲ
0CTFSWBCMF w ඇಉظσʔλετϦʔϜΛ͋ΒΘ͢
ྫɿΠϕϯτॲཧ button.rx_tap .subscribeNext { _ in // ボタンがタップされたときの処理 } .addDisposableTo(disposeBag)
ྫɿඇಉظॲཧ URLSession.rx_response(request) .subscribeOn(sessionScheduler) .map { (data, response) in // バックグラウンド処理
} .observeOn(mainScheduler) .map { data in // UI処理 }
ྫɿετϦʔϜΛͭ͘Δɿ/463-3FTQPOTFͷ߹ func rx_response(request: NSURLRequest) -> Observable<NSData!, NSURLResponse!> { return create
{ observer in // request を送信してレスポンスを受け取る if 失敗 { observer.on(.Error(error)) } else { observer.on(.Next(data, response)) observer.on(.Completed) } return AnonymousDisposable { /* キャンセル処理 */ } } }
ྫɿετϦʔϜΛͭ͘Δɿผͷखஈ let items = PublishSubject<Item>() // Observable<Item> // データを流す items.on(.Next(item))
// 終了 items.on(.Completed) // エラー終了 items.on(.Error(error))
ྫɿ࡞ͬͨετϦʔϜΛ͏ items .filter { _ in // 不要なデータを捨てる } .subscribeNext
{ _ in // データに対する処理 } .addDisposableTo(disposeBag)
3Y4XJGUY3FBMN
3FBMNͷσʔλऔಘ w 3FBMNͷΫΤϦͰ͍͍͚Ͳɾɾɾ w 3YͰσʔλΛऔಘ͍ͨ͠ʢ0CTFSWBCMFͰѻ͍͍ͨʣ w %#ΞΫηεͱ3Yͷॲཧ͕ࠞࡏ͢Δͱհ w εϨουΛ·͙ͨ߹ΛͲ͏͢Δʁ
3Y+BWBͷέʔεΛࢀߟʹ͢Δ
ϞσϧΫϥεΛ͚Δ w ͻͱͭͷରʹରͯ͠ɺ;ͨͭͷϞσϧΫϥεΛͭ͘Δ w 3FBMNͷ0CKFDUܕͷϞσϧ w ඇ3FBMNͷϞσϧ w Ͱ͋Δ͜ͱ൱ఆͰ͖ͳ͍ɾɾɾ w
%#༻ͷϞσϧͱ7JFX༻ͷϞσϧɺͱࢥ͑ڐ༰ൣғ
հΛͭ͘Δ w 3FBMN%BUB4FSWJDF w 3FBMNͷΫΤϦ͔Β3FTVMUTΛಘΔ w 3FBMNͷ3FTVMUT͔Β7JFX༻ͷϞσϧʹม w 7JFX༻ͷϞσϧͷ0CTFSWBCMFΛग़ྗ
3FBMNͷΞΫηε w 3FBMN0CTFSWBCMF w 3FBMNͷΞΫηεॲཧΛҰՕॴʹ·ͱΊΔ w ʢલड़ͷ3FBMN%BUB4FSWJDFͰ3FBMNΞΫηε ͢Δ͜ͱՄೳ͕ͩɺࡶʹͳΔʣ
͍ํ RealmDataService.items .map { item in // モデルの処理 } .addDisposableTo(disposeBag)
3FBMNͷॻ͖ࠐΈ w ಉ༷ͷΈͰॻ͖ࠐΈʹରԠͰ͖Δ w 3FBMN%BUB4FSWJDFʹσʔλ࡞*'ΛՃ w 3FBMN0CTFSWBCMFΛτϥϯβΫγϣϯʹରԠ
·ͱΊ
·ͱΊ w 3Y4XJGUͷհ w 3Y4XJGUͷ࣮ࡍ w 3Y4XJGUͱ3FBMNͱͷ࿈ܞ w Ұ͍ΕΔͱΑ͍ w
3Yͱ3FBMNΛͪΌΜͱ͚ͯߟ͑Δͷ͕Α͍
None