WebRTC Meetup Tokyo #16 https://atnd.org/events/89599
IOSͰͷSKYWAYΛͬͨΞϓϦ։ൃͷצॴͱTIPSWebRTC Meetup Tokyo #16Kentaro Haneda (@jumboOrNot)
View Slide
ࣗݾհ▸ MobileDeveloper@RareJob ▸ LeadDeveloper@LandskipKentaro Haneda (@jumboOrNot) ˎδϟϯϘͱݺΜͰ͍ͩ͘͞
ɾडߨऀ50ສਓͷΦϯϥΠϯӳձαʔϏε ɾ࠾༻1%ͷ༏উͳߨࢣͱ25187ԁͰͤ·͢ ɾ6࣌ ~ 25࣌·Ͱຖ։ߨ ɾ59%ͷਓ͕ॳ৺ऀ ɾແྉମݧ࣮ࢪதʂʂϨοεϯSkypeͰఏڙ͍ͯ͠·͢ʂ
ver1.4.0ΑΓϦϦʔε͠·ͨ͠ ʮεϚϗͰϨοεϯʯSkyWayΛͬͨWebRTCͰͷϨοεϯఏڙΛ Ұ෦։์͠·͢ ʢiOSܦ༝ͷແྉମݧϨοεϯͷҰ෦ߨࢣͷΈʣ
͏εΧΠϓͰྦͨ͘͠ͳ͍ฐࣾͷΞϨ͕٧·ͬͯ·͢ ઌੜͷإΛݟͯ͠ͳ͕Β ΞϓϦΛಈ͔ͤΔڭࡐΛݟͳ͕ΒεϚϗͰϨοεϯ
ΫϥΠΞϯτدΓͷΛ͠·͢ࠓͷ͓▸ εϚϗͰϨοεϯβΛ࡞Δʹ͋ͨͬͯͷ▸ SkyWay SDKΛͬͨMVVM+Rxͳ࣮ + α▸ ௨ΞϓϦʹ͓͚ΔTips▸ SkyWaySDKͬͯݟͯͷײ
SKYWAY SDKΛͬͨMVVM+RXͳ࣮SKYWAYSDKͱIOS▸ WebRTCͰͷ࣮࣌ͷΈͲ͜Ζ▸ Πϕϯτཧ͕ෳࡶʹͳΔʢঢ়ଶ͕ଟ͍ʣ▸ 1ը໘ͰUIͷมߋ͕සൟʹى͖Δ▸ ݖݶͷऔಘ࣮͍ΔΑͶ…
SKYWAY SDKΛͬͨMVVM+RXͳ࣮ͦΜͳͱ͖RxSwift
SKYWAY SDKΛͬͨMVVM+RXͳ࣮1Ͱཧղ͢ΔRXSWIFTͷมߋΛࢹͯ͠ɺผͷΛมߋͨ͠Γ UIʹͦΕΛө͢ΔΈը໘͕ʮϝχϡʔల։ঢ়ଶʯʹͳͬͨ࣌ʹ ө૾ͷҐஔΛม͑Δ࣮Λ͍ͯ͠Δ ࠨͷྫͰݴ͑ʮը໘ͷঢ়ଶʯΛࢹͯ͠ RemoteStreamͷදࣔઌΛมߋ͍ͯ͠Δ
SKYWAY SDKΛͬͨMVVM+RXͳ࣮iOS Architecture Patterns https://techblog.badoo.com/blog/2016/03/21/ios-architecture-patterns/ɾঢ়ଶͱUIΛߏ͢ΔσʔλશͯViewModelɺ͜ΕΛRxSwiftͰBindingʢଓ͢Δʣ ɾFat ViewControllerΛආ͚ͯɺSkyWaySDK͔Βड͚औΕΔΠϕϯτΛཧ͢Δ
SKYWAY SDKΛͬͨMVVM+RXͳ࣮Skywayؔ࿈ͷΛҰ෦RxԽɺStreamΛཧ͘͢͢͠ΔΫϥΠΞϯτଆͷϚΠΫͷon/offϏσΦͷon/offUIͱඥͮ͘ͷͰRxԽೝূใϢʔβʔͷઃఆͷมߋʹґଘ͢ΔͷͰRxԽߨࢣͷೖୀࣨ௨৴ͷঢ়ଶΛStatusͱͯ࣋ͭ͜͠ͱͰมߋຖͷUIมߋΛϋϯυϦϯά
SKYWAY SDKΛͬͨMVVM+RXͳ࣮ංେԽ͕ͪ͠ͳө૾෦ContainerͰ ɾө૾Λཧ͢Δ෦ͱϨοεϯΛཧ͢ΔϩδοΫ͢Δ
SKYWAY SDKΛͬͨMVVM+RXͳ࣮https://gist.github.com/jumbo-in-Jap/72e6338c16d7e1fc63d83b40b7bce399ͬͱRXͷԸܙΛड͚Α͏Ex. ྫ͑30ඵ͝ͱʹ࠶ଓॲཧΛߦ͍͍ͨ
SKYWAY SDKΛͬͨMVVM+RXͳ࣮ͬͱRXͷԸܙΛड͚Α͏Ex. ྫ͑ϚΠΫΧϝϥڐՄ͕औΕͨΒϦΫΤετ͍ͨ͠https://gist.github.com/jumbo-in-Jap/948754b7a315571bbe0e0ac726117bf7
+ʹεοΩϦ
௨ΞϓϦʹ͓͚ΔTIPSεϐʔΧʔiPhoneͷεϐʔΧʔͷҐஔ͜͜2ͭɻ SkywayͰσϑΥϧτͰԻ͕ग़Δͷ ←ͬͪ͜Ͱ͋Δɻ ͬͪ͜ͱͯԻ͕খ͍͞ɾɾɾ
εϐʔΧʔͷղܾࡦ௨ΞϓϦʹ͓͚ΔTIPShttps://gist.github.com/jumbo-in-Jap/7b4ee398c489c0072cf756720881dad5Իͷग़ྗઌΛมߋ͢Δɺͨͩมߋ͢Δ͚ͩ͡Όͳ͘ΠϠϗϯΛ͍ͯ͞͠Δͱ͖มߋͤͣɺΠϠϗϯ͕ൈ͔ΕͨΒมߋ͢Δɻ
௨ΞϓϦʹ͓͚ΔTIPSҰॹʹ͏ͱศརϥΠϒϥϦ■ chatΛ࣮͍ͨ͠ͳΒ JSQMessagesViewController http://jessesquires.github.io/JSQMessagesViewController/■ 3G/WifiͷऔಘΛ͍ͨ͠ͳΒ ReachabilitySwift https://github.com/ashleymills/Reachability.swift■ ؆୯ͳϝοηʔδදࣔͳΒ Toast https://github.com/scalessec/Toast■ RxΛͬͨΩʔϘʔυࢹ KeyboardObserver https://github.com/morizotter/KeyboardObserver
ϢʔβʔΛϦΞϧλΠϜʹ༷ࢠݟΔ௨ΞϓϦʹ͓͚ΔTIPS
௨ΞϓϦʹ͓͚ΔTIPSWEBRTCʹΑ͋͘Δπϥϛ■ ͷΓ͚͕͍͠ σόΠεʁωοτϫʔΫʁϒϥβͷڐՄʁόʔδϣϯʁOS…■ Androidਏ͍ ry) ■ ঢ়ଶͷཧ͕͍͠ ଓཧʹΑΔίʔϧόοΫ■ Javascriptॻ͖ͨ͘ͳ͍ ry)
௨ΞϓϦʹ͓͚ΔTIPSWEBRTCʹΑ͋͘Δπϥϛ■ ͷΓ͚͕͍͠ σόΠεʁωοτϫʔΫʁϒϥβͷڐՄʁόʔδϣϯʁOS…■ Androidਏ͍ ry) ■ ঢ়ଶͷཧ͕͍͠ ଓཧʹΑΔίʔϧόοΫࠈ■ Javascriptॻ͖ͨ͘ͳ͍ ry)IOSͳΒׂͱղܾ࠷ॳʹ࡞Δͷͱͯ͠Φεεϝ
SKYWAYSDKͬͯݟͯͷײͱͯศརͰແྉͰ͑ͯخ͍͠ͷͰ͕͢ɾɾɾ ɾSDK͕Ϟμϯͳ࣮ʹͳͬͯͳ͍ ɾΧϝϥɾϚΠΫͷݖݶཧSDKʹೖΕ͍ͨ ɾαϯϓϧݟͯͯϦϑΝΫλͨ͘͠ͳͬͨ ײँͷϓϧϦΫૹΓ͍ͨؾ͕࣋ͪժੜ͑·ͨ͠ ʢͱΓ͋͑ͣαϯϓϧʹૹΓ·ͨ͠ https://github.com/skyway/webrtc-handson-native/pull/1ɹɺͱΓ͋͑ͣwebRTC৮ͬͯΈΑ͏ͬͯํʹΦεεϝͰ͢ɻʣ
ͪ͜ΒͷΠϕϯτͰ͠·͢ͷͰɺ ͥͻͥͻ͓ٓ͘͠ئ͍͠·͢ 9/16 11:00 TrackCͰ ʮ྆OSΔϚϯͱ͍͏બʯ ͱ͍͏Λ͠·͢ɻ