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
Rx分からんを解消する会
Search
Suguru Kishimoto
October 22, 2018
Technology
7
1.4k
Rx分からんを解消する会
社内勉強会での資料です。
RxSwiftについて開発メンバーから寄せられた質問に対して答える感じで用意した資料となります。
Suguru Kishimoto
October 22, 2018
Tweet
Share
More Decks by Suguru Kishimoto
See All by Suguru Kishimoto
Cookpad summer internship 2019 - iOS introduction
sgrksmt
0
9.9k
Improves service using Firebase A_B Testing
sgrksmt
6
960
A use case of Firebase in Komerco.
sgrksmt
13
10k
Firebase Dynamic Link あれこれ
sgrksmt
1
670
Improve Event log using Sourcery in iOS
sgrksmt
6
770
cloud_firestore_for_biginners
sgrksmt
2
2.3k
Effective Firestore Security
sgrksmt
4
5.6k
Try new Firebase AB testing
sgrksmt
2
4.9k
それでもぼくはAuto Incrementしたい
sgrksmt
1
1.3k
Other Decks in Technology
See All in Technology
ソフトウェアテストのAI活用_ver1.10
fumisuke
0
220
LT:組込み屋さんのオシロが壊れた!
windy_pon
0
330
技術書典18結果報告
mutsumix
2
180
FastMCPでSQLをチェックしてくれるMCPサーバーを自作してCursorから動かしてみた
nayuts
1
200
AIコードエディタは開発を変えるか?Cursorをチームに導入して1ヶ月経った本音
ota1022
1
680
CloudTrailも、GuardDutyも、VPC Flow logsも… ログ多すぎ問題の整理術
nikuyoshi
5
650
MCP で繋ぐ Figma とデザインシステム〜LLM を使った UI 実装のリアル〜
kimuson
2
1.3k
ゴリラ.vim #36 ~ Vim x SNS ~ スポンサーセッション
yasunori0418
1
320
それでもぼくらは貢献をつづけるのだ(たぶん) @FOSS4GLT会#002
furukawayasuto
1
270
Houtou.pm #1
papix
0
650
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
24k
RDRA3.0を知ろう
kanzaki
2
430
Featured
See All Featured
Building an army of robots
kneath
306
45k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.7k
Code Review Best Practice
trishagee
68
18k
Music & Morning Musume
bryan
47
6.5k
BBQ
matthewcrist
88
9.7k
Making Projects Easy
brettharned
116
6.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.3k
RailsConf 2023
tenderlove
30
1.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Why Our Code Smells
bkeepers
PRO
336
57k
Transcript
Komerco Div 2018.10.22(MON) Rx͔ΒΜΛղফ͢Δձ 3Y͔ΒΜΛղফ͢Δձ 4VHVSV,JTIJNPUP
Cookpad Inc. All Rights Reserved. ࣄͷൃ
Cookpad Inc. All Rights Reserved.
Cookpad Inc. All Rights Reserved.
Cookpad Inc. All Rights Reserved. ͻͬͦΓΔͭΓ͕ѹ͕͔͔ͬͨͷͰ ษڧձܗࣜͰΔ͜ͱʹ
Cookpad Inc. All Rights Reserved. ⚠ॾҙ⚠ wدͤΒΕ࣭ͨΛݩʹࢿྉ࡞ͬͯ·͢ wޙࣗ༝࣌ؒʹ͢ΔͷͰΘ͍Θ͍ٞͨ͠Γ͠·͠ΐ͏
Cookpad Inc. All Rights Reserved. ૣ
ʲQ1ʳ Observable,Observer,Subject,Relay,Signal,Driver… ͦΕͧΕͷׂͱ͔͍ಓ?
Cookpad Inc. All Rights Reserved. 0CTFSWBCMF0CTFSWFS w0CTFSWBCMFσʔλιʔεɺετϦʔϜͱ͔ݺΕΔɻ͕ྲྀΕͯ ΔɺA؍ଌͰ͖ΔͷAɻ ͕ྲྀΕͯ͘Δͱɺࣗ৴ʹొ͞Εͨ0CTFSWFSʹΛ௨͢Δ w0CTFSWFSA؍ଌ͢ΔͷAɻ0CTFSWBCMFͰྲྀΕ͍ͯΔΛड͚औ
ΔͨΊʹɺ0CTFSWBCMFʹࣗΛొͨ͠ΓɺෆཁʹͳͬͨΒղআ ͨ͠Γ͢Δ
Cookpad Inc. All Rights Reserved. Ҿ༻IUUQTRJJUBDPN.BTBOPCV"LJCBJUFNTBCEDDFF
Cookpad Inc. All Rights Reserved. 0CTFSWBCMF0CTFSWFS w0CTFSWBCMF 5ZQF Ͱ͋Δͷ A0CTFSWBCMF&A
A4JOHMF&A A.BZCF&A A$PNQMFUBCMFA A̋̋4VCKFDU&A A̋̋3FMBZ&A ݫີʹҧ͏͚ͲɺA%SJWFS&A A4JHOBM&A w0CTFSWFS 5ZQF Ͱ͋Δͷ A̋̋4VCKFDU&A A"OZ0CTFSWFS&A A"OPOZNPVT0CTFSWFS&A
Cookpad Inc. All Rights Reserved. 0CTFSWBCMF0CTFSWFS w0CTFSWFS 5ZQF গͳ͘ͳ͍ʁͦͯ͋͠·Γఆٛ͢Δ͜ͱͳ͍Μ͚ͩ Ͳʜ
ˠීஈATVCTDSJCF PO/FYUPO&SSPS Aͱ͔ͰΫϩʔδϟ͍ͯ͠Δ ͷͰࣗͰ0CTFSWFSΛੜ͢Δ͜ͱগͳ͍͕ɺཪͰ࡞ΒΕͯ ͍Δ
Cookpad Inc. All Rights Reserved.
Cookpad Inc. All Rights Reserved.
Cookpad Inc. All Rights Reserved. 4VCKFDU3FMBZ w4VCKFDU0CTFSWBCMF5ZQF 0CTFSWFS5ZQF ࣗͰΛྲྀ͢͜ͱͰ͖Δ͠ɺ0CTFSWBCMFʹొͯ͠Λड͚ औΔ͜ͱͰ͖Δ
w1VCMJTI4VCKFDUɺ#FIBWJPS4VCKFDUɺ3FQMBZ4VCKFDU͕͋Δ w7BSJBCMFˠ 3Y4XJGUW͔Βඇਪ
Cookpad Inc. All Rights Reserved. 4VCKFDU3FMBZ w3FMBZ4VCKFDUͷϥούʔ w&SSPS $PNQMFUFE͕ྲྀΕͯ͜ͳ͍ w1VCMJTI3FMBZ1VCMJTI4VCKFDUɺ#FIBWJPS3FMBZ#FIBWJPS4VCKFDU
ͷϥούʔʹͳ͍ͬͯΔ w&SSPS $PNQMFUFE͕ྲྀΕͳ͍ͷͰɺ 1VCMJTI3FMBZˠ4JHOBM #FIBWJPS3FMBZˠ%SJWFS ʹ؆୯ʹมͰ͖Δ
Cookpad Inc. All Rights Reserved. 4JOHMF.BZCF$PNQMFUBCMF w3Y4XJGUW͔Βࡌ͞Εͨɺ0CTFSWBCMF&ͷᙱ͍ͱ͜ΖΛγʔϯ ผʹղܾͯ͘͠ΕΔͷɻͦΕͧΕFWFOUճ͔͠ྲྀΕͳ͍ wඞͣ&SSPS͔$PNQMFUFEͷͲͪΒ͔ͰऴΘΔ w/FYUͷྲྀΕΔճ͕ҧ͏
w4JOHMFճ w.BZCFճ͘͠ճ ྲྀΕͣʹ$PNQMFUFE͚ͩྲྀΕΔ͜ͱ͕͋Δ w$PNQMFUBCMFճ
Cookpad Inc. All Rights Reserved. %SJWFS4JHOBM w&SSPS͕ྲྀΕͳ͍ wϝΠϯεϨουͰ࣮ߦ͞ΕΔ͜ͱ͕อূ͞Ε͍ͯΔ w%SJWFS4VCTDSJCFͨ࣌͠ʹۙͷΛճྲྀ͢ ASFQMBZ
A w4JHOBM4VCTDSJCF͔ͯ͠ΒྲྀΕͯ͘Δ w6*ʹབྷΉ෦Ͱ͏ͷʹ͍ͬͯ͜ w1SFTFOUFSˠ7JFXɺ7JFX.PEFMˠ7JFXͰΑ͘͏
Cookpad Inc. All Rights Reserved. ࢀߟ w3Y$PDPBͷ4JHOBMͱ3FMBZͷ·ͱΊ wIUUQTUFDINFSDBSJDPNFOUSZ w3Y4XJGUͷ༻ޠ·ͱΊ wIUUQTRJJUBDPNNPSJTIJOJUFNTDEFCGF
w3Y4XJGUͷ0CTFSWBCMFͱԿ͔ wIUUQTRJJUBDPNHPNJ@OJOHFOJUFNTDDGFCFFDG w3Y4XJGUΛΔલʹͪΌΜͱ0CTFSWFSύλʔϯΛֶͿ wIUUQTTUBSIPTIJIBUFOBCMPHDPNFOUSZ 394XJGU@&&&#&%&"#&"&& &"@0CTFSWFS@&&#'&#$&#&&"%" &#
ʲQ2ʳ `subscribe`, `bind`, `drive`, `emit` ͷ͍͚?
Cookpad Inc. All Rights Reserved. ͲΕߪಡ͢Δ࣌ʹ͏ͷ͚ͩͲ ඍົʹੑ࣭͕ҟͳΔ
Cookpad Inc. All Rights Reserved. ATVCTDSJCF PO/FYUʜ A wOFYU FSSPS
DPNQMFUFE TVCTDSJCFE EJTQPTFEɺͦΕͧΕड͚औͬ ͨͱ͖ͷॲཧΛهड़Ͱ͖Δ w4JOHMF .BZCF $PNQMFUBCMFʹͳΔͱड͚औΕΔͷ͕มΘΔ
Cookpad Inc. All Rights Reserved. ACJOE UP A wྲྀΕΛଞͷετϦʔϜʹͭͳ͛Δ࣌ʹ͏ wҾʹ0CTFSWFS5ZQF͘͠3FMBZ͕ೖΔ
͕ɺϨγʔόͷ0CTFSWBCMF5ZQFʹΑͬͯएׯมΘΔ
Cookpad Inc. All Rights Reserved. ACJOE PO/FYU A wOFYUΛड͚औͬͨͱ͖ͷॲཧΛهड़Ͱ͖Δ ATVCTDSJCF
PO/FYU AͷΈͷ7FSͩͱࢥ͑ྑ͍ wFSSPS͕ྲྀΕͯ͜ͳ͍લఏʹͳ͍ͬͯΔͷͰɺ %FCVHڥͰ ྲྀΕ ͯ͘ΔͱΫϥογϡ͢Δ w3FMBZΛTVCTDSJCF͢Δͱ͖ͬͪ͜Ͱॻ͘΄͏͕ؾ͍࣋ͪͷͰ γϯϓϧʹॻ͚Δ
Cookpad Inc. All Rights Reserved. AESJWF @ A AFNJU UP
A wACJOE UP Aͷ%SJWFS4JHOBM൛ wESJWF0CTFSWFS5ZQFɺ#FIBWJPS3FMBZͱ wFNJU0CTFSWFS5ZQFɺ1VCMJTI3FMBZͱ
Cookpad Inc. All Rights Reserved. ESJWF FNJU AYY PO/FYU A
wESJWF%SJWFSʹରͯ͠ɺFNJU4JHOBMʹରͯ͠͏ wOFYU DPNQMFUFE EJTQPTFEΛड͚औΕΔ
ʲQ3ʳ ΞϓϦͰΑ͘ݟΔ࣮ύλʔϯΈ͍ͨͷ͕ ͋ΕΓ͍ͨͰ͢ɻ - MVVMͰUIͱVMΛόΠϯυ͢Δͱ͖ͱ͔ɻ - WebAPIୟ͍ͯUI·Ͱөͤ͞Δ·ͰͷྲྀΕͱ͔ɻ
Cookpad Inc. All Rights Reserved. ύλʔϯΛֶͿͷʹ͓͢͢Ίͪ͜Β
Cookpad Inc. All Rights Reserved. w3Y4XJGUͷ&YBNQMF wIUUQTHJUIVCDPN3FBDUJWF93Y4XJGUCMPCNBTUFS%PDVNFOUBUJPO &YBNQMFTNE w3Y1BHJOBUJPO wIUUQTHJUIVCDPNUSZTXJGU3Y1BHJOBUJPO
w3Y4XJGU "1*SFRVFTU .77. wIUUQTTQFBLFSEFDLDPNTMJHIUBJSSYTXJGUQMVTBQJSFRVFTUQMVTNWWN
Cookpad Inc. All Rights Reserved. .77.ͷྫΛऔΔͱʜ w7.ͷJOJUͰWJFXͷΠϕϯτΛ0CTFSWBCMFͱͯ͢͜͠ͱ͕ଟ͍ FHϘλϯͷλοϓɺϦϩʔυͷτϦΨʔʜ w"1*ୟ͘ͱ͜Ζ3YͰϥοϓͯ͠ετϦʔϜΛ࡞Δ
w7JFXͷΠϕϯτΛجʹɺ"1*ͷετϦʔϜΛܨ͍Ͱ͋͛ͯɺ݁Ռ ΤϥʔΛ%SJWFS4JHOBMΛͬͯͯ͋͛͠Δ w7JFXଆͰΛ͙͢ʹࢀর͍ͨ͠ͱ͖7.ʹ#FIBWJPS3FMBZΛ༻ҙ ͯ͠ɺASFMBZWBMVFAͰࢀর͢Δ
ʲQ4ʳ ΩϨΠʹετϦʔϜΛ࡞Δʹ?
Cookpad Inc. All Rights Reserved. ΩϨΠͳετϦʔϜΛΉʹɺ ετϦʔϜʹखΛՃ͑ΔΦϖϨʔλʔΛ ཧղ͢Δඞཁ͕͋Δ
Cookpad Inc. All Rights Reserved. KVTU FSSPS FNQUZ OFWFS DSFBUF
PG EFGFS GJMUFS NBQ [JQ DPNCJOF-BUFTU XJUI-BUFTU'SPN DPODBU NFSHF GMBU.BQ GMBU.BQ-BUFTU GMBU.BQ'JSTU UBLF TLJQ SFUSZ BNC DBUDI TXJUDI UISPUUMF EFCPVODF UJNFPVU CVGGFS XJOEPXʜ ˞ݴޠʹΑͬͯඍົʹΦϖϨʔλʔ໊͕ҟͳͬͨΓ͢Δ߹͋Γ
Cookpad Inc. All Rights Reserved. Ұʹ֮͑Δͷେม গͣͭ͠ಈ࡞Λཧղ͠ͳ͕ΒਂΊ͍ͯ͘
Cookpad Inc. All Rights Reserved. ʮͲ͔͜ʹ·ͱ·ͬͯͳ͍ͷʁʯ
Cookpad Inc. All Rights Reserved. 0QFSBUPSΛֶͿ w3FBDUJWF90QFSBUPST wIUUQSFBDUJWFYJPEPDVNFOUBUJPOPQFSBUPSTIUNM w3Y.BSCMFT 3Y+4
wIUUQSYNBSCMFTDPN w3Y.BSCMFTͷJ04"QQ͋Δ
Cookpad Inc. All Rights Reserved.
Cookpad Inc. All Rights Reserved. ʮཧղ͢Δͱදݱͷ෯͕͕Δͷʁʯ
Cookpad Inc. All Rights Reserved. KVTU FSSPS FNQUZ OFWFS DSFBUF
PG EFGFS GJMUFS NBQ [JQ DPNCJOF-BUFTU XJUI-BUFTU'SPN DPODBU NFSHF GMBU.BQ GMBU.BQ-BUFTU GMBU.BQ'JSTU UBLF TLJQ SFUSZ BNC DBUDI TXJUDI UISPUUMF EFCPVODF UJNFPVU CVGGFS XJOEPXʜ
ࠓ͙͑͢ΔςΫχοΫ
Cookpad Inc. All Rights Reserved. ͦͷ̍ AXJUI-BUFTU'SPNA
Cookpad Inc. All Rights Reserved.
Cookpad Inc. All Rights Reserved. TVCTDSJCFͷதͰTFMGࢀরͯ͠ ଞͷετϦʔϜͷΛͭͳ͛Δͷආ͚͍ͨ
Cookpad Inc. All Rights Reserved.
Cookpad Inc. All Rights Reserved. ετϦʔϜͱɺࢦఆͨ͠ετϦʔϜͷۙͷΛ ͏·ͭ͘ͳ͛Δ͜ͱ͕Ͱ͖Δ
Cookpad Inc. All Rights Reserved. ͦͷ A[JQA
Cookpad Inc. All Rights Reserved.
Cookpad Inc. All Rights Reserved. ࠩΛऔΔͷ͕؆୯ʹͳΔ
Cookpad Inc. All Rights Reserved. ͦͷ ATDBOA ATUBSU8JUIA
Cookpad Inc. All Rights Reserved.
Cookpad Inc. All Rights Reserved.
Cookpad Inc. All Rights Reserved. "1*ͰQBHFࢦఆͯ͠ಡΈࠐΜͰ݁ՌΛ ஷΊ͍ͯ͘ͷʹศར
Cookpad Inc. All Rights Reserved. ͦͷ "DUJPO IUUQTHJUIVCDPN3Y4XJGU$PNNVOJUZ"DUJPO
Cookpad Inc. All Rights Reserved. "DUJPO w3Y4XJGU$PNNVOJUZͰఏڙ͞Ε͍ͯΔ044 w*OQVUͱ0VUQVU͕ܾ·ͬͨετϦʔϜͷྲྀΕΛΞΫγϣϯͱͯ͠ఆ ٛ͢Δ wͦͷΞΫγϣϯͷ݁Ռ
FMFNFOU ɺΤϥʔ FSSPS ɺ࣮ߦத͔Ͳ͏͔ FYDVUJOH ͕ͦΕͧΕετϦʔϜͱͯ͠ఏڙ͞ΕΔ w"1*ͷ௨৴Կ͔͠ΒͷඇಉظॲཧΛଋͶΔͷʹศར wADBUDI&SSPSA AEPAͱA<XFBLTFMG>Aͷۤ͠Έ͔Βղ์ͯ͘͠ΕΔ
Cookpad Inc. All Rights Reserved.
Cookpad Inc. All Rights Reserved. "DUJPOΛ͏ͱ͜͏ͳΔ
Cookpad Inc. All Rights Reserved.
Cookpad Inc. All Rights Reserved. ͦͷଞ ͔ͨͬͨ͜͠ͱ w)PU$PME0CTFSWBCMF wTIBSF SFQMBZ
w4DIFEVMFS w#JOEFS
Cookpad Inc. All Rights Reserved. ͕ͬͭΓಡΈͳ͕ΒֶͿͳΒ w3Y4XJGU3FBDUJWF1SPHSBNNJOHXJUI4XJGU wIUUQTTUPSFSBZXFOEFSMJDIDPNQSPEVDUTSYTXJGUSFBDUJWF QSPHSBNNJOHXJUITXJGU
None