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.3k
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
What's new in OpenShift 4.20
redhatlivestreaming
0
320
20251029_Cursor Meetup Tokyo #02_MK_「あなたのAI、私のシェル」 - プロンプトインジェクションによるエージェントのハイジャック
mk0721
PRO
4
1.3k
東京大学「Agile-X」のFPGA AIデザインハッカソンを制したソニーのAI最適化
sony
0
140
GraphRAG グラフDBを使ったLLM生成(自作漫画DBを用いた具体例を用いて)
seaturt1e
1
150
dbtとAIエージェントを組み合わせて見えたデータ調査の新しい形
10xinc
6
1.2k
「タコピーの原罪」から学ぶ間違った”支援” / the bad support of Takopii
piyonakajima
0
150
NLPコロキウム20251022_超効率化への挑戦: LLM 1bit量子化のロードマップ
yumaichikawa
3
540
オブザーバビリティが育むシステム理解と好奇心
maruloop
3
1.4k
SOTA競争から人間を超える画像認識へ
shinya7y
0
600
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
140
パフォーマンスチューニングのために普段からできること/Performance Tuning: Daily Practices
fujiwara3
2
140
クラウドとリアルの融合により、製造業はどう変わるのか?〜クラスメソッドの製造業への取組と共に〜
hamadakoji
0
450
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
697
190k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
GitHub's CSS Performance
jonrohan
1032
470k
For a Future-Friendly Web
brad_frost
180
10k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
620
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
130k
Docker and Python
trallard
46
3.6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
How GitHub (no longer) Works
holman
315
140k
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
ऴΘΓ