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
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
220
おっさんが停滞しないために
mattak
32
18k
tech invest
mattak
1
330
Nodux - node base redux framework
mattak
0
1.5k
what_is_technical_investment
mattak
0
140
unitypackage distribution
mattak
0
840
Unity energy usage
mattak
0
930
Unidux 0.3.1
mattak
1
420
Other Decks in Programming
See All in Programming
Phronetic Team with AI - Agile Japan 2025 closing
hiranabe
2
510
Designing Repeatable Edits: The Architecture of . in Vim
satorunooshie
0
270
業務でAIを使いたい話
hnw
0
260
2026年向け会社紹介資料
misu
0
160
CSC509 Lecture 09
javiergs
PRO
0
290
AI駆動開発ライフサイクル(AI-DLC)のホワイトペーパーを解説
swxhariu5
0
610
なぜ強調表示できず ** が表示されるのか — Perlで始まったMarkdownの歴史と日本語文書における課題
kwahiro
10
5.4k
オンデバイスAIとXcode
ryodeveloper
0
450
例外処理を理解して、設計段階からエラーを見つけやすく、起こりにくく #phpconfuk
kajitack
12
5.8k
CSC509 Lecture 10
javiergs
PRO
0
170
ノーコードからの脱出 -地獄のデスロード- / Escape from Base44
keisuke69
0
680
ドメイン駆動設計のエッセンス
masuda220
PRO
15
7.8k
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
A better future with KSS
kneath
239
18k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
1.8k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Optimizing for Happiness
mojombo
379
70k
4 Signs Your Business is Dying
shpigford
186
22k
GitHub's CSS Performance
jonrohan
1032
470k
Building an army of robots
kneath
306
46k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
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^ ^