iOS - Getting Started
์ค๋น ์ฌํญ
Xcode ๊ฐ๋ฐ ํ๊ฒฝ
iOS 10.0 ์ด์
ํ๋ก์ ํธ ์์ฑ ๋ฐ ์ค์
Xcode์์ Swift๊ธฐ๋ฐ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค.
ํ๋ก์ ํธ ์์ฑ ํ Build Settings์์ Enable Bitcode์ ๋ํ์ฌ No๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค.

Objc ํ๊ฒฝ์ด๋ผ๋ฉด ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES ๊ฐ์ Yes๋ก ์ค์ ํด์ผ ํฉ๋๋ค.

๋ํ Info.plist์์ ๋ค์ ํญ๋ชฉ์ ๋ํด ์ถ๊ฐ ํน์ ๋ณ๊ฒฝ์ ํด์ฃผ์ ์ผ ํฉ๋๋ค.
Privacy: Bluetooth, Microphone, Camera

SDK ์ค์น - Cocoapods
SDK ์ค์น๋ฅผ ์ํ๋ ํ๋ก์ ํธ์ Podfile์ pod 'RemoteMonster', '~> 2.6.11'์ ์ถ๊ฐ ํฉ๋๋ค
. ๊ทธ๋ฆฌ๊ณ ํฐ๋ฏธ๋์์ pod install ๋ฅผ ์คํ ํฉ๋๋ค. ๋ง์ฝ pod install ์ด ๋์ํ์ง ์๋ ๋ค๋ฉด pod update๋ฅผ ์คํ ํฉ๋๋ค.
์ ๋ฐ์ดํธ๊ฐ ์ ์์ ์ผ๋ก ์ด๋ฃจ์ด์ง์ง ์๋ ๊ฒฝ์ฐ cocoapods์ ๋ก์ปฌ ์ ์ฅ์๋ฅผ ๋จผ์ ์ ๋ฐ์ดํธ ํ ์ฌ์ฉํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
SDK ์ค์น - ์ง์ import
์ฐ์ ์๋์ ๋งํฌ๋ฅผ ํตํด iOS SDK์ ๋ง์ง๋ง ๋ฒ์ ์ ๋ค์ด๋ก๋ ๋ฐ์ต๋๋ค.
๋ค์ด๋ก๋๋ฐ์ RemoteMonster iOS SDK๋ฅผ ํด๋์๋ 3๊ฐ์ ๊ด๋ จ Framework์ด ์กด์ฌํฉ๋๋ค. ๊ฐ๊ฐ์ Framework์ Finder์์ ๋์ด๋ค ํ๋ก์ ํธ ํธ๋ฆฌ์ฐฝ์ ๋์ต๋๋ค. ๊ทธ๋ฌ๋ฉด RemoteMonster SDK๋ฅผ ํ๋ ์์ํฌ๋ก ์ธ์ํ๊ฒ ๋ฉ๋๋ค.

Build Phases์ copy file ํญ๋ชฉ์ ์ถ๊ฐ ํ๊ณ , ์ ๋จ๊ณ์์ ์ถ๊ฐํ Frameworks๋ฅผ ๋ณต์ฌ ๋์์ผ๋ก ์ถ๊ฐ ํ์ฌ ์ค๋๋ค.

Remon ์ค์ ๋ฐ ๋ ์ด์์ ๊ตฌ์ฑ
์ธํฐํ์ด์ค๋น
RemonCast, RemonCall ๊ฐ์ฒด๋ RemonClient(sdk 2.6.9 ์ดํ ๋ฒ์ ์ RemonIBController) ๋ฅผ ์์๋ฐ์ ๊ฐ์ฒด์ด๋ฉฐ, RemonClient๋ InterfaceBuilder๋ฅผ ์ด์ฉํ ์ค์ ์ด ๊ฐ๋ฅํ๋๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
์คํ ๋ฆฌ๋ณด๋์
RemonClient์ ํ์๊ฐ์ฒด์ธRemonCall๋๋RemonCast๋ฅผ ์ถ๊ฐํฉ๋๋ค.RemonCall๋ฅผ 1:1 ํต์ ์ ์ง์ ํ๋ฉฐRemonCast๋ 1:N ๋ฐฉ์ก์ ์ง์ ํฉ๋๋ค.xcode์ ํ๊ณ์ ์ง์ RemonCall์ด๋ RemonCast๋ฅผ ์ฝ์ ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๋ฐ๋ผ์ RemonCall์ด๋ RemonCast ๊ฐ์ฒด๋ฅผ Designer์ ์ฝ์ ํ ์ ์์ผ๋ฏ๋ก Library์์ Object ์ปดํฌ๋ํธ๋ก ๋จผ์ ์ฝ์ ํ ํด๋น Object์ class๋ฅผ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ง์ ์์ ํด ์ฃผ์ธ์. module์ RemoteMonster๋ก ์ค์ ํ์๋ฉด ๋ฉ๋๋ค.

