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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
dchart: charts from deck markup
ajstarks
3
990
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
1.3k
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.2k
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
110
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
CSC307 Lecture 01
javiergs
PRO
0
690
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
200
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
200
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
130
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
180
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
380
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
200
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
140
Typedesign – Prime Four
hannesfritz
42
2.9k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Raft: Consensus for Rubyists
vanstee
141
7.3k
Technical Leadership for Architectural Decision Making
baasie
1
240
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
310
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
370
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