Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iOSでのSkyWay開発の勘所とTips
Search
Ken Jumbo Haneda
August 25, 2017
Programming
2
660
iOSでのSkyWay開発の勘所とTips
WebRTC Meetup Tokyo #16
https://atnd.org/events/89599
Ken Jumbo Haneda
August 25, 2017
Tweet
Share
More Decks by Ken Jumbo Haneda
See All by Ken Jumbo Haneda
Vue.jsのない会社にVue.jsを入れていく
jumbo_ken
0
500
20200115_skyway_ug_6
jumbo_ken
0
430
サブスクミートアップ2.pdf
jumbo_ken
0
820
20180614_AppsJapan
jumbo_ken
1
380
WebRTCリリースで辛かったこと
jumbo_ken
2
1.5k
アプリを作ってて気づいた、 教育サービスの難しいところ
jumbo_ken
1
1.4k
WebRTCで実現する次世代英会話と旧世代式開発手法
jumbo_ken
0
1.9k
bonfire android #2
jumbo_ken
1
990
iOSでのSkyWay開発の勘所とTips (リリース後・新SDK編)
jumbo_ken
0
5.7k
Other Decks in Programming
See All in Programming
LangGraphでのHuman-in-the-Loopの実装
os1ma
3
1.1k
今インフラ技術をイチから学び直すなら
yuhta28
1
140
長期運用プロダクトの開発速度を維持し続けるためのリファクタリング実践例
wataruss
8
2.7k
Why Prism?
kddnewton
4
1.7k
Lessons by WebAssembly app in production on CDN Edge Computing Service
tetsuharuohzeki
0
210
LangChainの現在とv0.3にむけて
os1ma
4
920
【TID2024】模擬講義:プログラマと一緒にゲームをデザインしてみよう!
akatsukigames_tech
0
660
What is Parser
yui_knk
9
4.1k
状態管理ライブラリZustandの導入から運用まで
k1tikurisu
3
470
Kotlin 2.0 and Beyond
antonarhipov
2
150
Swiftコードバトル必勝法
toshi0383
0
170
Developer Joy == Developer Productivity (really!)
hollycummins
1
220
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
73
8.9k
How GitHub Uses GitHub to Build GitHub
holman
472
290k
Being A Developer After 40
akosma
84
590k
A Philosophy of Restraint
colly
202
16k
Debugging Ruby Performance
tmm1
72
12k
Fashionably flexible responsive web design (full day workshop)
malarkey
401
65k
The Cost Of JavaScript in 2023
addyosmani
42
5.7k
Visualization
eitanlees
142
15k
Designing for Performance
lara
604
68k
The Mythical Team-Month
searls
218
43k
The Pragmatic Product Professional
lauravandoore
31
6.2k
Web Components: a chance to create the future
zenorocha
308
42k
Transcript
IOSͰͷSKYWAYΛͬͨ ΞϓϦ։ൃͷצॴͱTIPS WebRTC Meetup Tokyo #16 Kentaro Haneda (@jumboOrNot)
None
IOSͰͷSKYWAYΛͬͨ ΞϓϦ։ൃͷצॴͱTIPS WebRTC Meetup Tokyo #16 Kentaro Haneda (@jumboOrNot)
ࣗݾհ ▸ Mobile Developer@RareJob ▸ Lead Developer@Landskip Kentaro
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ͰσϑΥϧτͰԻ͕ग़Δͷ ←ͬͪ͜Ͱ͋Δɻ ͬͪ͜ͱͯԻ͕খ͍͞ɾɾɾ
εϐʔΧʔͷղܾࡦ ௨ΞϓϦʹ͓͚ΔTIPS https://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
௨ΞϓϦʹ͓͚ΔTIPS WEBRTCʹΑ͋͘Δπϥϛ ▪ ͷΓ͚͕͍͠ σόΠεʁωοτϫʔΫʁϒϥβͷڐՄʁόʔδϣϯʁOS… ▪ Androidਏ͍ ry) ▪ ঢ়ଶͷཧ͕͍͠
ଓཧʹΑΔίʔϧόοΫ ▪ Javascriptॻ͖ͨ͘ͳ͍ ry)
௨ΞϓϦʹ͓͚ΔTIPS WEBRTCʹΑ͋͘Δπϥϛ ▪ ͷΓ͚͕͍͠ σόΠεʁωοτϫʔΫʁϒϥβͷڐՄʁόʔδϣϯʁ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ΔϚϯͱ͍͏બʯ ͱ͍͏Λ͠·͢ɻ