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
480
アプリを作ってて気づいた、 教育サービスの難しいところ
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
dRuby over BLE
makicamel
2
320
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
500
AI駆動開発勉強会 広島支部 第一回勉強会 AI駆動開発概要とワークショップ
hayatoshimiu
0
450
プロパティの順序で型推論が壊れる!? TypeScript6.0の修正からContext-Sensitivityの仕組みを追う
bicstone
2
1.3k
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.5k
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
180
Oxlintのカスタムルールの現況
syumai
6
1k
The NotImplementedError Problem in Ruby
koic
1
630
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
120
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
4.4k
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.2k
Agentic UI
manfredsteyer
PRO
0
110
Featured
See All Featured
Designing for Timeless Needs
cassininazir
1
250
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
130
It's Worth the Effort
3n
188
29k
My Coaching Mixtape
mlcsv
0
140
We Have a Design System, Now What?
morganepeng
55
8.2k
Thoughts on Productivity
jonyablonski
76
5.2k
The Cost Of JavaScript in 2023
addyosmani
55
10k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
380
From π to Pie charts
rasagy
0
200
Writing Fast Ruby
sferik
630
63k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
360
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