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
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ren
October 25, 2019
Programming
1
150
RxSwift
Overview of RxSwift
ren
October 25, 2019
Tweet
Share
More Decks by ren
See All by ren
2025年の振り返り
renchild8
0
53
iBeacon.pdf
renchild8
0
95
Other Decks in Programming
See All in Programming
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.7k
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
520
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
190
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
550
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
7
3.1k
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
360
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
390
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
120
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
280
Java 21/25 Virtual Threads 소개
debop
0
260
Codex CLIのSubagentsによる並列API実装 / Parallel API Implementation with Codex CLI Subagents
takatty
2
350
存在論的プログラミング: 時間と存在を記述する
koriym
4
460
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
120
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
190
The browser strikes back
jonoalderson
0
830
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
130
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
BBQ
matthewcrist
89
10k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Discover your Explorer Soul
emna__ayadi
2
1.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
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
ありがとうございました。