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
RxSwift in Practice
Search
Motoki Narita
November 20, 2016
Technology
11
5.9k
RxSwift in Practice
https://eventdots.jp/event/602872
#eventdots
Motoki Narita
November 20, 2016
Tweet
Share
More Decks by Motoki Narita
See All by Motoki Narita
Mercari 10years iOS Development
motokiee
5
4.1k
Alexa, Swiftで スマートスピーカーは実装できる?
motokiee
0
1.6k
iOSの自動化と仕組み化 ~コードと設計に集中する~
motokiee
11
3k
入力を型で表現する
motokiee
2
3.9k
Move Fast iOS Development
motokiee
4
3.8k
結婚式を支えた技術 Firebaseを活用したサーバレスiOSアプリケーション開発
motokiee
33
25k
Vision Framework 入門
motokiee
2
1.9k
Lightweight Dependency Injection tips
motokiee
10
3k
Hello React Native
motokiee
8
610
Other Decks in Technology
See All in Technology
三視点LLMによる複数観点レビュー
mhlyc
0
230
Maintainer Meetupで「生の声」を聞く ~講演だけじゃないKubeCon
logica0419
0
110
衛星運用をソフトウェアエンジニアに依頼したときにできあがるもの
sankichi92
1
1.1k
PHPからはじめるコンピュータアーキテクチャ / From Scripts to Silicon: A Journey Through the Layers of Computing
tomzoh
2
150
データ駆動経営の道しるべ:プロダクト開発指標の戦略的活用法
ham0215
2
120
ABEMAの本番環境負荷試験への挑戦
mk2taiga
5
1.3k
ビジネス職が分析も担う事業部制組織でのデータ活用の仕組みづくり / Enabling Data Analytics in Business-Led Divisional Organizations
zaimy
1
400
スタックチャン家庭用アシスタントへの道
kanekoh
0
120
Delegating the chores of authenticating users to Keycloak
ahus1
0
190
TLSから見るSREの未来
atpons
2
330
QuickSight SPICE の効果的な運用戦略~S3 + Athena 構成での実践ノウハウ~/quicksight-spice-s3-athena-best-practices
emiki
0
290
大量配信システムにおけるSLOの実践:「見えない」信頼性をSLOで可視化
plaidtech
PRO
0
390
Featured
See All Featured
Balancing Empowerment & Direction
lara
1
460
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
108
19k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Facilitating Awesome Meetings
lara
54
6.5k
Transcript
3Y4XJGUJO1SBDUJDF J04Φʔϧελʔζ .PUPLJ/BSJUB !NPUPLJFF
ࣗݾհ w !NPUPLJFF w J04ΤϯδχΞ w ϝϧΧϦΞοςͷJ04Λ։ൃ w ωΫετʢ)0.&`4ʣˠικʢ݄ʣ w
ݸਓͰझຯͰJ04ΞϓϦΛ։ൃ w J04%$+BQBOίΞελοϑ
3Y4XJGU͍ͬͯ·͔͢
ϝϧΧϦΞοςશ໘తʹ 3Y4XJGUΛ࠾༻ͯ͠։ൃ
Ξος։ൃͷٕज़ɿ4XJGUͱ3Y4XJGUCZ4IJOJDIJSP0CB IUUQTTQFBLFSEFDLDPNCSJDLMJGFBUVUFLBJGBGBMTFKJTIVTXJGUUPSYTXJGU
͍͍ͩͨ4XJGUͰॻ͔Ε͍ͯΔ ˞0CKFDUJWF$ϥΠϒϥϦͳͲ
લʜ
ձࣾʢલ৬ʣͰ3Y4XJGUษڧձ w ࣌ͳΜͱͳ͘ྲྀߦ͍ͬͯͨ w ࣾͷ༗ࢤͰʢۀ֎ʣ w ຖि݄༵ேʢʙʣʹू·ͬͯษڧձ w 1MBZHSPVOEͰجຊతͳΦϖϨʔλΛֶͿ w
&YBNQMFTΛݟΔ
ճ͘Β͍ͬͯΈͨײ w ࣮ફతͳίʔυΛॻ͍ͯਐΊͨํ͕ྑͦ͞͏ w ந͕ߴ͘ɺͳΜͷͨΊʹ3Y4XJGUΛ͏ͷ͔ɺԿ͕ྑ ͘ͳΔͷ͔ɺཧղͰ͖͍ͯͳ͔ͬͨ w ϝϯόʔʹཧղͯ͠͏ඞཁ͕͋Γͦ͏
ʮผʹಋೖ͠ͳ͍͍͔ͯ͘ʯ ͱࢥͬͨޙʜ
స৬ͯ͠3Y4XJGUΛϑϧͰ͏͜ͱʹ
ຊ֨తʹ3Y4XJGUͰ։ൃΛ࢝Ίͯϲ݄ͷ φϚͷΛ͓ಧ͚͠·͢
3Y4XJGUʹ͍ͭͯ
3Y4XJGU w ϦΞΫςΟϒϓϩάϥϛϯάΛ4XJGUͰॻͨ͘Ίͷ ϥΠϒϥϦ w ϚΠΫϩιϑτ͕/&5'SBNFXPSLʹ͚ʹ ϦϦʔεͨ͠3FBDUJWF&YUFOTJPOTʢ3YʣϥΠϒϥϦ Ͱ͋Δ3Y/&5 Ҿ༻IUUQXXXCVJMEJOTJEFSOFUDPMVNOLBXBJZPTIJGVNJ ͔Βੜ
w 4XJGUҎ֎ʹ3Y+BWBɺ3Y+4ͳͲͷ༷ʑͳݴޠʹ ੜ
Ξος։ൃͷٕज़ɿ4XJGUͱ3Y4XJGUCZ4IJOJDIJSP0CB IUUQTTQFBLFSEFDLDPNCSJDLMJGFBUVUFLBJGBGBMTFKJTIVTXJGUUPSYTXJGU
ετϦʔϜ
None
ετϦʔϜΛͲ͏ѻ͏͔ʁ ࡞ΔՃࢹ
;Ή;Ήɺ;Ή;Ήɻ ετϦʔϜΛ࡞ΔՃ͢Δࢹ͢Δͱ͍͏ࢹͰ ϓϩάϥϛϯάΛߦ͏ͱɻ
ͳΔ΄ͲɺͳΔ΄Ͳɻ ετϦʔϜΛ࡞ΔՃ͢Δࢹ͢Δͱ͍͏ࢹͰ ϓϩάϥϛϯάΛߦ͏ɻͳΔ΄ͲͰ͢Ͷʙɻ
ͳΔ΄Ͳɺ·ͬͨ͘Θ͔ΒΜ
Ͳ͏͍͏͜ͱʁ w ετϦʔϜΛ࡞Δʁ w ετϦʔϜΛՃ͢Δʁ w ετϦʔϜΛࢹ͢Δʁ
ݱͰͲͷΑ͏ʹ͍ͬͯΔͷ͔ʁ ઃܭʹͲͷΑ͏ʹӨڹΛ༩͍͑ͯΔͷ͔ʁ
͍·͋ΔॲཧΛͲͷΑ͏ʹ ॻ͖͑ΒΕΔͷ͔ʁ
࣮ࡍʹϦϦʔε͞Ε͍ͯΔɺ ͋ΔΧϝϥΞϓϦͷ࣮Λ3Yʹॻ͖͑ͯΈΔ
͋ΔΧϝϥΞϓϦʹ͍ͭͯ w ڈ࡞ͬͨࣗͷΞϓϦ w Χϝϥ͔Βͷೖྗө૾ʹϑΟϧλʔΛ͔͚ͯϦΞϧ λΠϜͰϓϨϏϡʔͰ͖Δ w ࡱӨ͢ΔͱϑΟϧλʔՃ͞Εͨঢ়ଶͷը૾͕อଘ ͞ΕΔ
None
Ϙλϯλοϓ ϩʔσΟϯάදࣔɺ ɹը૾ΛΩϟϓνϟɺอଘ͢Δ ը૾อଘޙɺϩʔσΟϯάΛ ɹඇදࣔʹͯ͠ϑΟϧλʔΛมߋ
௨ৗͷ࣮ Ϙλϯ͕ԡ͞ΕͨࡍʹҎԼͷ ॲཧΛߦ͏ϝιου࡞Δ ը૾ΛΩϟϓνϟͯ͠อଘ͢Δ ͕ऴྃͨ͠ΒϩʔσΟϯάඇ දࣔ
ͱಉ࣌ʹϑΟϧλʔΛมߋ Ϙλϯλοϓ Ϙλϯλοϓޙɺ ը૾ΛΩϟϓνϟɺอଘ͢Δ ը૾Λอଘ͞ΕΔ·Ͱ ϩʔσΟϯάදࣔ ը૾อଘޙʹ ϑΟϧλʔΛมߋ
࣮ࡍͷίʔυ Λ ͔ͳΓϚγʹͨ͠ͷ
Ϙλϯ͕ԡ͞ΕͨΒϩʔσΟϯάදࣔ ࣮ࡍͷίʔυ Λ ͔ͳΓϚγʹͨ͠ͷ
Ωϟϓνϟ ࣮ࡍͷίʔυ Λ ͔ͳΓϚγʹͨ͠ͷ
࣮ࡍͷίʔυ Λ ͔ͳΓϚγʹͨ͠ͷ ΩϟϓνϟऴྃޙɺޭͰ͋ΕϩʔσΟϯάඇදࣔɺΤϑΣΫτΛมߋ
࣮ࡍͷίʔυ Λ ͔ͳΓϚγʹͨ͠ͷ ΩϟϓνϟͰ͖ͳ͔ͬͨ߹Τϥʔදࣔ
௨ৗͷ࣮ Ϙλϯλοϓ Ϙλϯλοϓޙɺ ը૾ΛΩϟϓνϟɺอଘ͢Δ ը૾Λอଘ͞ΕΔ·Ͱ ϩʔσΟϯάදࣔ
ը૾อଘޙʹ ϑΟϧλʔΛมߋ Ϙλϯ͕ԡ͞ΕͨࡍʹҎԼͷ ॲཧΛߦ͏ϝιου࡞Δ ը૾ΛΩϟϓνϟͯ͠อଘ͢Δ ͕ऴྃͨ͠ΒϩʔσΟϯάඇ දࣔ ͱಉ࣌ʹϑΟϧλʔΛมߋ
ετϦʔϜͰߟ͑Δ
None
ετϦʔϜͰߟ͑ͯΈΔ Ϙλϯλοϓ Ϙλϯλοϓޙɺ ը૾ΛΩϟϓνϟɺอଘ͢Δ ը૾Λอଘ͞ΕΔ·Ͱ ϩʔσΟϯάදࣔ
ը૾อଘޙʹ ϑΟϧλʔΛมߋ
Ϙλϯλοϓ ϩʔσΟϯάදࣔɺ ɹը૾ΛΩϟϓνϟɺอଘ͢Δ ը૾อଘޙɺϩʔσΟϯάΛ ɹඇදࣔʹͯ͠ϑΟϧλʔΛมߋ
ετϦʔϜͰߟ͑ͯΈΔ Ϙλϯͷλοϓ͕ΠϕϯτͷτϦΨʔʹͳΔ Ϙλϯλοϓ Ϙλϯλοϓޙɺ ը૾ΛΩϟϓνϟɺอଘ͢Δ ը૾Λอଘ͞ΕΔ·Ͱ ϩʔσΟϯάදࣔ
ը૾อଘޙʹ ϑΟϧλʔΛมߋ
Ϙλϯλοϓ Ϙλϯλοϓޙɺ ը૾ΛΩϟϓνϟɺอଘ͢Δ ը૾Λอଘ͞ΕΔ·Ͱ ϩʔσΟϯάදࣔ ը૾อଘޙʹ
ϑΟϧλʔΛมߋ ετϦʔϜͰߟ͑ͯΈΔ ը૾Ωϟϓνϟͷঢ়ଶભҠ
ετϦʔϜͰߟ͑ͯΈΔ ը૾ͷΩϟϓνϟঢ়ଶͷ ετϦʔϜ Ϙλϯλοϓ Ϙλϯλοϓޙɺ ը૾ΛΩϟϓνϟɺอଘ͢Δ ը૾Λอଘ͞ΕΔ·Ͱ
ϩʔσΟϯάදࣔ ը૾อଘޙʹ ϑΟϧλʔΛมߋ
ετϦʔϜͰߟ͑ͯΈΔ ը૾ͷΩϟϓνϟঢ়ଶͷ ετϦʔϜ Ϙλϯλοϓ Ϙλϯλοϓޙɺ ը૾ΛΩϟϓνϟɺอଘ͢Δ ը૾Λอଘ͞ΕΔ·Ͱ
ϩʔσΟϯάදࣔ ը૾อଘޙʹ ϑΟϧλʔΛมߋ
ίʔυ
ίʔυ ϘλϯͷετϦʔϜΛը૾อଘετϦʔϜʹม
Ϙλϯλοϓ 7PJE qBU.BQϘλϯλοϓˠը૾ͷΩϟϓνϟঢ়ଶʢ(16*NBHF4UJMM$BNFSBͷ3Y֦ு͕ߦ͏ʣ Ωϟϓνϟঢ়ଶ EFGBVMU DBQUVSJOH DBQUVSFE ϘλϯλοϓΠϕϯτ͔ΒΩϟϓνϟঢ়ଶͷετϦʔϜ EFGBVMU
ίʔυ ΩϟϓνϟதͰ͋ΕϩʔσΟϯάΛදࣔ
NBQ\DBQUVSJOH^ Ωϟϓνϟঢ়ଶ EFGBVMU DBQUVSJOH DBQUVSFE ϩʔσΟϯάதͰ͋Δ͜ͱΛද͢ετϦʔϜ Ωϟϓνϟத GBMTF USVF GBMTF
EFGBVMU GBMTF
ίʔυ ΩϟϓνϟதͰ͋ΕϩʔσΟϯάΛදࣔ
ίʔυ ΩϟϓνϟྃޙΤϑΣΫτΛมߋ
Ωϟϓνϟঢ়ଶ EFGBVMU DBQUVSJOH DBQUVSFE Ωϟϓνϟঢ়ଶͷετϦʔϜ ΤϑΣΫτΛมߋ
ίʔυ
ϢʔβʔͷೖྗɺมԽ͢Δঢ়ଶͳͲΛ ετϦʔϜʹྲྀ͠ɺͦͷΛͲ͏ѻ͏͔ʁ ͱ͍͏؍͔Βߟ͑Δ
ίʔυΛൺֱ
௨ৗͷίʔυͷ࣮࣌ͷྲྀΕ ࣮͠Α
௨ৗͷίʔυͷ࣮࣌ͷྲྀΕ ϩʔσΟϯάΛ දࣔͩ
௨ৗͷίʔυͷ࣮࣌ͷྲྀΕ Ωϟϓνϟ͠Α
௨ৗͷίʔυͷ࣮࣌ͷྲྀΕ SFTVMUͰذͯ͠ʜ
௨ৗͷίʔυͷ࣮࣌ͷྲྀΕ ύλʔϯΛཏͬͱ
௨ৗͷίʔυͷ࣮࣌ͷྲྀΕ ͑ʔͬͱɺͲ͏͢Δ Μ͚ͩͬʁ
௨ৗͷίʔυͷ࣮࣌ͷྲྀΕ ͋ɺͦ͏ͩɻTVDDFTTͰ ΤϑΣΫτΛม͑ΔΜͩ
௨ৗͷίʔυͷ࣮࣌ͷྲྀΕ ͦΜͰɺΤϥʔදࣔͱɻ 0,ɺͰ͖ͨ
࣮ػ֬ೝ
௨ৗͷίʔυͷ࣮࣌ͷྲྀΕ ͋ɺϩʔσΟϯάফͯ͠ ͳ͔ͬͨʜ
௨ৗͷίʔυͷ࣮࣌ͷྲྀΕ ͜ΕͰ0,
Α͋͘Δ
3Y4XJGUͰͷ࣮࣌ͷྲྀΕ ࣮͠Α
3Y4XJGUͰͷ࣮࣌ͷྲྀΕ ϘλϯͷλοϓΛΩϟϓ νϟঢ়ଶͷετϦʔϜʹ ม͢Δ
3Y4XJGUͰͷ࣮࣌ͷྲྀΕ ϩʔσΟϯάத͚ͩͷ Ͱ࡞ͬͯCJOE͢Δ͔
3Y4XJGUͰͷ࣮࣌ͷྲྀΕ DBQUVSFEདྷͨΒΤϑΣ ΫτΛΓସ͑Δͱ
3Y4XJGUͰͷ࣮࣌ͷྲྀΕ Τϥʔ͕དྷͨΒΤϥʔΛ දࣔɻͰ͖ͨ
ετϦʔϜʢͷ࡞Ճࢹʣʹ ϑΥʔΧε͍ͯ͠Δ
ͳΜͱͳ͓͔͘Γ͍͚ͨͩͨͰ͠ΐ͏͔
Α͠ಋೖ͠Α͏ ͱࢥͬͨํɺͪΐͬͱ͍ͬͯͩ͘͞
ຊʹಋೖ͢Δඞཁ͋Γ·͔͢ʁ
ಛʹͳ͍ɻΘ͟Θ͟3Yʹ͢Δඞཁ͋Δͷ͔ʁ
3YۜͷؙͰͳ͍
ྑ͍ͱ͜Ζɺѱ͍ͱ͜Ζ ʢ৫ͱͯ͠Ͱͳ͘ݸਓͱͯ͠ͷײʣ
ྑ͍ͱ͜Ζ w ίʔυ͕ಡΈ͍͢ w ͦΕ͕ϢʔβʔͷೖྗͰ͋ΕɺจࣈྻͰ͋Εɺඇಉ ظॲཧͰ͋ΕͳΜͰ͋ͬͯɺετϦʔϜΛͲ͏ѻ ͏͔ͱ͍͏ʹूத࣮͕ͯ͠Ͱ͖ΔΑ͏ʹͳͬͨ w ඇಉظॲཧͷ࣮ҎલΑΓָʹͳͬͨؾ͕͢Δ
ѱ͍ͱ͜Ζ w ֶशίετ͕ߴ͍ w ·͖ͩΕ͍ͳετϦʔϜ͕࡞Εͳ͍ w 3Y.BSCMFTΛݟͨΓɺطଘͷιʔεΛಡΜͩΓͯ͠ଟ͘ͷ͜ͱΛֶ ΜͰ͍Δ࠷த w ϝϯόʔͷೖΕସΘΓ͕ଟ͍ͱݫͦ͠͏
w ϑϨʔϜϫʔΫʹେ͖͘ґଘ͢Δ͜ͱʹͳΔ w Ծʹ3Y͕ϝϯςφϯε͞Εͳ͘ͳͬͨ߹Ͳ͏ͳΔʁ w ʢͨͩ͠3Yࣗମʹେ͖ͳܽͳ͍ͱࢥ͏ʣ
ικͰͷऔΓΈ
IUUQTTQFBLFSEFDLDPNCSJDLMJGFSFBDUJWFDPDPBGBMTFZVSVJTIBPKJFUPNFSVLBSJEFGBMTFIVPZPOHTIJMJ
IUUQTTQFBLFSEFDLDPNCSJDLMJGFSFBDUJWFDPDPBGBMTFZVSVJTIBPKJFUPNFSVLBSJEFGBMTFIVPZPOHTIJMJ
TVTIJTIPLVOJʹΑΔϨϏϡʔΞαΠϯ w ικͰTVTIJTIPLVOJͱ͍͏#05͕ ιʔεϨϏϡʔΛϥϯμϜͰΞαΠϯͯ͘͠ΕΔ w νʔϜྗͷఈ্͛
·ͱΊ w 3Y4XJGUʹΑͬͯετϦʔϜΛͲ͏ѻ͏͔ͱ͍͏؍͔Βઃܭɾ࣮ Λߦ͏Α͏ʹͳͬͨ w ঢ়ଶͷมԽʹ·͞Ε͍ͯΔ߹ɺ༗༻ͳπʔϧʹͳΔ͔͠Ε· ͤΜ w ۜͷؙͰͳ͍ w
νʔϜόϥϯεɺϝϯόʔͷೖΕସΘΓͷසͳͲͳͲɺ ֶशίετͷ؍͔Βߟྀ͖͢͜ͱଟ͍ w طଘͷίʔυ͕͋Δ߹ɺࠓݟ͖ͯͨΑ͏ʹɺطଘͷ࣮Λε τϦʔϜΛ؍ʹઃܭɾ࣮ͯ͠ΈͯͤʹͳΕΔ͔Λ͔֬ΊͯΈ Δͱྑ͍͔
ࢀߟࢿྉ w IUUQTTQFBLFSEFDLDPNCSJDLMJGFSFBDUJWFDPDPBGBMTFZVSVJTIBP KJFUPNFSVLBSJEFGBMTFIVPZPOHTIJMJ w IUUQTTQFBLFSEFDLDPNCSJDLMJGFBUVUFLBJGBGBMTFKJTIVTXJGU UPSYTXJGU w IUUQTTQFBLFSEFDLDPNCSJDLMJGFTXJGUEPUEFSYTXJGU SFBDULJUSFBDUJWFDPDPBXPTIJUVUFNJUB
w IUUQTTQFBLFSEFDLDPNJTILBXBSYUFTUT w IUUQTTQFBLFSEFDLDPNJTILBXBSYTXJGUQMVTNWWN
ऴΘΓ