Skyway + iOS + MVVMで通話アプリ開発
SKYWAY + IOS + MVVMͰ௨ΞϓϦ։ൃKentaro Haneda (@jumboOrNot)
View Slide
ࣗݾհ▸ MobileDeveloper@RareJob ▸ LeadDeveloper@LandskipKentaro Haneda (@jumboOrNot) ˎδϟϯϘͱݺΜͰ͍ͩ͘͞
ɾडߨऀ50ສਓͷΦϯϥΠϯӳձαʔϏε ɾ࠾༻1%ͷ༏উͳߨࢣͱ25187ԁͰͤ·͢ ɾ6࣌ ~ 25࣌·Ͱຖ։ߨ ɾ59%ͷਓ͕ॳ৺ऀ ɾແྉମݧ࣮ࢪதʂʂϨοεϯSkypeͰఏڙ͍ͯ͠·͢ʂ
ࠓि͋ͨΓʹϦϦʔε༧ఆͷ৽ػೳ ʮεϚϗͰϨοεϯβʯSkywayΛͬͨWebRTCͰͷϨοεϯఏڙΛ Ұ෦։์͠·͢ ʢiOSܦ༝ͷແྉମݧϨοεϯͷҰ෦ߨࢣͷΈʣ
ςΩετࠓͷ͓▸ εϚϗͰϨοεϯβΛ࡞Δʹ͋ͨͬͯͷ▸ SkyWay SDKΛͬͨMVVM+Rxͳ࣮▸ ௨ΞϓϦʹ͓͚ΔTips▸ SkywaySDKͬͯݟͯͷײ
SKYWAY SDKΛͬͨMVVM+RXͳ࣮SKYWAYSDKͱIOS▸ WebRTCͰͷ࣮࣌ͷΈͲ͜Ζ▸ Πϕϯτཧ͕ෳࡶʹͳΔʢঢ়ଶ͕ଟ͍ʣ▸ 1ը໘ͰUIͷมߋ͕සൟʹى͖Δ▸ ݖݶͷऔಘ࣮͍ΔΑͶ…
SKYWAY SDKΛͬͨMVVM+RXͳ࣮iOS Architecture Patterns https://techblog.badoo.com/blog/2016/03/21/ios-architecture-patterns/͜Μͳ࣌ʹ͍͍ͷ͕MVVM+RxSwift ɾঢ়ଶͱ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Իͷग़ྗઌΛมߋ͢Δɺͨͩมߋ͢Δ͚ͩ͡Όͳ͘ΠϠϗϯΛ͍ͯ͞͠Δͱ͖มߋͤͣɺΠϠϗϯ͕ൈ͔ΕͨΒมߋ͢Δɻ
SKYWAYSDKͬͯݟͯͷײͱͯศརͰແྉͰ͑ͯخ͍͠ͷͰ͕͢ɾɾɾ ɾSDK͕Ϟμϯͳ࣮ʹͳͬͯͳ͍ʢMultiPartySDKpodͷuse_framework!ʹରԠͯ͠ͳ͍ʁʣ ɾΧϝϥɾϚΠΫͷݖݶཧSDKʹೖΕ͍ͨ ɾαϯϓϧݟͯͯϦϑΝΫλͨ͘͠ͳͬͨ ײँͷϓϧϦΫૹΓ͍ͨؾ͕࣋ͪժੜ͑·ͨ͠