$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RxNight
Search
mattak
November 19, 2015
Programming
0
130
RxNight
2015-11-19
mattak
November 19, 2015
Tweet
Share
More Decks by mattak
See All by mattak
最近やった作業環境改善施策10個
mattak
0
280
UnixTime is Simple
mattak
0
230
おっさんが停滞しないために
mattak
32
18k
tech invest
mattak
1
340
Nodux - node base redux framework
mattak
0
1.5k
what_is_technical_investment
mattak
0
140
unitypackage distribution
mattak
0
850
Unity energy usage
mattak
0
940
Unidux 0.3.1
mattak
1
420
Other Decks in Programming
See All in Programming
dotfiles 式年遷宮 令和最新版
masawada
1
780
【Streamlit x Snowflake】データ基盤からアプリ開発・AI活用まで、すべてをSnowflake内で実現
ayumu_yamaguchi
1
120
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
250
Developing static sites with Ruby
okuramasafumi
0
300
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
150
AIコーディングエージェント(Gemini)
kondai24
0
230
認証・認可の基本を学ぼう前編
kouyuume
0
250
Cap'n Webについて
yusukebe
0
130
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
200
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
120
WebRTC と Rust と8K 60fps
tnoho
2
2k
FluorTracer / RayTracingCamp11
kugimasa
0
230
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
186
22k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Typedesign – Prime Four
hannesfritz
42
2.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
BBQ
matthewcrist
89
9.9k
KATA
mclloyd
PRO
33
15k
RailsConf 2023
tenderlove
30
1.3k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Designing Experiences People Love
moore
143
24k
Transcript
Reactive Practices at Kotlin 2015/11/05 RxNight @mattak
RxJava+KotlinͰͷ tipsհ͢ΔΑ
1.notNull() -ɹnullͰͳ͍ͷΛ௨͢ -
%FpOJUJPO GVO50CTFSWBCMF5 OPU/VMM 0CTFSWBCMF5\ SFUVSOUIJTpMUFS\JUOVMM^NBQ\JU^ ^ 6TBHF WBMPCTFSWBCMF0CTFSWBCMFKVTU OVMM
OPU/VMM PCTFSWBCMFTVCTDSJCF\ QSJOUMO JU ^
2.retry() -ɹࣦഊͯ͠·ͨsubscribe -
CVUUPO$MJDL qBU.BQ\OFUXPSL3FRVFTU ^ࣦഊ͢ΔͱAPO&SSPS A SFUSZ PO&SSPS͕ݺΕͯSFUSZͰ࠶ͼTVCTDSJCF͞ΕΔ TVCTDSJCF\ PO/FYU࣌ͷॲཧ ^
3.doOnNext() -ɹ෭࡞༻Λ༩͑Δ -
0CTFSWBCMFKVTU EP0O/FYU\-PHW %( PO/FYU JU
^ EP0O&SSPS\-PHW %( PO&SSPS JU ^ EP0O$PNQMFUFE\-PHW %( PO$PNQMFUFE ^ EP0O&BDI\-PHW %( PO&BDI JU ^ TVCTDSJCF\^ // σόοΫ͢Δͱ͖ʹศར
4.CompositeSubscription -ɹsubscriptionΛ·ͱΊΔ -
WBMTVCTDSJQUJPO0CTFSWBCMFKVTU TVCTDSJCF\^ WBMTVCTDSJQUJPO0CTFSWBCMFKVTU B C D TVCTDSJCF\^
WBMDPNQPTJUF4VCTDSJQUJPO$PNQPTJUF4VCTDSJQUJPO DPNQPTJUF4VCTDSJQUJPOBEE TVCTDSJQUJPO DPNQPTJUF4VCTDSJQUJPOBEE TVCTDSJQUJPO DPNQPTJUF4VCTDSJQUJPOVOTVCTDSJCF // Ұؾʹunsubscribe͢Δͱ͖ʹศར
5.onErrorResumeNext -ɹerrorΛແࢹ͍ͨ͠ -
QVCMJDPCKFDU3FTPVSDFT&SSPS\ WBMFSSPS1VCMJTI4VCKFDU5ISPXBCMFCZMB[Z\1VCMJTI4VCKFDUDSFBUF5ISPXBCMF ^ ^ GVO50CTFSWBCMF5JOUFSDFQU/FUXPSL&SSPS 0CTFSWBCMF5\ SFUVSOUIJT EP0O&SSPS\JG JUJT3FUSPpU&SSPS
3FTPVSDFT&SSPSFSSPSPO/FYU JU ^ PO&SSPS3FTVNF/FYU\JG JUJT3FUSPpU&SSPS 0CTFSWBCMFFNQUZ FMTFUISPXJU^ ^ // Network errorΛ interceptͯ͠௨
6.combineAndDispose -ɹൃՐͤͭͭ͞ແࢹ͍ͨ͠ -
GVO5 30CTFSWBCMF5DPNCJOF"OE%JTQPTF TJHOBM0CTFSWBCMF0CTFSWBCMF3 0CTFSWBCMF5\ SFUVSO0CTFSWBCMFDPNCJOF-BUFTU UIJT TJHOBM0CTFSWBCMF \EBUB TJHOBMEBUB^
^ // Definition GVODIFDL&SSPS 0CTFSWBCMF*OU\ SFUVSO0CTFSWBCMF FSSPS*OU *MMFHBM4UBUF&YDFQUJPO TUBUFJTXSPOH ^ GVOFYFDVUF 0CTFSWBCMF*OU\ SFUVSO0CTFSWBCMF KVTU DPNCJOF"OE%JTQPTF DIFDL&SSPS ^ // Usage: ΤϥʔνΣοΫ͚͍ͩͨ͠
7.MergeReactiveProperty -ɹmergeͭͭ͠ɺΛอ͍࣋ͨ͠ -
// Definition DMBTT.FSHF3FBDUJWF1SPQFSUZ5"OZ QSJWBUFWBMDPODBU0CTFSWBCMF0CTFSWBCMF5 \ QSJWBUFMBUFJOJUWBSWBMVF5 QSJWBUFWBMDIBOOFM#FIBWJPS4VCKFDUDSFBUF5 QSJWBUFWBSEJSUZGBMTF
GVOHFU 5\SFUVSOWBMVF^ GVOTFU OFX7BMVF5 \ WBMVFOFX7BMVF DIBOOFMPO/FYU OFX7BMVF ^ WBMPCTFSWBCMF0CTFSWBCMF5 HFU 0CTFSWBCMF NFSHF DPODBU0CTFSWBCMFEP0O/FYU\EJSUZUSVF^ DIBOOFM EP0O/FYU\JG EJSUZ WBMVFJUEJSUZGBMTF^ ^