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
610
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
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
3.2k
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
180
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
320
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
9
5.8k
Build-to-own AI: Agentic Development for Humans
inesmontani
PRO
0
130
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
420
Google Apps Script で Ruby を動かす
kawahara
0
120
霧の中の代数的エフェクト
funnyycat
1
450
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
450
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
1
260
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
180
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
190
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Deep Space Network (abreviated)
tonyrice
0
240
The Curse of the Amulet
leimatthew05
2
13k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
How to Talk to Developers About Accessibility
jct
2
450
HDC tutorial
michielstock
2
760
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.2k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
750
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Ethics towards AI in product and experience design
skipperchong
2
330
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
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