Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
オンライン英会話アプリとSkyWay
taminif
January 15, 2018
Programming
0
300
オンライン英会話アプリとSkyWay
SkyWay UG Kansai #1
https://skyway.connpass.com/event/74875/
taminif
January 15, 2018
Tweet
Share
More Decks by taminif
See All by taminif
PuppeteerとPlaywrightの15日間の演劇 / relation of Puppeteer and Playwright
taminif
3
1.3k
Redashの開発はじめました / How to get started Redash development
taminif
0
500
私の生活を変えたHeadless Chrome / Headless Chrome who changed my life
taminif
3
300
WebSocketをiOSに持ち込んで辛い思いをした経験がありますか!? / have you painful experience in web socket?
taminif
3
3.8k
LINEで馬券を購入する / Purchase a betting ticket at LINE
taminif
1
1.1k
SkyWayで一年間運用してきたけどWebRTCってつらいんじゃないの
taminif
2
910
オンライン英会話とSkyWay
taminif
0
320
Mac1台でアプリを作る時代再び
taminif
1
370
iOS11は本当にWebRTCに対応したのか
taminif
1
1.1k
Other Decks in Programming
See All in Programming
RustのWebフレームワーク周りの概観
hayao
0
170
Efficient UI testing in Android
alexzhukovich
1
120
パラメタライズドテスト
ledsun
0
220
Git操作編
smt7174
1
210
クラウド KMS の活用 / TOKYO BLOCKCHAIN TECH MEETUP 2022
odanado
PRO
0
180
閱讀原始碼 - 再戰十年的 jQuery
eddie
1
280
FargateとAthenaで作る、機械学習システム
nayuts
0
160
10歳の minne から、これから長く続くプロダクトを作るすべての人へ
tsumichan
9
3.6k
フロントエンドエンジニアが変える現場のモデリング意識/modeling-awareness-changed-by-front-end-engineers
uggds
32
13k
There's an API for that!
mariatta
PRO
0
100
実践 SpiceDB - クライドネイティブ時代をサバイブできるパーミッション管理の実装を目指して / Practical SpiceDB
lmt_swallow
0
120
20220706_Google Apps Scriptを実演で学ぶ~ GAS × Slack ~
apachan
2
610
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
213
7.5k
Visualization
eitanlees
125
12k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
15
980
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
7
1.1k
jQuery: Nuts, Bolts and Bling
dougneiner
56
6.4k
Optimizing for Happiness
mojombo
365
63k
Principles of Awesome APIs and How to Build Them.
keavy
113
15k
Fontdeck: Realign not Redesign
paulrobertlloyd
73
4.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
18
40k
Reflections from 52 weeks, 52 projects
jeffersonlam
337
17k
Keith and Marios Guide to Fast Websites
keithpitt
404
21k
Teambox: Starting and Learning
jrom
123
7.7k
Transcript
ΦϯϥΠϯӳձΞϓϦͱ SkyWay SkyWay UG Kansai #1 2018/01/12 େౡ ޫو@sbntaminif
ɿ͜ͷLT iOSDCηογϣϯ͔Β SkyWayʹݶఆͯ͠ যΛͯͨͷͰ͢
ࣗݾհ • ΣϒϦΦגࣜձࣾWEBΤϯδχΞ + ϓϩμΫτ Ϛωʔδϟʔ • ΞϓϦΤϯδχΞ ʢࣗশʣ •
ϞνϕʔγϣϯΛ্͛ΔԿ͔Λཉͯ͠·͢
ΞϓϦΛ࡞ΔܦҢ
iOSͷSafari WebRTCʹରԠ͍ͯ͠·ͤΜ Ͱͨ͠ ʢ20173݄࣌ʣ
iPhoneiPadͰ Weblioӳձ͕͑ͳ͍
มΘͬͯɺ Weblioӳձֶߍ اۀʹఏڙ͍ͯ͠·͢
·ͨɺֶߍͷதʹ iPadΛतۀʹ༻͢Δॴ ૿͖͑ͯ·ͨ͠
ʮWeblioӳձΛiPadͰ ༻Ͱ͖ͳ͍ʁʯ
iOS SafariͰແཧ͚ͩͲ ΞϓϦͰ࣮͢ΕͰ͖Δ
https://itunes.apple.com/jp/app/weblio๏ਓӳձ/id1215209006?mt=8
ΞϓϦͷհΛ͠·͢ʂ
ͱͯγϯϓϧͳΞϓϦ ᶃϩάΠϯ
ͱͯγϯϓϧͳΞϓϦ ᶄ࣍ճͷϏσΦϨοεϯ࣌֬ೝ
ͱͯγϯϓϧͳΞϓϦ ᶅϨοεϯ
Ϩοεϯͷػೳ͜ͷࡾͭ ϏσΦ෦ ڭࡐ෦ νϟοτ෦
SkyWay෦ ᶃͷϏσΦ෦Ͱ͢
ΞϓϦͷ࣮
ͪΖΜɺΞϓϦʹ WebRTCͰ࣮͢Δඞཁ͕ ͋Γ·͢
SkyWay: WebRTCΛ؆୯ʹ ࣮ݱ͢ΔαʔϏε https://webrtc.ecl.ntt.com
let options:SKWPeerOption = SKWPeerOption.init() options.key = `APIΩʔ` options.domain = `υϝΠϯ`
peer = SKWPeer.init(options: options) peer?.on(SKWPeerEventEnum.PEER_EVENT_OPEN, callback: {(obj) -> Void in // my peer ID if let ownId = obj as? String { self.videoLessonRtdb.writeSkyWayId(id: ownId) } }) peer?.on(SKWPeerEventEnum.PEER_EVENT_CALL, callback: {(obj) -> Void in let mediaConnection:SKWMediaConnection = obj as! SKWMediaConnection self.videoConnection = mediaConnection mediaConnection.answer(self.localMediaStream) }) αϯϓϧίʔυ #import <SkyWay/SKWPeer.h> $PDPB1PETͰΠϯετʔϧ ͨ͠ϥΠϒϥϦΛΠϯϙʔτ 1FFSΦϒδΣΫτΛੜ ʢγάφϦϯάαʔόʔʹ ใॻ͖ࠐΈʣ ௨৴։࢝ ͜͜Ͱө૾ͱԻΛૹ৴ ใΛॻ͖ࠐΜͩΒɺ 1FFS*%͕ൃߦ͞Ε·͢
ɿ͜ͷΞϓϦ چSkyWayͰಈ͍͍ͯ·͢
·ͱΊ ΞϓϦͷݟ
·ͱΊ • ϥΠϒϥϦΛೖΕΔ͜ͱͰɺJSͱมΘΒͳ͍Ϩϕ ϧͰ࣮͕Մೳ • PC <=> ΞϓϦͷ௨ͳ͠ • SafariͰಈ͘Α͏ʹͳ͕ͬͨɺࠓ࣌ͰΞ
ϓϦͷํ͕҆ఆͯ͠ಈ࡞͢ΔͷͰ·ͩ·ͩधཁ ͋Δͱࢥ͍·͢ʂ
͋Γ͕ͱ͏͍͟͝·ͨ͠