InterfaceBuilder์์
Utilities๋ทฐ๋ฅผ ์ด์ฉํ์ฌRemonCall์ ์ค์ ํฉ๋๋ค.
ServiceID์Service Key๋ฅผ ์ค์ ํฉ๋๋ค.๋ง์ฝ ๊ฐ๋จํ๊ฒ ํ ์คํธ๋ฅผ ํ๊ธฐ ์ํ๋ค๋ฉด ์๋ฌด๊ฒ๋ ์ ๋ ฅ ์ํด๋ ๋ฉ๋๋ค.
์ค์ ์๋น์ค๋ฅผ ๊ณ ๋ คํ๋ค๋ฉด ์๋๋ฅผ ์ฐธ๊ณ ํ์ฌ ๋ด๊ฐ ์ฌ์ฉํ ํค๋ฅผ ๋ฐ๊ธ๋ฐ์ผ์ธ์.

์คํ ๋ฆฌ๋ณด๋์์ ์ํ๋ Scene์์ ์ํ๋ ์์น์
Veiw๋ฅผ ๋ฐฐ์นํ๊ณRemonClient(sdk 2.6.9 ์ดํ๋ RemonIBController)์remoteView์localView์ ๋ฐ์ธ๋ฉ ํ์ฌ ์ค๋๋ค.

Remon๋ฅผ ์ฌ์ฉํ๋ViewContoller์ RemoteMonster SDK๋ฅผ ์ํฌํธ ํ๊ณ ,RemonClient(sdk 2.6.9 ์ดํ๋ RemonIBController)๊ฐ์ฒด๋ฅผ ์์๋ ๋ณ์์ ๋ฐ์ธ๋ฉ ํฉ๋๋ค.

