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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Ken Jumbo Haneda
August 25, 2017
Programming
770
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
iOSでのSkyWay開発の勘所とTips
WebRTC Meetup Tokyo #16
https://atnd.org/events/89599
Ken Jumbo Haneda
August 25, 2017
More Decks by Ken Jumbo Haneda
See All by Ken Jumbo Haneda
Vue.jsのない会社にVue.jsを入れていく
jumbo_ken
0
600
20200115_skyway_ug_6
jumbo_ken
0
560
サブスクミートアップ2.pdf
jumbo_ken
0
910
20180614_AppsJapan
jumbo_ken
1
490
WebRTCリリースで辛かったこと
jumbo_ken
2
1.6k
アプリを作ってて気づいた、 教育サービスの難しいところ
jumbo_ken
1
1.6k
WebRTCで実現する次世代英会話と旧世代式開発手法
jumbo_ken
0
2.1k
bonfire android #2
jumbo_ken
1
1.1k
iOSでのSkyWay開発の勘所とTips (リリース後・新SDK編)
jumbo_ken
0
6k
Other Decks in Programming
See All in Programming
トークンをケチるな、設計しろ:GitHub Copilotを賢く使うコンテキスト戦略
ochtum
0
220
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
200
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
130
スマートグラスで並列バイブコーディング
hyshu
0
260
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
560
Webフレームワークの ベンチマークについて
yusukebe
0
180
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
610
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
220
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
14
5.9k
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.5k
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.5k
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
240
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Optimizing for Happiness
mojombo
378
71k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
How to build a perfect <img>
jonoalderson
1
5.7k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
320
Building Applications with DynamoDB
mza
96
7.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
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ΔϚϯͱ͍͏બʯ ͱ͍͏Λ͠·͢ɻ