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
オンライン英会話アプリとSkyWay
Search
taminif
January 15, 2018
Programming
0
450
オンライン英会話アプリと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
2.2k
Redashの開発はじめました / How to get started Redash development
taminif
0
760
私の生活を変えたHeadless Chrome / Headless Chrome who changed my life
taminif
3
480
WebSocketをiOSに持ち込んで辛い思いをした経験がありますか!? / have you painful experience in web socket?
taminif
3
5.7k
LINEで馬券を購入する / Purchase a betting ticket at LINE
taminif
1
1.6k
SkyWayで一年間運用してきたけどWebRTCってつらいんじゃないの
taminif
2
990
オンライン英会話とSkyWay
taminif
0
510
Mac1台でアプリを作る時代再び
taminif
0
420
iOS11は本当にWebRTCに対応したのか
taminif
1
1.4k
Other Decks in Programming
See All in Programming
Select API from Kotlin Coroutine
jmatsu
1
190
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
100
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
690
Cursor AI Agentと伴走する アプリケーションの高速リプレイス
daisuketakeda
1
130
C++20 射影変換
faithandbrave
0
540
システム成長を止めない!本番無停止テーブル移行の全貌
sakawe_ee
1
130
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
560
「Cursor/Devin全社導入の理想と現実」のその後
saitoryc
0
160
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
330
GoのGenericsによるslice操作との付き合い方
syumai
3
690
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
810
Code as Context 〜 1にコードで 2にリンタ 34がなくて 5にルール? 〜
yodakeisuke
0
110
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Raft: Consensus for Rubyists
vanstee
140
7k
Code Reviewing Like a Champion
maltzj
524
40k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
What's in a price? How to price your products and services
michaelherold
246
12k
Designing for humans not robots
tammielis
253
25k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
We Have a Design System, Now What?
morganepeng
53
7.7k
How GitHub (no longer) Works
holman
314
140k
The Pragmatic Product Professional
lauravandoore
35
6.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Ͱಈ͘Α͏ʹͳ͕ͬͨɺࠓ࣌ͰΞ
ϓϦͷํ͕҆ఆͯ͠ಈ࡞͢ΔͷͰ·ͩ·ͩधཁ ͋Δͱࢥ͍·͢ʂ
͋Γ͕ͱ͏͍͟͝·ͨ͠