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
WebRTCリリースで辛かったこと
Search
Ken Jumbo Haneda
April 19, 2018
Programming
1.6k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
WebRTCリリースで辛かったこと
Ken Jumbo Haneda
April 19, 2018
More Decks by Ken Jumbo Haneda
See All by Ken Jumbo Haneda
Vue.jsのない会社にVue.jsを入れていく
jumbo_ken
0
600
20200115_skyway_ug_6
jumbo_ken
0
560
サブスクミートアップ2.pdf
jumbo_ken
0
910
20180614_AppsJapan
jumbo_ken
1
490
アプリを作ってて気づいた、 教育サービスの難しいところ
jumbo_ken
1
1.6k
WebRTCで実現する次世代英会話と旧世代式開発手法
jumbo_ken
0
2.1k
bonfire android #2
jumbo_ken
1
1.1k
iOSでのSkyWay開発の勘所とTips (リリース後・新SDK編)
jumbo_ken
0
6k
両OSやるマンという選択
jumbo_ken
9
6.4k
Other Decks in Programming
See All in Programming
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
310
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
260
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
220
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
170
Contextとはなにか
chiroruxx
1
380
スマートグラスで並列バイブコーディング
hyshu
0
270
これからAgentCoreを触る方へトレンドはGatewayです
har1101
4
400
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
340
Oxlintのカスタムルールの現況
syumai
6
1.2k
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
350k
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
130
Featured
See All Featured
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
590
Building an army of robots
kneath
306
46k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
740
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
The browser strikes back
jonoalderson
0
1.3k
We Are The Robots
honzajavorek
0
260
Utilizing Notion as your number one productivity tool
mfonobong
4
330
Visualization
eitanlees
152
17k
Ethics towards AI in product and experience design
skipperchong
2
320
Transcript
WebRTCϦϦʔεͰਏ͔ͬͨ͜ͱ 4LZ8BZ6(
None
WebRTCϦϦʔεͰਏ͔ͬͨ͜ͱ 4LZ8BZ6(
δϟϯϘ@jumboOrNot Kentaro Haneda APPɾUX Team Leader@RareJob Swift/kotlin/Golang/WebRTC
None
None
SPA/Typescript/Vue.js/spectre/webpack swift/kotlin/firebase/MVVM/RxXXX re:dash/kibana… ৭ʑͳٕज़ελοΫΛΈ߹Θͤͯ ࣮ɾӡ༻͍ͯ͠·͢ UXɾٕज़తʹ͍ΖΜͳઓΛΈࠐΜͰ·͢ɻ
ฐࣾͷϝσΟΞͰ͜ΕΛ࡞͍ͬͯ͘ͱ͖ͷ ϓϩηεͱ͔Λॻ͍͍ͯ·͢ɻ https://appeal.rarejob.co.jp/creator/2018/03/28/about- webrtc-release-story/
ࠓͷ͓ • WebRTCܥͷػೳΛϦϦʔε͢Δʹ͋ͨΓ • ʮਏΈʯΛΒ͛Δ • ʮਏΈʯʹ͚ͯ࡞͓͖ͬͯ͘ମ੍ɾΈ
͜Μͳਓʹ͍͑ͨ • WebRTCʹؔΘΔαʔϏεͷۀΛ͍ͯ͠Δ • WebRTCʹؔΘΔαʔϏεΛӡ༻͢Δ༧ఆͷਓ
ʮਏΈʯΛΒ͛Δ
ʮਏΈʯΛΒ͛Δ 1. ͍͢͝ظ 2. εΧΠϓʹͰ͖ΔΜͩ͠ɾɾɾ 3. σόΠεࠩҟͱෳΫϥΠΞϯτͷཧ
جຊతʹWebRTCͼͬ͘Γ͢Δ΄ͲͳΜͰͰ͖Δ ͱࢥΘΕ͍ͯΔʢࣾɾϢʔβʔ͞ΜؚΊʣ ˎͰ͖ͳ͍ʢۃʹ͍͏ͱʣ ɾEdge/IEͰಈ͔ͳ͍Ͳ͜Ζ͔ଟ͘ͷϒϥβͰಈ͔ͳ͍ ɾεϚϗWebͩͱಈ͔ͳ͍ɺΞϓϦ͕ඞཁ ɾࠓܨ͕͔ͬͨΒຊ൪Ͱܨ͕ΔͱݶΒͳ͍ ɾܨ͕ͬͯͯө૾͕ݟ͑ͳ͍͜ͱ͋Δ 1.͍͢͝ظ
جຊతʹWebRTCͼͬ͘Γ͢Δ΄ͲͳΜͰͰ͖Δ ͱࢥΘΕ͍ͯΔ ʮͰ͖ͳ͍ʯΛ༷ʹམͱ͢ • Firefox/ChromeҎ֎ͩͱڥνΣοΫͰΤϥʔΛදࣔ͢Δ • εϚϗͰͷදࣔ࣌ʹΞϓϦ or ετΞඈ͢ ɻҧ͍͕͋Δ͜ͱΛʮڞ༗ʯ͚ͩ
͡Όͳͯ͘ମݧϓϩμΫτͰ͑Δɻ 1.͍͢͝ظ
2. εΧΠϓʹͰ͖ΔΜͩ͠ɾɾɾ SkypeଟػೳͰ͋Δɻ ө૾ɺνϟοτɺֆจࣈɺIMɺ௨ɺෳσόΠε ΞΧϯτཧɺ௨ઃఆɺetcɾɾɾ ͜ΕΛશʹ࠶ݱ͢Δͷେมɺྫ͑IM https://support.skype.com/ja/faq/FA34696/skype-insutantometsusezi-im- noshu-shi-she-ding-wosuruniha ͜ΕΛ࡞Δʹ֤ΫϥΠΞϯτଆͰʮ**Ͱғ·Εͨจࣈʹରͯ͠boldΛ ͔͚ΔʯͳͲͷରԠ͕ඞཁɻ
2.શͳεΧΠϓͷସ͡Όͳ͍ ʻWebʼ **ͳͲΛड͚औͬͨΒ<b><i>λάͰғΊ͍͍ → َͷਖ਼نදݱࡇΓɺͰΕΔ ʻAppʼ ios/androidͷඪ४ͷ০ΛΖ͏ͱ͢Δ → HTMLΛҧͬͯɺʮಛఆͷRangeͷจࣈྻʹରͯ͠ ɹAttiributeΛ͚ͭΔʯͱ͍͏ΈͳͷͰෳࡶͳܗࣜʹରԠ͢Δͷ͕
ɹ͍͠ɻ
2.શͳεΧΠϓͷସ͡Όͳ͍ ʻAppʼ Ͳ͏͍͏͜ͱ͔ͱ͍͏ͱɾɾɾ myMutableString = NSMutableAttributedString(string: myString, attributes: [NSFontAttributeName:UIFont(name: "Georgia",
size: 18.0)!]) myMutableString.addAttribute(NSForegroundColorAttributeName, value: UIColor.redColor(),range: NSRange(location:2,length:4)) !!πϥΠϙΠϯτ!!
2.શͳεΧΠϓͷସ͡Όͳ͍ ʻAppʼ iOS: UILabelHTMLܗࣜͰදࣔͰ͖Δ Android: TextViewHTMLܗࣜͰදࣔͰ͖Δ → HTMLʹཔΖ͏ // kotlin
label.setText(Html.fromHtml(“<b>text</b>", Html.FROM_HTML_MODE_COMPACT)) // swift var err:NSError? self.label.attributedText = NSAttributedString( data: htmlText.dataUsingEncoding(NSUnicodeStringEncoding, allowLossyConversion: true), options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType], documentAttributes: nil, error: &err)
2.શͳεΧΠϓͷସ͡Όͳ͍ ʻAppʼ iOS: UILabelHTMLܗࣜͰදࣔͰ͖Δ Android: TextViewHTMLܗࣜͰදࣔͰ͖Δ → HTMLʹཔΖ͏ // kotlin
label.setText(Html.fromHtml(“<b>text</b>", Html.FROM_HTML_MODE_COMPACT)) // swift var err:NSError? self.label.attributedText = NSAttributedString( data: htmlText.dataUsingEncoding(NSUnicodeStringEncoding, allowLossyConversion: true), options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType], documentAttributes: nil, error: &err) ͍͍ײ͡ʹͰ͖ͨͷͰ ޙOSSͰެ։͠·͢ skype-IM-kitతͳ
2.શͳεΧΠϓͷସ͡Όͳ͍ SkypeଟػೳͰ͋Δɻ ө૾ɺνϟοτɺֆจࣈɺIMɺ௨ɺෳσόΠε ΞΧϯτཧɺ௨ઃఆɺetcɾɾɾ ࠶ݱ͖͠Εͳ͍͚ͲͰΧόʔͰ͖Δͱ͜Ζ͢Δ ແཧʹskypeΛ࠶ݱ͖͠Ζ͏ͱͤͣɺΑΓຊ࣭తͳ෦ʹ༏ઌΛ ͋ͯͯ৽͍͠ମݧΛ࡞Δ
3. σόΠεࠩҟͱෳΫϥΠΞϯτͷཧ ௐࢠʹͬͨΜͰ͢ɻ ϨΞδϣϒӳձ (iPhone/iPad/Android/Android Tablet) ๏ਓ͚͓ͯͳ͠ӳձ (iPhone/iPad/Android/Android Tablet) WebαΠτ
(ੜె༻ɾߨࢣ༻) ΞϓϦͰ4ΞϓϦɺwebͰ2ΞϓϦ͋Γ·͢
3. σόΠεࠩҟͱෳΫϥΠΞϯτͷཧ ϨΞδϣϒӳձ (iPhone/iPad/Android/Android Tablet) ๏ਓ͚͓ͯͳ͠ӳձ (iPhone/iPad/Android/Android Tablet) WebαΠτ (ੜె༻ɾߨࢣ༻)
ڞ௨ԽΛ͕ΜΔ ڞ௨ϞδϡʔϧԽ android/iosͦΕͧΕͰ2ΞϓϦ͋Δ͚Ͳ1ͭͷιʔεͰ ϏϧυΛ͚͍ͯΔɻϨοεϯը໘ɾViewModelͳͲ ͕ͬͪΓڞ༗͍ͯ͠Δɻ ڞ௨ϞδϡʔϧԽ ϝοηʔδϯά෦ͳͲΛ ڞ௨Ϟδϡʔϧͱͯ͠தɺ SPAԽͯ͋͠Δɻ
ʮਏΈʯʹ͚ͯ࡞͓͖ͬͯ͘ ମ੍ɾΈ
࡞͓͖ͬͯ͘ମ੍ɾΈ • ·ͣઈର͘Δɺ͓͍߹Θͤʮܨ͕Βͳ͍ʯʹରͯ͠ • ԿΛ͓͖ͯ͘͠ͳͷ͔
·ͣઈର͘Δɺ͓͍߹Θͤʮܨ͕Βͳ͍ʯʹରͯ͠ ཧ༝༷ʑɻ ωοτϫʔΫɺσόΠεɺΞϓϦέʔγϣϯɺSkyWayɺ όʔδϣϯɺϒϥβɺͦͷଞॾʑɾɾɾ Γ͚࢝ΊΔͱΩϦ͕ͳ͍ɻ ઈରདྷ·͢ɻ
ࢼߦࡨޡͷ༷ࢠ
ࢼߦࡨޡͷ༷ࢠ ͜Εʹֻ͚ࢉͰରԠΫϥΠΞϯτ ʢweb/ios/androidʣͳͲ͕ Έ߹Θ͞ΔͱɺΓ͚͙͍͑ɾɾɾ
ԿΛ͓͖ͯ͘͠ͳͷ͔ ɾͷ͋ͬͨΫϥΠΞϯτͷUAʁ ɾԿϨοεϯWebRTCͰఏڙͰ͖͔ͨʁ ɾߨࢣ͝ͱʹWebRTCͰͷϨοεϯఏڙʁ ɾߨࢣ͝ͱʹWebRTCͰͷϨοεϯఏڙޭʁ ɾੜె͝ͱʹWebRTCͰͷϨοεϯఏڙʁ ɾੜె͝ͱʹWebRTCͰͷϨοεϯఏڙޭʁ ௐࠪͰ͖Δڥͮ͘Γ
ԿΛ͓͖ͯ͘͠ͳͷ͔ ɾͷ͋ͬͨΫϥΠΞϯτͷUAʁ ɾԿϨοεϯWebRTCͰఏڙͰ͖͔ͨʁ ɾߨࢣ͝ͱʹWebRTCͰͷϨοεϯఏڙʁ ɾߨࢣ͝ͱʹWebRTCͰͷϨοεϯఏڙޭʁ ɾੜె͝ͱʹWebRTCͰͷϨοεϯఏڙʁ ɾੜె͝ͱʹWebRTCͰͷϨοεϯఏڙޭʁ ௐࠪͰ͖Δڥͮ͘Γ ύϑΥʔϚϯεΛϞχλϦϯάͰ͖ΔΈ ϩάΛҰཡͰ͖ΔΈΛOSSͰߏங
ԿΛ͓͖ͯ͘͠ͳͷ͔ ɾͷ͋ͬͨΫϥΠΞϯτͷUAʁ ɾԿϨοεϯWebRTCͰఏڙͰ͖͔ͨʁ ɾߨࢣ͝ͱʹWebRTCͰͷϨοεϯఏڙʁ ɾߨࢣ͝ͱʹWebRTCͰͷϨοεϯఏڙޭʁ ɾੜె͝ͱʹWebRTCͰͷϨοεϯఏڙʁ ɾੜె͝ͱʹWebRTCͰͷϨοεϯఏڙޭʁ ௐࠪͰ͖Δڥͮ͘Γ
ԿΛ͓͖ͯ͘͠ͳͷ͔ ɾͷ͋ͬͨΫϥΠΞϯτͷUAʁ ɾԿϨοεϯWebRTCͰఏڙͰ͖͔ͨʁ ɾߨࢣ͝ͱʹWebRTCͰͷϨοεϯఏڙʁ ɾߨࢣ͝ͱʹWebRTCͰͷϨοεϯఏڙޭʁ ɾੜె͝ͱʹWebRTCͰͷϨοεϯఏڙʁ ɾੜె͝ͱʹWebRTCͰͷϨοεϯఏڙޭʁ ௐࠪͰ͖Δڥͮ͘Γ webrtc-internalsΛऔಘ͢ΔαʔϏε͋Γ·͢ ࿈བྷ͢Δͱ15͘Β͍σϞΛͯ͘͠ΔͷͰੋඇɻ
·ͱΊ
ͬͺΓͭΒ͍ͧWebRTC • ҧ͍ࣾ֎ʹཧղͯ͠Β͑ΔΑ͏ߟ͑ͯಈ͘ɾ४උ͢Δ • ඞͣى͖ΔͷͰɺࣄલʹͦΕΛϞχλϦϯάɾௐࠪ Ͱ͖ΔڥΛ࡞Δ ͦΕͰࠓΑ͘৸ΔͨΊʹ
SPA/Typescript/Vue.js/spectre/webpack swift/kotlin/firebase/MVVM/RxXXX re:dash/kibana… we are hiring. https://www.wantedly.com/projects/199723