Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
RxSwift
Search
ren
October 25, 2019
Programming
170
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RxSwift
Overview of RxSwift
ren
October 25, 2019
More Decks by ren
See All by ren
2025年の振り返り
renchild8
0
78
iBeacon.pdf
renchild8
0
110
Other Decks in Programming
See All in Programming
APNsからLive Activityを開始する話
yumnumm
0
170
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.3k
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
140
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5.1k
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
130
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
170
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
210
The Rails Doctrine Decade
koic
2
570
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
0
1.4k
sbt 2.0: takeoff
eed3si9n
0
150
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.9k
Featured
See All Featured
Making Projects Easy
brettharned
120
6.8k
Building AI with AI
inesmontani
PRO
1
1.3k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
810
Raft: Consensus for Rubyists
vanstee
142
7.8k
How GitHub (no longer) Works
holman
316
150k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
470
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Music & Morning Musume
bryan
48
7.4k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
300
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
490
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Transcript
RxSwift
Rx(Reactive X)とは Observer パターン Iterator パターン 関数型プログラミング を実装している拡張ライブラリ
RxSwiftのメリット 値の変化を検知できる ⾮同期の処理を簡潔に書ける 宣⾔的記述 MVVMの実装が楽になる
何ができる? 何でもできる。
Observable Observable は観測対象。 Observable は Observer に通知を送ることができる。 Observer Observer は観測者。
Observer は Observable からの通知に反応することができる。
Event Observable が通知する内容。 3種類ある onNext 値を流す onComplete イベントの終了 onError エラー発⽣時
subscribe Observer が Observable を観測すること。 subscribe メソッドには Observer が Observable
からの通知の受信時に何をするかを 定義する。
dispose subscribe を解除する。 onCompleted や onError が発⽣すると Observable はもう Event
を発⾏できないの で⾃動的に dispose される。 DisposeBag DisposeBag は DisposeBag ⾃⾝が開放されるタイミングで、登録された subscribe を dispose する。
Subject Subject は Observable かつ Observer のオブジェクト。 Event は onNext
, onComplete , onError が流れる。 4種類ある AsyncSubject ReplaySubject BehaviorSubject PublishSubject
Subject AsyncSubject onCompleted が呼ばれた直後に onNext で渡された最後の値だけ流す。 ReplaySubject subscribe 後に値を流す。 bufferSize
に指定した数だけ値を流す。
Subject BehaviorSubject 初期値をもつ Subject 。 直前に渡された値を保持しsubscribe()された際にその値を流す。 onNext , onCompleted ,
onError は発⽣し次第そのまま流す。 PublishSubject 初期値をもたない Subject 。 onNext , onCompleted , onError は発⽣し次第そのまま流す。
Relay Relay は Subject のラッパー。 Event は onNext のみが流れる。 2種類ある
BehaviorRelay : BehaviorSubject のラッパー。 PublishRelay : PublishSubject のラッパー。
Traits Observable のラッパー 3種類ある Single Completable Maybe
Traits Single ⼀度だけ Event を送る Observable 。 流れる Event は
onSuccess , onError の2つ。 onSuccess の実態は onNext と onCompleted の組み合わせ。 onNext が含まれるため、値を流すことができる。 Completable ⼀度だけ Event を送る Observable 。 流れる Event は onCompleted , onError の2つ。 onNext が含まれないため、値を流すことができない。
Traits Maybe ⼀度だけ Event を送る Observable 。 流れる Event は
onSuccess , onCompleted , onError の3つ。 Single と Completable を合わせたようなもの。
RxCocoa (UI部品⽤のRx) には別の Traits がある。 Driver Signal ControlProperty ControlEvent
RxCocoa Traits Driver エラーを無視できる。 メインスレッドで実⾏される。 replay する。(同じ値を繰り返し流す。) Signal エラーを無視できる。 メインスレッドで実⾏される。
replay しない。
RxCocoa Traits ControlProperty エラーを無視できる。 メインスレッドで実⾏される。 replay する。 メモリが解放されると complete が流れる
ControlEvent エラーを無視できる。 購読時に初期値を流さない。 メモリの割り当てが解放されると complete が流れる。 メインスレッドで実⾏される。
Observable にも種類がある Hot Cold
HotとCold Hot subscribe されてなくても Event が流れ、 1つの Stream を複数の Observer
が subscribe できる。 Cold subscribe されて初めて Event が流れ出し、 subscribe される度に別々の Stream が⽣成される。
あと2つ⼤きな概念がある Operators Scheduler
ありがとうございました。