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
CA.swift #8 Protect against unauthorized use wi...
Search
Akio Itaya
March 06, 2019
Technology
1
1.5k
CA.swift #8 Protect against unauthorized use with RxSwift
RxSwift を用いた設計で、配信コンテンツを不正利用から守る
Akio Itaya
March 06, 2019
Tweet
Share
More Decks by Akio Itaya
See All by Akio Itaya
Learn CPU architecture with Assembly
akkeylab
1
1.4k
Porting a visionOS App to Android XR
akkeylab
0
1k
How to handle 3D content on Android XR
akkeylab
0
160
Create a website using Spatial Web
akkeylab
0
360
How to build visionOS apps using Windows
akkeylab
0
180
How to build visionOS apps using Persona
akkeylab
1
390
Summary - Introducing enterprise APls for visionOS
akkeylab
0
520
Apple Vision Pro trial session
akkeylab
0
320
How to support Privacy Manifest
akkeylab
0
430
Other Decks in Technology
See All in Technology
AI時代、“平均値”ではいられない
uhyo
8
2.6k
.NET 10のBlazorの期待の新機能
htkym
0
110
webpack依存からの脱却!快適フロントエンド開発をViteで実現する #vuefes
bengo4com
4
3.5k
オブザーバビリティと育てた ID管理・認証認可基盤の歩み / The Journey of an ID Management, Authentication, and Authorization Platform Nurtured with Observability
kaminashi
1
740
AI AgentをLangflowでサクッと作って、1日働かせてみた!
yano13
1
160
だいたい分かった気になる 『SREの知識地図』 / introduction-to-sre-knowledge-map-book
katsuhisa91
PRO
3
1.4k
AWS re:Invent 2025事前勉強会資料 / AWS re:Invent 2025 pre study meetup
kinunori
0
440
様々なファイルシステム
sat
PRO
0
250
dbtとAIエージェントを組み合わせて見えたデータ調査の新しい形
10xinc
2
680
プレイドのユニークな技術とインターンのリアル
plaidtech
PRO
1
380
ゼロコード計装導入後のカスタム計装でさらに可観測性を高めよう
sansantech
PRO
1
460
GraphRAG グラフDBを使ったLLM生成(自作漫画DBを用いた具体例を用いて)
seaturt1e
1
150
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
431
66k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Optimizing for Happiness
mojombo
379
70k
Music & Morning Musume
bryan
46
6.9k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Transcript
৴ίϯςϯπΛෆਖ਼ར༻͔ΒकΔ AKKEY / AKIO ITAYA MatchingAgent, Inc. RxSwiftΛ༻͍ͨઃܭͰ
໊લɿ൘୩ ߊྑɹ/ɹ͖͋ͬʔ झຯɿυϥΠϒ ׆ಈɿ@AkkeyLab Cyberagent, Inc. MatchingAgent, Inc. େֶೖֶޙϓϩάϥϛϯάʹҰࠍΕɺ18৽ଔ iOS
ΤϯδχΞ ࣗݾհ
None
ࡐ
None
ࡐ ◆ ಈըࢹௌϓϥοτϑΥʔϜ ◆ ެ։લ ݸਓ։ൃΞϓϦ ◆ ࠓճαʔόଆʹ৮Ε·ͤΜ
ಋೖٕज़
ಋೖٕज़ʢClient onlyʣ RxSwift VueFlux Moya Realm Travis CI CodeCov GitHub
Architecture
Architecture State Computed VC Actions Mutations VM
State Computed VC API Request Actions Mutations VM Architecture
State Computed VC API Request Response Routing Actions Mutations VM
Architecture
State Computed VC API Request Response Routing Actions Mutations VM
Implement some properties Architecture
State Computed VC API Request Response Routing Actions Mutations VM
Output Observable Implement some properties Architecture
State Computed VC API Request Response Routing Actions Mutations VM
Output Observable Input / Output Logic Implement some properties Architecture
State Computed VC API Request Response Routing Actions Mutations VM
Output Observable Input / Output Logic Implement some properties Architecture
State Computed VC API Request Response Routing Actions Mutations VM
Output Observable Input / Output Logic Implement some properties Architecture
State Computed VC API Request Response Routing Actions Mutations VM
Output Observable Input / Output Logic Implement some properties Architecture
લఏ݅
લఏ݅ ◆ API Response 1. ݅ͷಈըใΛऔಘ
લఏ݅ ◆ API Response ෆมͷID 1. ݅ͷಈըใΛऔಘ
લఏ݅ ◆ API Response ෆมͷID 2. IDΛPrimaryKeyͱͯ͠VideoLinkΛऔಘ 1. ݅ͷಈըใΛऔಘ
State Computed VC API Request Response Routing Actions Mutations VM
Output Observable Input / Output Logic Implement some properties ಈը࠶ੜ·Ͱʹ ̎ϧʔϓͯ͠Δ ʢॳճʹݶΓʣ Architecture
ಈըίϯςϯπͷอޢ
ಈըίϯςϯπͷอޢ URL ͕όϨΔͱෆਖ਼ Download ͷՄೳੑ
ಈըίϯςϯπͷอޢ ◆ ఆظత URL มߋ ◆ IP ΞυϨε੍ݶ ◆ ҉߸Խ
ಈըίϯςϯπͷอޢ ◆ ఆظత URL มߋ ◆ IP ΞυϨε੍ݶ ◆ ҉߸Խ
ಈըίϯςϯπͷอޢ ຖ࣌ ݕࡧ A B C D 1 2 3
4 1A 1B 4C 4D ߋ৽ ◆ ఆظత URL มߋ
ಈըίϯςϯπͷอޢ A B C D 1 1A 1B 4C 4D
ຖ࣌ ݕࡧ ߋ৽ ◆ ఆظత URL มߋ 2 3 4
ಈըίϯςϯπͷอޢ A B C D 1 1A 1B 4C 4D
ຖ࣌ ݕࡧ ߋ৽ ◆ ఆظత URL มߋ 2 3 4
ಈըίϯςϯπͷอޢ ◆ ఆظత URL มߋ A B C D 1
1A 1B 4C 4D ຖ࣌ ݕࡧ ߋ৽ 2 3 4
ಈըίϯςϯπͷอޢ A B C D 1 1A 1B 4C 4D
ຖ࣌ ݕࡧ ߋ৽ ◆ ఆظత URL มߋ 2 3 4
withLatestFrom
ఆظతURLมߋ ຖ࣌ ݕࡧ A B C D 1 1A 1B
4C 4D ߋ৽ ◆ withLatestFrom 2 3 4
ఆظతURLมߋ
ఆظతURLมߋ
ఆظతURLมߋ
ఆظతURLมߋ
ಈըίϯςϯπͷอޢ ◆ ఆظత URL มߋ ϥάͰݟΕͳ͍Մೳੑ͋Γ ൺֱత؆୯ͳ࣮
ಈըίϯςϯπͷอޢ ◆ ఆظత URL มߋ ◆ IP ΞυϨε੍ݶ ◆ ҉߸Խ
ಈըίϯςϯπͷอޢ IPมԽ ݕࡧ A B C D 1 2 3
4 1B 3C 4D ߋ৽ ◆ IP ΞυϨε੍ݶ
ಈըίϯςϯπͷอޢ IPมԽ ݕࡧ A B C D 1 2 3
4 1B 3C 4D ߋ৽ ◆ IP ΞυϨε੍ݶ
ಈըίϯςϯπͷอޢ IPมԽ ݕࡧ A B C D 1 2 3
4 1B 3C 4D ߋ৽ ◆ IP ΞυϨε੍ݶ
ಈըίϯςϯπͷอޢ IPมԽ ݕࡧ A B C D 1 2 3
4 1B 3C 4D ߋ৽ ◆ IP ΞυϨε੍ݶ
withLatestFrom
IPΞυϨε੍ݶ ◆ withLatestFrom IPมԽ ݕࡧ A B C D 1
2 3 4 1B 3C 4D ߋ৽
IPΞυϨε੍ݶ
ಈըίϯςϯπͷอޢ ◆ IP ΞυϨε੍ݶ IPมԽݕͷਫ਼ʹࠨӈ͞ΕΔ ൺֱత࣮༻తͳͷͰʁ
ؒΛ͝հ
ؒΛ͝հ ຖ࣌ ݕࡧ A B C D 1 1A 1B
4C 4D ߋ৽ ◆ combineLatest 2B 3B 2 3 4
ؒΛ͝հ ຖ࣌ ݕࡧ A B C D 1 1A 1B
4C 4D ߋ৽ ◆ combineLatest 2B 3B 2 3 4
combineLatest
combineLatest
combineLatest
ಈըίϯςϯπͷอޢ ◆ ఆظత URL มߋ ◆ IP ΞυϨε੍ݶ ◆ ҉߸Խ
ಈըίϯςϯπͷอޢ ◆ ҉߸Խ https://akkeylab.com/s=&…
ಈըίϯςϯπͷอޢ ◆ ҉߸Խ ղಡ๏͋ΔͷͰ݁ہᴟͬ͜͝ ڧྗͰ࣮༻త https://akkeylab.com/s=&… ͍ͨͪ
ຊͷొਓ ◆ withLatestFrom ◆ combineLatest
ຊͷొਓ ◆ withLatestFrom ◆ combineLatest ◆ tapple
Thank you !!