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
USAMI Kosuke
September 29, 2015
Programming
0
250
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
630
Apple HIG 正式名称クイズ結果発表 / HIG Quiz Result
usamik26
0
180
ゆめみ大技林製作委員会の立ち上げの話 / daigirin project
usamik26
0
330
@ViewLoadingプロパティラッパの紹介と自前で実装する方法 / @ViewLoading property wrapper implementation
usamik26
0
480
これからUICollectionViewを実践活用する人のためのガイド / Guide to UICollectionView
usamik26
1
740
Xcodeとの最近の付き合い方のはなし / Approach To Xcode
usamik26
2
670
UICollectionView Compositional Layout
usamik26
0
790
Coding Swift with Visual Studio Code and Docker
usamik26
0
510
Swift Extension for Visual Studio Code
usamik26
2
1k
Other Decks in Programming
See All in Programming
20250613-SSKMvol.15
diostray
0
100
DroidKnights 2025 - 다양한 스크롤 뷰에서의 영상 재생
gaeun5744
3
330
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
130
Webの外へ飛び出せ NativePHPが切り拓くPHPの未来
takuyakatsusa
2
450
Cursor AI Agentと伴走する アプリケーションの高速リプレイス
daisuketakeda
1
130
AIコーディング道場勉強会#2 君(エンジニア)たちはどう生きるか
misakiotb
1
270
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
240
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
620
Code as Context 〜 1にコードで 2にリンタ 34がなくて 5にルール? 〜
yodakeisuke
0
120
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
430
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
330
Result型で“失敗”を型にするPHPコードの書き方
kajitack
4
540
Featured
See All Featured
Building Adaptive Systems
keathley
43
2.6k
Automating Front-end Workflow
addyosmani
1370
200k
Raft: Consensus for Rubyists
vanstee
140
7k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
The Language of Interfaces
destraynor
158
25k
Become a Pro
speakerdeck
PRO
28
5.4k
The Invisible Side of Design
smashingmag
300
51k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Designing for Performance
lara
609
69k
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