본문으로 건너뛰기
Version: 5.5

그룹 통화 시작하기 (iOS)

PlanetKit을 사용하면 1대1 통화 또는 그룹 통화를 위한 음성 및 영상 통화 기능을 앱에 연동할 수 있습니다. 이 가이드에서는 iOS 앱에서 그룹 음성 통화 구현을 시작하는 방법을 설명합니다.

Note

더욱 빠른 개발을 위해 빠른 시작을 기반으로 앱을 구현할 수 있습니다.

필수 조건

프로젝트 생성

Xcode를 열고 아래와 같이 새 프로젝트를 만드세요.

  1. [Welcome to Xcode] 창에서 [Create a new Xcode Project]를 클릭하세요.
  2. [iOS] 탭에서 [App]을 선택하고 [Next]를 클릭하세요.
  3. 프로젝트 생성 창에서 아래와 같이 설정하세요.
    1. [Product Name] 필드에 제품 이름을 입력하세요.
    2. [Team] 필드에서 개발 팀을 선택하세요.
    3. [Organization Identifier] 필드에 조직 식별자를 입력하세요.
    4. [Interface] 필드에서 [Storyboard]를 선택하세요.
    5. [Next]를 클릭하세요. iOS 프로젝트 생성하기
  4. 프로젝트가 생성될 위치를 선택하고 [Create]를 클릭하세요.

SDK 설치

Swift Package Manager를 통해 SDK를 설치하세요.

  1. Xcode 메뉴 바에서 [File] > [Add Packages...]를 선택하세요.
  2. [Search or Enter Package URL] 필드에 PlanetKit 저장소 URL(https://github.com/line/planet-kit-apple)을 입력하세요.
  3. [Add Package] 버튼을 클릭하세요.

시스템 권한 요청

음성 통화 기능을 활성화하려면 사용자가 앱에 마이크 액세스 권한을 부여해야 합니다. 해당 절차가 진행되도록 NSMicrophoneUsageDescription 키를 앱의 Info.plist 파일에 추가하세요.

info.plist 파일에 권한 키 추가하기

SDK 초기화

PlanetKit API를 호출하려면 먼저 PlanetKit을 초기화해야 합니다. PlanetKitInitialSettingBuilder 객체와 함께 PlanetKitManagerinitialize()를 사용하여 PlanetKit을 초기화하세요.

initialize()를 호출할 때 PlanetKitInitialSettingBuilder 객체에 서버 URL(planet_base_url)을 설정해야 합니다. 사용 중인 개발 환경에 따라 적절한 planet_base_url을 사용하세요.

// AppDelegate.swift

// Import PlanetKit SDK
import PlanetKit

PlanetKitManager.shared.initialize(initialSettings: PlanetKitInitialSettingBuilder()
.withSetKitServerKey(serverUrl: planet_base_url)
.build())
Note

앱에서 initialize() 메서드를 최초에 한 번 호출해야 합니다. UIApplicationDelegate를 채택하고 준수하는 AppDelegateapplication(_:didFinishLaunchingWithOptions:) 메서드에서 SDK를 초기화하는 것이 좋습니다.

액세스 토큰 획득

클라이언트 앱에서 앱 서버에 액세스 토큰 생성을 요청해 받으세요.

Note

joinConference()를 호출할 때마다 새로운 액세스 토큰을 받아서 사용해야 합니다.

그룹 음성 통화 참여

그룹 음성 통화에 참여하려면 아래 속성을 포함하는 PlanetKitConferenceParam 개체와 함께 PlanetKitManagerjoinConference()를 호출하세요.

  • myUserId: 로컬 사용자의 사용자 ID
  • roomId: 방 ID
  • roomServiceId: 방의 서비스 ID
  • delegate: PlanetKitConferenceDelegate를 채택하고 준수하는 이벤트 대리자(delegate)
  • accessToken: 액세스 토큰
import PlanetKit

class YourClass {
func joinConference() {
let param = PlanetKitConferenceParam(myUserId: myUserId, roomId: roomId, roomServiceId: serviceId, displayName: nil, delegate: self, accessToken: accessToken)
let result = PlanetKitManager.shared.joinConference(param: param, settings: nil)

if (result.reason == PlanetKitStartFailReason.none && result.conference != null) {
// The "result.conference" instance is the main instance to call APIs from now on.
// You must keep it to control this call.
}
else {
// Handle an error by referring to result.reason.
}
}
}

extension YourClass: PlanetKitConferenceDelegate {
func didConnect(_ conference: PlanetKitConference, connected: PlanetKitConferenceConnectedParam) {
// This is called when the call is connected.
// Write your own code here.
}

func didDisconnect(_ conference: PlanetKitConference, disconnected: PlanetKitDisconnectedParam) {
// This is called when the call is disconnected.
// Write your own code here.
}

func peerListDidUpdate(_ conference: PlanetKitConference, updated: PlanetKitConferencePeerListUpdateParam) {
// This is called when the list of peers is updated.
// Write your own code here.
}
}
Note

사용자가 클라이언트 앱에서 그룹 통화 방에 입장하려면 방 ID가 필요하므로, 애플리케이션에서 정의한 통신 채널을 통해 방 ID를 다른 사용자와 공유해야 합니다.

다음 단계

아래 문서를 참조해 PlanetKit에서 제공하는 다양한 기능과 각 기능의 사용 방법을 자세히 살펴보세요.

  • 통화 흐름: 통화 유형별 통화 흐름을 살펴보세요.
  • 서브그룹: 여러 개의 하위 그룹이 있는 방이나 통역 방과 같은 고급 기능을 구현할 수 있는 서브그룹 기능을 살펴보세요.
  • 확장 기능: 화면 공유, 데이터 세션 등 다양한 확장 기능을 살펴보세요.
  • 예제 코드: 앱을 구현하는 데 참고할 수 있는 예제 코드를 확인하세요.
  • 참조 문서: API 레퍼런스, API 변경 내역, 릴리스 노트를 확인하세요.