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.2k
Alexa, Swiftで スマートスピーカーは実装できる?
motokiee
0
1.8k
iOSの自動化と仕組み化 ~コードと設計に集中する~
motokiee
11
3k
入力を型で表現する
motokiee
2
3.9k
Move Fast iOS Development
motokiee
4
3.9k
結婚式を支えた技術 Firebaseを活用したサーバレスiOSアプリケーション開発
motokiee
33
26k
Vision Framework 入門
motokiee
2
1.9k
Lightweight Dependency Injection tips
motokiee
10
3.1k
Hello React Native
motokiee
8
620
Other Decks in Technology
See All in Technology
extension 現場で使えるXcodeショートカット一覧
ktombow
0
190
“2件同時配達”の開発舞台裏 〜出前館PMが挑んだダブルピック実現に向けた体験設計〜
demaecan
0
180
業務自動化プラットフォーム Google Agentspace に入門してみる #devio2025
maroon1st
0
180
いま注目しているデータエンジニアリングの論点
ikkimiyazaki
0
570
神回のメカニズムと再現方法/Mechanisms and Playbook for Kamikai scrumat2025
moriyuya
4
310
From Prompt to Product @ How to Web 2025, Bucharest, Romania
janwerner
0
110
AIAgentの限界を超え、 現場を動かすWorkflowAgentの設計と実践
miyatakoji
0
110
Geospatialの世界最前線を探る [2025年版]
dayjournal
3
470
Escaping_the_Kraken_-_October_2025.pdf
mdalmijn
0
110
いまさら聞けない ABテスト入門
skmr2348
1
180
DataOpsNight#8_Terragruntを用いたスケーラブルなSnowflakeインフラ管理
roki18d
1
320
BirdCLEF+2025 Noir 5位解法紹介
myso
0
180
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Context Engineering - Making Every Token Count
addyosmani
4
160
Bash Introduction
62gerente
615
210k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Gamification - CAS2011
davidbonilla
81
5.5k
Practical Orchestrator
shlominoach
190
11k
Six Lessons from altMBA
skipperchong
28
4k
Writing Fast Ruby
sferik
629
62k
Designing for Performance
lara
610
69k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
19
1.2k
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
ऴΘΓ