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
270
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
GitHub Copilotを使いこなせ!/mastering_github_copilot!
kotakageyama
2
720
品質ワークショップをやってみた
nealle
0
910
When Dependencies Fail: Building Antifragile Applications in a Fragile World
selcukusta
0
120
オンデバイスAIとXcode
ryodeveloper
0
370
Migration to Signals, Resource API, and NgRx Signal Store
manfredsteyer
PRO
0
140
Researchlyの開発で参考にしたデザイン
adsholoko
0
110
エンジニアに事業やプロダクトを理解してもらうためにやってること
murabayashi
0
110
Developer Joy - The New Paradigm
hollycummins
1
400
20251016_Rails News ~Rails 8.1の足音を聴く~
morimorihoge
3
910
Go言語はstack overflowの夢を見るか?
logica0419
1
680
Blazing Fast UI Development with Compose Hot Reload (droidcon London 2025)
zsmb
0
440
Kotlin 2.2が切り拓く: コンテキストパラメータで書く関数型DSLと新しい依存管理のかたち
knih
0
240
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.7k
It's Worth the Effort
3n
187
28k
Visualization
eitanlees
150
16k
Fireside Chat
paigeccino
41
3.7k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Designing for Performance
lara
610
69k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Music & Morning Musume
bryan
46
6.9k
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^ ^