Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

ࠓ೔ͷ࿩ ɾ࿩͞ͳ͍͜ͱ - 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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

ঢ়ଶΛ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 } }

Slide 21

Slide 21 text

ͦΜͳऔΓ૊Έͷ݁Ռͱͯ͠
 SkypeͰ͸࣮ݱͰ͖ͳ͔ͬͨΞϨ΍ίϨ΍͕٧·͍ͬͯ·͢ ઌੜͷإΛݟͯ࿩͠ͳ͕Β
 ΞϓϦΛಈ͔ͤΔ ڭࡐΛݟͳ͕ΒεϚϗͰϨοεϯ

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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