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
November 08, 2017
Programming
0
1.9k
WebRTCで実現する次世代英会話と旧世代式開発手法
エンジニアの力でサービス・組織をスケール化させるには?〜Web現場MeetUP #2 〜
Ken Jumbo Haneda
November 08, 2017
Tweet
Share
More Decks by Ken Jumbo Haneda
See All by Ken Jumbo Haneda
Vue.jsのない会社にVue.jsを入れていく
jumbo_ken
0
510
20200115_skyway_ug_6
jumbo_ken
0
460
サブスクミートアップ2.pdf
jumbo_ken
0
840
20180614_AppsJapan
jumbo_ken
1
390
WebRTCリリースで辛かったこと
jumbo_ken
2
1.5k
アプリを作ってて気づいた、 教育サービスの難しいところ
jumbo_ken
1
1.4k
bonfire android #2
jumbo_ken
1
1k
iOSでのSkyWay開発の勘所とTips (リリース後・新SDK編)
jumbo_ken
0
5.7k
両OSやるマンという選択
jumbo_ken
9
5.8k
Other Decks in Programming
See All in Programming
선언형 UI에서의 상태관리
l2hyunwoo
0
140
開発者とQAの越境で自動テストが増える開発プロセスを実現する
92thunder
1
180
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
3
1.1k
これが俺の”自分戦略” プロセスを楽しんでいこう! - Developers CAREER Boost 2024
niftycorp
PRO
0
190
MCP with Cloudflare Workers
yusukebe
2
220
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
2
460
モバイルアプリにおける自動テストの導入戦略
ostk0069
0
110
複雑な仕様に立ち向かうアーキテクチャ
myohei
0
170
HTTP compression in PHP and Symfony apps
dunglas
2
1.7k
Keeping it Ruby: Why Your Product Needs a Ruby SDK - RubyWorld 2024
envek
0
180
今からはじめるAndroidアプリ開発 2024 / DevFest 2024
star_zero
0
1k
Monixと常駐プログラムの勘どころ / Scalaわいわい勉強会 #4
stoneream
0
270
Featured
See All Featured
Become a Pro
speakerdeck
PRO
26
5k
It's Worth the Effort
3n
183
28k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
BBQ
matthewcrist
85
9.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Building Applications with DynamoDB
mza
91
6.1k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
The Pragmatic Product Professional
lauravandoore
32
6.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Transcript
WebRTCͰ࣮ݱ͢Δ࣍ੈӳձͱچੈࣜ։ ൃख๏ ΤϯδχΞͷྗͰαʔϏεɾ৫ΛεέʔϧԽͤ͞Δʹʁʙ8FCݱ .FFU61ˌʙ
δϟϯϘ@jumboOrNot Kentaro Haneda Mobile Engineer@RareJob Tech Lead@LandSkip Swift/kotlin/golang/WebRTC
ࠓͷ ɾ͢͜ͱ - ࣍ੈӳձΛͲ͏ઃܭɾ։ൃ͢Δ͔ͱ͍͏ - چੈతΞϓϩʔνඞཁͩͬͨ ɾ͜Μͳਓ - ৽͍͠ମݧΛϓϩμΫτࢹɾٕज़ࢹͰͲ͏ઃܭ͢Δ͔ ʹڵຯͷ͋ΔΤϯδχΞ
ࠓͷ ɾ͞ͳ͍͜ͱ - WebRTCͷࡉ͔͍ٕज़ ͪ͜ΒΛ͝ཡ͍ͩ͘͞ https://www.slideshare.net/iwashi86/skyway-how-to-use-skyway-webrtc?ref=https:// skyway.connpass.com/event/65697/presentation/ - ΞϓϦͷΞʔΩςΫνϟͳͲ ͪ͜ΒΛ͝ཡ͍ͩ͘͞
https://qiita.com/jumbOrNot/items/4f143c8dcf9620080382 - ϨΞδϣϒΞϓϦαʔϏεʹ͍ͭͯ ͪ͜ΒΛ͝ཡ͍ͩ͘͞ https://speakerdeck.com/jumbo_ken/liang-osyarumantoiuxuan-ze
࣍ੈӳձΛͲ͏ઃܭɾ։ൃ͢Δ͔ͱ͍͏ KPIπϦʔΛઃܭɾ࣮ɾσβΠϯ·Ͱੜ͔ͪ͠Ό͓͏
8/11 ver1.4.0ΑΓϦϦʔε͠·ͨ͠ ʮεϚϗͰϨοεϯʯ SkyWayΛͬͨWebRTCͰͷϨοεϯఏڙΛ ݕূ͍ͯ͠·͢ ʢiOSܦ༝ͷແྉମݧϨοεϯͷҰ෦ߨࢣͷΈʣ
10͍ؒଓ͚ͨ Skype͔Βͷ٫Λ ɾ৽͍͠ͷΛಋೖ ɾମݧΛϦσβΠϯ ͠ͳ͕ΒͲ͏ਐΊ͔ͨʁ ࣍ੈӳձΛͲ͏ઃܭɾ։ൃ͢Δ͔ʁʁ
WebRTCػೳϦϦʔε·ͰͷಓͷΓ ɾىҊ ɾٕज़ݕূ ɾଞ෦ͱͷௐ ɾاըɺຉɺ༷ࡦఆ ɾσβΠϯ ɾ։ൃ ɾϓϩμΫτݕূ etc…
WebRTCػೳϦϦʔε·ͰͷಓͷΓ ɾىҊ ɾٕज़ݕূ ɾଞ෦ͱͷௐ ɾاըɺຉɺ༷ࡦఆ ɾσβΠϯ ɾ։ൃ ɾϓϩμΫτݕূ etc…
༷ࡦఆͰͷ՝ Ұ൪࠷ॳͷஈ֊Ͱܾ·͍ͬͯͨͷɺ ʮWebRTCΛͬͨݕূΛԿͱͯ͠ϦϦʔε͢Δʯ ͱ͍͏͜ͱ͚ͩɻ ·ͣߟ͑ͨࣄ • ٕज़ΛࣗࣾͰ͕࣋ͭނɺࣗ༝ʮߴʯ͕ͩ ʮͰͳʹΛΔͷ͔ʁʁʯʹ͍ͭͯ • skypeͱͷ༗ҙࠩΛԿΛ࣋ͬͯݕূ͢Δ͔ʹ͍ͭͯ
Q. ࣗ༝ͷߴ͍ϓϩδΣΫτͷઃܭͲ͏͢Δʁ
༷ࡦఆͰͷ՝ Q. ࣗ༝ͷߴ͍ϓϩδΣΫτͷઃܭͲ͏͢Δʁ A. ϢʔβʔετʔϦʔɾKPIπϦʔʹపఈతʹ४ڌ
Goal. ӳޠ͕ͤΔ Α͏ʹͳΔ ϨοεϯΛड͚Δ ΞϓϦΛىಈ͢Δ Ϩοεϯ༧ ɾɾɾ ϢʔβʔετʔϦʔ CVR XX%
CVR XX% CVR XX% ϢʔβʔετʔϦʔ ʴ KPIπϦʔΛ༻ҙ͢Δ
Goal. ӳޠ͕ͤΔ Α͏ʹͳΔ ϨοεϯΛड͚Δ ༗ྉԽ Ϩοεϯ༧ ɾɾɾ ϢʔβʔετʔϦʔ CVR XX%
CVR XX% CVR XX% ମݧͷఆྔԽ ϝΠϯKPIͷܭଌ ՄࢹԽ: re:dash αϒKPIͷܭଌ Πϕϯτπʔϧ: Firebase + Flurry + Answers + MixPanel
༷ࡦఆ ΰʔϧͱͦ͜·Ͱͷܦ࿏ΛΫϦΞʹ͢Δɺ ͦͷͨΊͷՄࢹԽूܭΛదͳπʔϧͰָʹ˕ ͜ΕʹΑ্༷ͬͯͷൈ͚࿙ΕɺޮՌଌఆͷෆͳ͘ ϓϩδΣΫτΛϦϦʔεͰ͖ͨ Q. ࣗ༝ͷߴ͍ϓϩδΣΫτͷઃܭͲ͏͢Δʁ A. ϢʔβʔετʔϦʔɾKPIπϦʔʹపఈతʹ४ڌ
WebRTCػೳϦϦʔε·ͰͷಓͷΓ ɾىҊ ɾٕज़ݕূ ɾଞ෦ͱͷௐ ɾاըɺຉɺ༷ࡦఆ ɾσβΠϯ ɾ։ൃ ɾϓϩμΫτݕূ etc…
σβΠϯɾ։ൃͰͷ ొਓ͕ੜెɾߨࢣ͕͍Δɾɾɾ ༧ˠϨοεϯྃ·Ͱ͕ͯ͘ෳࡶɾɾɾ Q. ঢ়ଶ͕ଟ͍ͷͰఆٛʹൈ͚࿙Ε͕ग़͕ͪ → σβΠϯɾ։ൃʹӨڹ
༷ࡦఆͰͷ՝ Q. ঢ়ଶ͕ଟ͍ͷͰఆٛʹൈ͚࿙Ε͕ग़͕ͪ A. ͜ΕϢʔβʔετʔϦʔɾKPIπϦʔʹపఈతʹ४ڌ
ߨࢣ͕ୀग़ Ϩοεϯ։࢝ ϧʔϜʹೖΔ ɾɾɾ ϢʔβʔετʔϦʔ CVR XX% CVR XX% CVR
XX% ϢʔβʔετʔϦʔ͔Βঢ়ଶͷநग़ͱ ͦΕʹର͢ΔσβΠϯͷఆٛͱ࣮ ঢ়ଶɿߨࢣͪ ঢ়ଶɿϨοεϯத ঢ়ଶɿߨࢣୀग़
ঢ়ଶ͝ͱʹσβΠϯΛఆٛɾվળ͢Δ͜ͱͰɺ ༷࿙ΕϨοεϯମݧΛ্ͤ͞Δ
ঢ়ଶΛMVVMͰ࣮͞ΕͯΫϥΠΞϯτͷViewModelʹ ࣮ͯ͠ϦΞΫςΟϒʹUIΛมߋ https://gist.github.com/jumbo-in-Jap/29abf2cefcf0848700915f7b6ace37f8 class LessonViewModel { let disposeBag = DisposeBag()
var connectionStatus = Variable<ConnectionStatus>(.none) enum ConnectionStatus:String{ case none case loading case connectedWithTutor case disConnectedWithTutor case leaveTutor } }
ͦΜͳऔΓΈͷ݁Ռͱͯ͠ SkypeͰ࣮ݱͰ͖ͳ͔ͬͨΞϨίϨ͕٧·͍ͬͯ·͢ ઌੜͷإΛݟͯ͠ͳ͕Β ΞϓϦΛಈ͔ͤΔ ڭࡐΛݟͳ͕ΒεϚϗͰϨοεϯ
چੈతΞϓϩʔνඞཁͩͬͨ
WebRTCػೳϦϦʔε·ͰͷಓͷΓ ɾىҊ ɾٕज़ݕূ ɾଞ෦ͱͷௐ ɾاըɺຉɺ༷ࡦఆ ɾσβΠϯ ɾ։ൃ ɾϓϩμΫτݕূ etc…
Ұ෦։ൃ͕ϑΟϦϐϯ ฐࣾͷߨࢣଆͷαΠτ શͯPHͷΤϯδχΞ͕୲ɻ ʮݴޠͷน͋Δ͚Ͳɺ ࣌ࠩ1͔࣌ؒ͠ͳ͍͠ɺӳޠ ·͊ͪΐͬͱͤΔ͠ɺ ͍͚ΔΖʂʂʯ
ͬͺ༷ॻͱςϨϏձ͚ٞͩ͡Όμϝ ͳΜ͔͜͏ݴޠԽ͢Δͷ͍͚͠Ͳɺ৽͍͠ମݧͩ͠ ΤϯδχΞ͔ΒͬͱओମతͳఏҊཉ͍͠͠ɺ ՝ʹੵۃతʹऔΓΜͰ΄͍͠ɾɾɾ →What do i say??
ͬͺ༷ॻͱςϨϏձ͚ٞͩ͡Όμϝ →What do i say?? A. ݁ՌਓੜॳͷϑΟϦϐϯग़ுɻ ͲΜͳʹ͕Μͬͯߟ͑ͯ݁ہߦ͔ͬͯ͢͠ͳ͍ɻ ର໘Ͱ͞ͳ͍ͱʢӳޠͩ͠ʣχϡΞϯεԹײ
ΘΒͳ͍ɻ
·ͱΊ • ΤϯδχΞ͕ϓϩμΫτΛߟ͑ΔʹԿࣄ KPIπϦʔϕʔεͰମݧΛཧ͢Δͷ͕͓͢͢Ί • ԕͯ͘ߦ͜͏ɺϑΟϦϐϯ
͍ΖΜͳ৬छ༻ҙ͍ͯ͠·͢ɺ͝Ԡื͓͓ͪͯ͠Γ·͢ IUUQTXXXXBOUFEMZDPNDPNQBOJFTSBSFKPCQSPKFDUT “ฐࣾਓɺΓͯ·ͤry)”