Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WebRTCで実現する次世代英会話と旧世代式開発手法

 WebRTCで実現する次世代英会話と旧世代式開発手法

エンジニアの力でサービス・組織をスケール化させるには?〜Web現場MeetUP #2 〜

B4e8461292c2cccef061741f8ba1ac3f?s=128

Ken Jumbo Haneda

November 08, 2017
Tweet

Transcript

  1. WebRTCͰ࣮ݱ͢Δ࣍ੈ୅ӳձ࿩ͱچੈ୅ࣜ։ ൃख๏ ΤϯδχΞͷྗͰαʔϏεɾ૊৫ΛεέʔϧԽͤ͞Δʹ͸ʁʙ8FCݱ৔ .FFU61ˌʙ

  2. δϟϯϘ@jumboOrNot Kentaro Haneda Mobile Engineer@RareJob Tech Lead@LandSkip
 Swift/kotlin/golang/WebRTC

  3. ࠓ೔ͷ࿩ ɾ࿩͢͜ͱ - ࣍ੈ୅ӳձ࿩ΛͲ͏ઃܭɾ։ൃ͢Δ͔ͱ͍͏࿩ - چੈ୅తΞϓϩʔν΋ඞཁͩͬͨ࿩ ɾ͜Μͳਓ΁ - ৽͍͠ମݧΛϓϩμΫτࢹ఺ɾٕज़ࢹ఺ͰͲ͏ઃܭ͢Δ͔
 ʹڵຯͷ͋ΔΤϯδχΞ

  4. ࠓ೔ͷ࿩ ɾ࿩͞ͳ͍͜ͱ - 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
  5. ࣍ੈ୅ӳձ࿩ΛͲ͏ઃܭɾ։ൃ͢Δ͔ͱ͍͏࿩ KPIπϦʔΛઃܭɾ࣮૷ɾσβΠϯ·Ͱੜ͔ͪ͠Ό͓͏

  6. 8/11 ver1.4.0ΑΓϦϦʔε͠·ͨ͠
 ʮεϚϗͰϨοεϯʯ SkyWayΛ࢖ͬͨWebRTCͰͷϨοεϯఏڙΛ
 ݕূ͍ͯ͠·͢ 
 ʢiOSܦ༝ͷແྉମݧϨοεϯͷҰ෦ߨࢣͷΈʣ

  7. 10೥ؒ࢖͍ଓ͚ͨ Skype͔Βͷ୤٫Λ ɾ৽͍͠΋ͷΛಋೖ ɾମݧΛϦσβΠϯ ͠ͳ͕ΒͲ͏ਐΊ͔ͨʁ ࣍ੈ୅ӳձ࿩ΛͲ͏ઃܭɾ։ൃ͢Δ͔ʁʁ

  8. WebRTCػೳϦϦʔε·ͰͷಓͷΓ ɾىҊ ɾٕज़ݕূ ɾଞ෦໳ͱͷௐ੔ ɾاըɺຉ૸ɺ࢓༷ࡦఆ ɾσβΠϯ ɾ։ൃ ɾϓϩμΫτݕূ etc…

  9. WebRTCػೳϦϦʔε·ͰͷಓͷΓ ɾىҊ ɾٕज़ݕূ ɾଞ෦໳ͱͷௐ੔ ɾاըɺຉ૸ɺ࢓༷ࡦఆ ɾσβΠϯ ɾ։ൃ ɾϓϩμΫτݕূ etc…

  10. ࢓༷ࡦఆͰͷ՝୊ Ұ൪࠷ॳͷஈ֊Ͱܾ·͍ͬͯͨͷ͸ɺ ʮWebRTCΛ࢖ͬͨݕূ੡඼ΛԿͱͯ͠΋ϦϦʔε͢Δʯ ͱ͍͏͜ͱ͚ͩɻ ·ͣߟ͑ͨࣄ • ٕज़ΛࣗࣾͰ͕࣋ͭނɺࣗ༝౓ʮߴʯ͕ͩ
 ʮͰ͸ͳʹΛ΍Δͷ͔ʁʁʯʹ͍ͭͯ • skypeͱͷ༗ҙࠩΛԿΛ࣋ͬͯݕূ͢Δ͔ʹ͍ͭͯ


    
 Q. ࣗ༝౓ͷߴ͍ϓϩδΣΫτͷઃܭ͸Ͳ͏͢Δʁ
  11. ࢓༷ࡦఆͰͷ՝୊ Q. ࣗ༝౓ͷߴ͍ϓϩδΣΫτͷઃܭ͸Ͳ͏͢Δʁ A. ϢʔβʔετʔϦʔɾKPIπϦʔʹపఈతʹ४ڌ

  12. Goal. ӳޠ͕࿩ͤΔ Α͏ʹͳΔ ϨοεϯΛड͚Δ ΞϓϦΛىಈ͢Δ Ϩοεϯ༧໿ ɾɾɾ ϢʔβʔετʔϦʔ CVR XX%

    CVR XX% CVR XX% ϢʔβʔετʔϦʔ ʴ KPIπϦʔΛ༻ҙ͢Δ
  13. Goal. ӳޠ͕࿩ͤΔ Α͏ʹͳΔ ϨοεϯΛड͚Δ ༗ྉԽ Ϩοεϯ༧໿ ɾɾɾ ϢʔβʔετʔϦʔ CVR XX%

    CVR XX% CVR XX% ମݧͷఆྔԽ ϝΠϯKPIͷܭଌ ՄࢹԽ: re:dash αϒKPIͷܭଌ Πϕϯτπʔϧ: Firebase + Flurry + Answers + MixPanel
  14. ࢓༷ࡦఆ ΰʔϧͱͦ͜·Ͱͷܦ࿏ΛΫϦΞʹ͢Δɺ ͦͷͨΊͷՄࢹԽ΍ूܭΛద੾ͳπʔϧͰָʹ˕ ͜ΕʹΑͬͯ࢓্༷ͷൈ͚࿙Ε΍ɺޮՌଌఆͷෆ଍ͳ͘ ϓϩδΣΫτΛϦϦʔεͰ͖ͨ Q. ࣗ༝౓ͷߴ͍ϓϩδΣΫτͷઃܭ͸Ͳ͏͢Δʁ A. ϢʔβʔετʔϦʔɾKPIπϦʔʹపఈతʹ४ڌ

  15. WebRTCػೳϦϦʔε·ͰͷಓͷΓ ɾىҊ ɾٕज़ݕূ ɾଞ෦໳ͱͷௐ੔ ɾاըɺຉ૸ɺ࢓༷ࡦఆ ɾσβΠϯ ɾ։ൃ ɾϓϩμΫτݕূ etc…

  16. σβΠϯɾ։ൃͰͷ໰୊ ొ৔ਓ෺͕ੜెɾߨࢣ͕͍Δɾɾɾ ༧໿ˠϨοεϯ׬ྃ·Ͱ͕௕ͯ͘ෳࡶɾɾɾ
 
 Q. ঢ়ଶ͕ଟ͍ͷͰఆٛʹൈ͚࿙Ε͕ग़͕ͪ → σβΠϯɾ։ൃʹӨڹ

  17. ࢓༷ࡦఆͰͷ՝୊ Q. ঢ়ଶ͕ଟ͍ͷͰఆٛʹൈ͚࿙Ε͕ग़͕ͪ A. ͜Ε΋ϢʔβʔετʔϦʔɾKPIπϦʔʹపఈతʹ४ڌ

  18. ߨࢣ͕ୀग़ Ϩοεϯ։࢝ ϧʔϜʹೖΔ ɾɾɾ ϢʔβʔετʔϦʔ CVR XX% CVR XX% CVR

    XX% ϢʔβʔετʔϦʔ͔Βঢ়ଶͷநग़ͱ ͦΕʹର͢ΔσβΠϯͷఆٛͱ࣮૷ ঢ়ଶɿߨࢣ଴ͪ ঢ়ଶɿϨοεϯத ঢ়ଶɿߨࢣୀग़
  19. ঢ়ଶ͝ͱʹσβΠϯΛఆٛɾվળ͢Δ͜ͱͰɺ ࢓༷࿙Ε΍ϨοεϯମݧΛ޲্ͤ͞Δ

  20. ঢ়ଶΛ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 } }
  21. ͦΜͳऔΓ૊Έͷ݁Ռͱͯ͠
 SkypeͰ͸࣮ݱͰ͖ͳ͔ͬͨΞϨ΍ίϨ΍͕٧·͍ͬͯ·͢ ઌੜͷإΛݟͯ࿩͠ͳ͕Β
 ΞϓϦΛಈ͔ͤΔ ڭࡐΛݟͳ͕ΒεϚϗͰϨοεϯ

  22. چੈ୅తΞϓϩʔν΋ඞཁͩͬͨ࿩

  23. WebRTCػೳϦϦʔε·ͰͷಓͷΓ ɾىҊ ɾٕज़ݕূ ɾଞ෦໳ͱͷௐ੔ ɾاըɺຉ૸ɺ࢓༷ࡦఆ ɾσβΠϯ ɾ։ൃ ɾϓϩμΫτݕূ etc…

  24. Ұ෦։ൃ͕ϑΟϦϐϯ ฐࣾͷߨࢣଆͷαΠτ͸ શͯPHͷΤϯδχΞ͕୲౰ɻ ʮݴޠͷน͸͋Δ͚Ͳɺ ࣌ࠩ΋1͔࣌ؒ͠ͳ͍͠ɺӳޠ΋ ·͊ͪΐͬͱ͸࿩ͤΔ͠ɺ ͍͚Δ΍Ζʂʂʯ

  25. ΍ͬͺ࢓༷ॻͱςϨϏձ͚ٞͩ͡Όμϝ ͳΜ͔͜͏ݴޠԽ͢Δͷ೉͍͚͠Ͳɺ৽͍͠ମݧͩ͠ ΤϯδχΞ͔Β΋ͬͱओମతͳఏҊཉ͍͠͠ɺ ՝୊ʹੵۃతʹऔΓ૊ΜͰ΄͍͠ɾɾɾ →What do i say??

  26. ΍ͬͺ࢓༷ॻͱςϨϏձ͚ٞͩ͡Όμϝ →What do i say??
 
 A. ݁ՌਓੜॳͷϑΟϦϐϯग़ு΁ɻ ͲΜͳʹ͕Μ͹ͬͯߟ͑ͯ΋݁ہߦͬͯ࿩͔͢͠ͳ͍ɻ ର໘Ͱ࿩͞ͳ͍ͱʢӳޠͩ͠ʣχϡΞϯε΍Թ౓ײ͸

    ఻ΘΒͳ͍ɻ
  27. ·ͱΊ • ΤϯδχΞ͕ϓϩμΫτΛߟ͑Δʹ͸Կࣄ΋
 KPIπϦʔϕʔεͰମݧΛ੔ཧ͢Δͷ͕͓͢͢Ί • ԕͯ͘΋ߦ͜͏ɺϑΟϦϐϯ΁

  28. ͍ΖΜͳ৬छ༻ҙ͍ͯ͠·͢ɺ͝Ԡื͓଴͓ͪͯ͠Γ·͢ IUUQTXXXXBOUFEMZDPNDPNQBOJFTSBSFKPCQSPKFDUT “ฐࣾ΋ਓɺ଍Γͯ·ͤry)”