์ฝ๋์์ ์ง์ ๊ตฌํ
๊ฐ๋ฐ
์ด์ ๋ชจ๋ ์ค๋น๊ฐ ๋๋ฌ์ต๋๋ค. ์๋๋ฅผ ํตํด ์ธ๋ถ์ ์ธ ๊ฐ๋ฐ ๋ฐฉ๋ฒ์ ํ์ธํ์ธ์.
๋ฐฉ์ก
RemonCast๋ก ๋ฐฉ์ก ๊ธฐ๋ฅ์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
๋ฐฉ์ก ์ก์ถ
๋ฐฉ์ก ์์ฒญ
ํน์ ์ข๋ ์์ธํ ๋ด์ฉ์ ์๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Livecastํต์
RemonCall๋ก ํต์ ๊ธฐ๋ฅ์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
ํน์ ์ข๋ ์์ธํ ๋ด์ฉ์ ์๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Communication๊ทธ ์ธ ์ฃผ์ ๋ฉ์๋๋ค
remonCall์ด๋ remonCast๋ก ์ํํ ์ ์๋ ๋ฉ์๋๋ ํฌ๊ฒ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
close() : ๋ฐฉ์ก์ด๋ ํตํ๋ฅผ ์ข ๋ฃํ ๋ ์ฌ์ฉํฉ๋๋ค. ๋ชจ๋ ์์์ด ์ฌ๋ผ์ง๋๋ค. close ํ์ ๋ค์ RemonCall์ด๋ RemonCast๋ฅผ ์ด์ฉํ์ฌ ๋ฐฉ์ก/ํตํ๋ฅผ ์ฌ๊ฐํ๊ณ ์ถ๋ค๋ฉด ๊ฐ์ฒด๋ฅผ ์๋กญ๊ฒ ์์ฑํ์ ์ผ ํฉ๋๋ค.
showLocalVideo(): ๋ฐฉ์ก์ด๋ ํตํ ์์ ์ ์ ์์ ์ ์นด๋ฉ๋ผ ํ๋ฉด์ ๋ฏธ๋ฆฌ ๋ณด๊ณ ์ถ์๋ ํธ์ถํฉ๋๋ค.
pauseLocalVideo(true): ๋ฐฉ์ก์ด๋ ํตํ ์ค ์์ ์ ์นด๋ฉ๋ผ ํ๋ฉด์ ์ค์งํ๊ณ ์ถ์ ๋ ํธ์ถํฉ๋๋ค.
switchCamera(): ๋ชจ๋ฐ์ผ ํ๋ซํผ์์ ๊ฐ์ง๊ณ ์๋ ์นด๋ฉ๋ผ๋ฅผ ์์ฐจ์ ์ผ๋ก ์ค์์นญํด์ ๋ณด์ฌ์ค๋๋ค.
fetchCalls, fetchCasts: ์ฑ๋ ๊ฒ์์ ์ํ ๋ช ๋ น์ ๋๋ค.
Callback์ ๋ํ์ฌ
๋ค์ํ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
onInit(): ๋ฐฉ์ก(RemonCast), ํตํ(RemonCall) ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉด ์ธ์ฆ์ ์ฐจ๋ฑ์ ๊ฑฐ์ณ์ ๊ฐ์ฒด ์์ฑ์ด ๋ง๋ฌด๋ฆฌ๋ฉ๋๋ค. ์ด๋ ๊ฒ ์ ๋ง๋ฌด๋ฆฌ๋๋ฉด onInit๋ฉ์๋๊ฐ ํธ์ถ๋ฉ๋๋ค. ๋ณดํต onInit์ ์ธ์๋ก ์ธ์ฆ์ ๊ฒฐ๊ณผ์ธ token๊ฐ์ด ๊ฐ์ด ์ ์ก๋ฉ๋๋ค.
onConnect(): ํตํ(RemonCall)๋ฅผ ์ํ ์ฑ๋์ด ๋ง๋ค์ด์ก์ ๋ ๋ฐ์ํฉ๋๋ค. ์ฐ๊ฒฐ๋ ์ฑ๋๋ช (์ฑ๋ID)๊ฐ ์ ๋ฌ๋๋ฉฐ, ๋์ผํ ์ฑ๋์ ์ ์ํ ์ฌ์ฉ์๊ฐ Peer ์ฐ๊ฒฐ์ด ์งํ๋ฉ๋๋ค.
onComplete : ํตํ(RemonCall) ๋ฅผ ์ํด ๋ค๋ฅธ ์ฌ์ฉ์์์ Peer ์ฐ๊ฒฐ์ด ์๋ฃ๋ ์ดํ ๋ฐ์ํฉ๋๋ค.
onCreate(): ๋ฐฉ์ก(RemonCast) ์ ์จ์ ํ ์ก์ถํ๊ฒ ๋ ๋ ๋ฐ์ํฉ๋๋ค. ์ธ์๊ฐ์ผ๋ก ๋ฐฉ์ก๋ฃธ์ ID๊ฐ ๋ฐํ๋ฉ๋๋ค.
onJoin(): ๋ฐฉ์ก(RemonCast) ์์ฒญ์ด ์จ์ ํ ์ด๋ฃจ์ด์ง ๋ ๋ฐ์ํฉ๋๋ค.
onClose(): ๋ฐฉ์ก(RemonCast)๊ณผ ํตํ(RemonCall)๊ฐ ์ข ๋ฃ๋์์ ๋ ๋ฐ์ํฉ๋๋ค. ์ธ์๊ฐ์ผ๋ก CloseType์ด ์ ๋ฌ๋ฉ๋๋ค.
onError(): ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ๋ชจ๋ ์ด onError๋ก ์ค๋ฅ ๋ฉ์์ง๊ฐ ์ ๋ฌ๋ฉ๋๋ค.
onStat(): ํ์ฌ ๋ฐฉ์ก, ํตํ ํ์ง์ 3์ด๋ง๋ค ์ฃผ๊ธฐ๋ก ์๋ ค์ค๋๋ค.
Last updated