Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
WebRTCリリースで辛かったこと
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
570
サブスクミートアップ2.pdf
jumbo_ken
0
930
20180614_AppsJapan
jumbo_ken
1
510
アプリを作ってて気づいた、 教育サービスの難しいところ
jumbo_ken
1
1.6k
WebRTCで実現する次世代英会話と旧世代式開発手法
jumbo_ken
0
2.2k
bonfire android #2
jumbo_ken
1
1.1k
iOSでのSkyWay開発の勘所とTips (リリース後・新SDK編)
jumbo_ken
0
6k
両OSやるマンという選択
jumbo_ken
9
6.5k
Other Decks in Programming
See All in Programming
No More NoSuchMethodError
exoego
1
120
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
330
AI時代のシニアエンジニアとは
yosuke_furukawa
PRO
12
10k
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
7k
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
380
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
0
160
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.2k
sbt 2.0: takeoff
eed3si9n
0
170
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
120
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
250
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
3
1.3k
Event is what happens
moro
2
1.7k
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
560
Discover your Explorer Soul
emna__ayadi
2
1.3k
For a Future-Friendly Web
brad_frost
184
10k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Ruling the World: When Life Gets Gamed
codingconduct
0
420
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
610
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
Site-Speed That Sticks
csswizardry
13
1.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.4k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
290
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