$30 off During Our Annual Pro Sale. View Details »

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

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

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

Ken Jumbo Haneda

November 08, 2017
Tweet

More Decks by Ken Jumbo Haneda

Other Decks in Programming

Transcript

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

    View Slide

  2. δϟϯϘ@jumboOrNot
    Kentaro Haneda
    Mobile Engineer@RareJob
    Tech Lead@LandSkip

    Swift/kotlin/golang/WebRTC

    View Slide

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

    ʹڵຯͷ͋ΔΤϯδχΞ

    View Slide

  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

    View Slide

  5. ࣍ੈ୅ӳձ࿩ΛͲ͏ઃܭɾ։ൃ͢Δ͔ͱ͍͏࿩
    KPIπϦʔΛઃܭɾ࣮૷ɾσβΠϯ·Ͱੜ͔ͪ͠Ό͓͏

    View Slide

  6. 8/11 ver1.4.0ΑΓϦϦʔε͠·ͨ͠

    ʮεϚϗͰϨοεϯʯ
    SkyWayΛ࢖ͬͨWebRTCͰͷϨοεϯఏڙΛ

    ݕূ͍ͯ͠·͢ 

    ʢiOSܦ༝ͷແྉମݧϨοεϯͷҰ෦ߨࢣͷΈʣ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    ʮͰ͸ͳʹΛ΍Δͷ͔ʁʁʯʹ͍ͭͯ
    • skypeͱͷ༗ҙࠩΛԿΛ࣋ͬͯݕূ͢Δ͔ʹ͍ͭͯ


    Q. ࣗ༝౓ͷߴ͍ϓϩδΣΫτͷઃܭ͸Ͳ͏͢Δʁ

    View Slide

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

    View Slide

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

    View Slide

  13. Goal.
    ӳޠ͕࿩ͤΔ
    Α͏ʹͳΔ
    ϨοεϯΛड͚Δ
    ༗ྉԽ
    Ϩοεϯ༧໿
    ɾɾɾ
    ϢʔβʔετʔϦʔ
    CVR XX%
    CVR XX%
    CVR XX%
    ମݧͷఆྔԽ
    ϝΠϯKPIͷܭଌ
    ՄࢹԽ: re:dash
    αϒKPIͷܭଌ
    Πϕϯτπʔϧ: Firebase + Flurry + Answers + MixPanel

    View Slide

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

    View Slide

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

    View Slide

  16. σβΠϯɾ։ൃͰͷ໰୊
    ొ৔ਓ෺͕ੜెɾߨࢣ͕͍Δɾɾɾ
    ༧໿ˠϨοεϯ׬ྃ·Ͱ͕௕ͯ͘ෳࡶɾɾɾ


    Q. ঢ়ଶ͕ଟ͍ͷͰఆٛʹൈ͚࿙Ε͕ग़͕ͪ
    → σβΠϯɾ։ൃʹӨڹ

    View Slide

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

    View Slide

  18. ߨࢣ͕ୀग़
    Ϩοεϯ։࢝
    ϧʔϜʹೖΔ
    ɾɾɾ
    ϢʔβʔετʔϦʔ
    CVR XX%
    CVR XX%
    CVR XX%
    ϢʔβʔετʔϦʔ͔Βঢ়ଶͷநग़ͱ
    ͦΕʹର͢ΔσβΠϯͷఆٛͱ࣮૷
    ঢ়ଶɿߨࢣ଴ͪ
    ঢ়ଶɿϨοεϯத
    ঢ়ଶɿߨࢣୀग़

    View Slide

  19. ঢ়ଶ͝ͱʹσβΠϯΛఆٛɾվળ͢Δ͜ͱͰɺ
    ࢓༷࿙Ε΍ϨοεϯମݧΛ޲্ͤ͞Δ

    View Slide

  20. ঢ়ଶΛMVVMͰ࣮૷͞ΕͯΫϥΠΞϯτͷViewModelʹ
    ࣮૷ͯ͠ϦΞΫςΟϒʹUIΛมߋ
    https://gist.github.com/jumbo-in-Jap/29abf2cefcf0848700915f7b6ace37f8
    class LessonViewModel {
    let disposeBag = DisposeBag()
    var connectionStatus = Variable(.none)
    enum ConnectionStatus:String{
    case none
    case loading
    case connectedWithTutor
    case disConnectedWithTutor
    case leaveTutor
    }
    }

    View Slide

  21. ͦΜͳऔΓ૊Έͷ݁Ռͱͯ͠

    SkypeͰ͸࣮ݱͰ͖ͳ͔ͬͨΞϨ΍ίϨ΍͕٧·͍ͬͯ·͢
    ઌੜͷإΛݟͯ࿩͠ͳ͕Β

    ΞϓϦΛಈ͔ͤΔ
    ڭࡐΛݟͳ͕ΒεϚϗͰϨοεϯ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  26. ΍ͬͺ࢓༷ॻͱςϨϏձ͚ٞͩ͡Όμϝ
    →What do i say??


    A. ݁ՌਓੜॳͷϑΟϦϐϯग़ு΁ɻ
    ͲΜͳʹ͕Μ͹ͬͯߟ͑ͯ΋݁ہߦͬͯ࿩͔͢͠ͳ͍ɻ
    ର໘Ͱ࿩͞ͳ͍ͱʢӳޠͩ͠ʣχϡΞϯε΍Թ౓ײ͸
    ఻ΘΒͳ͍ɻ

    View Slide

  27. ·ͱΊ
    • ΤϯδχΞ͕ϓϩμΫτΛߟ͑Δʹ͸Կࣄ΋

    KPIπϦʔϕʔεͰମݧΛ੔ཧ͢Δͷ͕͓͢͢Ί
    • ԕͯ͘΋ߦ͜͏ɺϑΟϦϐϯ΁

    View Slide

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

    View Slide