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
710
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
540
20200115_skyway_ug_6
jumbo_ken
0
490
サブスクミートアップ2.pdf
jumbo_ken
0
870
20180614_AppsJapan
jumbo_ken
1
410
WebRTCリリースで辛かったこと
jumbo_ken
2
1.5k
アプリを作ってて気づいた、 教育サービスの難しいところ
jumbo_ken
1
1.5k
WebRTCで実現する次世代英会話と旧世代式開発手法
jumbo_ken
0
2k
bonfire android #2
jumbo_ken
1
1k
iOSでのSkyWay開発の勘所とTips (リリース後・新SDK編)
jumbo_ken
0
5.8k
Other Decks in Programming
See All in Programming
データと事例で振り返るDevin導入の"リアル" / The Realities of Devin Reflected in Data and Case Studies
rkaga
1
210
インプロセスQAにおいて大事にしていること / In-process QA Meetup
medley
0
140
Ruby on Railroad: The Power of Visualizing CFG
ydah
0
300
Cursor/Devin全社導入の理想と現実
saitoryc
28
22k
ComposeでWebアプリを作る技術
tbsten
0
130
Dissecting and Reconstructing Ruby Syntactic Structures
ydah
3
2.1k
カウシェで Four Keys の改善を試みた理由
ike002jp
1
130
一緒に働きたくなるプログラマの思想 #QiitaConference
mu_zaru
80
20k
Laravel × Clean Architecture
bumptakayuki
PRO
0
150
個人開発の学生アプリが企業譲渡されるまで
akidon0000
2
1.2k
Lambda(Python)の リファクタリングが好きなんです
komakichi
4
250
実践Webフロントパフォーマンスチューニング
cp20
45
10k
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.6k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.3k
Fontdeck: Realign not Redesign
paulrobertlloyd
84
5.5k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
For a Future-Friendly Web
brad_frost
177
9.7k
Designing for humans not robots
tammielis
253
25k
Fireside Chat
paigeccino
37
3.4k
The World Runs on Bad Software
bkeepers
PRO
68
11k
The Language of Interfaces
destraynor
158
25k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
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ΔϚϯͱ͍͏બʯ ͱ͍͏Λ͠·͢ɻ