Slide 1

Slide 1 text

Reactive Practices at Kotlin 2015/11/05 RxNight @mattak

Slide 2

Slide 2 text

RxJava+KotlinͰͷ tips঺հ͢ΔΑ

Slide 3

Slide 3 text

1.notNull() -ɹnullͰͳ͍΋ͷΛ௨͢ -

Slide 4

Slide 4 text

%FpOJUJPO GVO50CTFSWBCMF5 OPU/VMM 0CTFSWBCMF5\
 SFUVSOUIJTpMUFS\JUOVMM^NBQ\JU^
 ^ 6TBHF WBMPCTFSWBCMF0CTFSWBCMFKVTU OVMM OPU/VMM 
 PCTFSWBCMFTVCTDSJCF\
 QSJOUMO JU 
 ^

Slide 5

Slide 5 text

2.retry() -ɹࣦഊͯ͠΋·ͨsubscribe -

Slide 6

Slide 6 text

CVUUPO$MJDL
 qBU.BQ\OFUXPSL3FRVFTU ^ࣦഊ͢ΔͱAPO&SSPS A
 SFUSZ PO&SSPS͕ݺ͹Εͯ΋SFUSZͰ࠶ͼTVCTDSJCF͞ΕΔ
 TVCTDSJCF\
 PO/FYU࣌ͷॲཧ
 ^

Slide 7

Slide 7 text

3.doOnNext() -ɹ෭࡞༻Λ༩͑Δ -

Slide 8

Slide 8 text

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\^ // σόοΫ͢Δͱ͖ʹศར

Slide 9

Slide 9 text

4.CompositeSubscription -ɹsubscriptionΛ·ͱΊΔ -

Slide 10

Slide 10 text

WBMTVCTDSJQUJPO0CTFSWBCMFKVTU TVCTDSJCF\^
 WBMTVCTDSJQUJPO0CTFSWBCMFKVTU B C D TVCTDSJCF\^
 WBMDPNQPTJUF4VCTDSJQUJPO$PNQPTJUF4VCTDSJQUJPO 
 
 DPNQPTJUF4VCTDSJQUJPOBEE TVCTDSJQUJPO 
 DPNQPTJUF4VCTDSJQUJPOBEE TVCTDSJQUJPO 
 DPNQPTJUF4VCTDSJQUJPOVOTVCTDSJCF // Ұؾʹunsubscribe͢Δͱ͖ʹศར

Slide 11

Slide 11 text

5.onErrorResumeNext -ɹerrorΛແࢹ͍ͨ͠ -

Slide 12

Slide 12 text

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ͯ͠௨஌

Slide 13

Slide 13 text

6.combineAndDispose -ɹൃՐͤͭͭ͞ແࢹ͍ͨ͠ -

Slide 14

Slide 14 text

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: ΤϥʔνΣοΫ͚͍ͩͨ͠

Slide 15

Slide 15 text

7.MergeReactiveProperty -ɹmergeͭͭ͠ɺ஋Λอ͍࣋ͨ͠ -

Slide 16

Slide 16 text

// 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^
 ^