시작전 필수사항

시작 전 필수사항

1. 요구사항

  • iOS 14 이상
  • Xcode 13.4.1 이상
  • Swift 5.6.1 이상

2. 애플리케이션 생성하기

SDK를 사용하기 위해서는 먼저 웹의 대시보드에서 애플리케이션을 생성하여 App Key와 App Secret를 발급받아야 합니다. 이미 애플리케이션을 생성하셨으면 다음 단계로 넘어가 주세요.

주의 : App Key와 App Secret은 라이브등의 정보나 통계등에 사용되는 중요한 정보입니다. 따라서, 외부에 노출되지 않도록 주의하시기 바랍니다.

  • Dashboard로 이동하여 회원 가입을 합니다. 이미 계정이 있다면 로그인을 합니다.
  • “Create +” 버튼을 클릭하여 애플리케이션을 생성합니다.
  • 애플리케이션 리스트에서 생성한 애플리케이션의 name을 클릭하면 애플리케이션의 상세 내용을 볼 수 있습니다.
  • Settings 메뉴에서 App Key와 App Secret를 확인할 수 있습니다.

개별 애플리케이션은 하나의 클라이언트 앱에 대응됩니다.

3. 시작하기

a. iOS SDK 설치하기

Podfile에 아래의 내용을 추가합니다.

target ‘YourProject’ do
use_frameworks!
# Pods for FlipFlopSDK
pod 'FlipFlopSDK', '0.4.1'
end

b. 앱 권한 설정하기

SDK를 사용하려면 앱 권한이 필요합니다. 아래 권한을 info.plist에 입력해 주세요.

Privacy - Bluetooth Always Usage Description
Privacy - Camera Usage Description
Privacy - Microphone Usage Description

c. 빌드 설정하기

빌드 설정중 Enable Bitcode 옵션을 아래와 같이 설정해줍니다.

Build Settings > Build Options > Enable Bitcode 옵션을 No로 설정

d. SDK 초기화하기

위에서 생성한 애플리케이션의 App Key와 App Secret를 사용하여 SDK를 초기화 해 주어야 합니다. 전체 앱 안에서 한번만 호출해 주어야 합니다.

FlipFlop.initialize(appKey: APP_KEY, appSecret: APP_SECRET)

e. 사용자 로그인하기

SDK에서 라이브등의 기능을 사용하려면 사용자 로그인을 먼저 해주어야 합니다. FlipFlop 내에서의 모든 기능은 사용자 기반으로 동작합니다.

  • 사용자 모델
필드명타입필수여부설명
userIDStringtrue중복은 허용하지 않음. 숫자 혹은 영문자만 입력 가능 (a-zA-Z0-9)
userNameStringtrue사용자 이름(nickname)
avatarProfileURLStringfalse사용자 프로필 사진
  • 사용자 로그인을 위해 authorize 함수를 사용자 정보와 함께 호출합니다. FlipFlop의 기능은 authorize를 통해 받아온 인스턴스를 통해 사용하게 됩니다. (이후의 문서에서 sdk가 나오면 이 인스턴스라고 생각하시면 됩니다). 사용자를 변경하고 싶은 경우에는 authorize 함수를 다시 호출하여 새로운 인스턴스를 생성해서 사용해야 합니다. userId가 중복되어 등록되는 경우 새로운 값이 등록되고 이전값은 무시됩니다.
FlipFlop.authentication(userID: USER_ID, userName: USER_NAME, avatarProfileURL: AVATAR_PROFILE_URL) { (result) in
switch result {
case .failure(let error):
// error
case .success(let sdk):
// success result is flipflop instance
}
}
  • 이름이나 프로필 사진등의 사용자 정보를 변경하고 싶은 경우에는 updateUserInfo 함수를 호출합니다.
// userName 또는 avatarProfileURL 둘중 하나만 변경하고 싶은 경우에는 변경 안할 값에는 null을 넣어줍니다.
sdk.updateUserInfo(userName: "Updated User", avatarProfileURL: "xxx") { (result) in
switch result {
case .failure(let error):
case .success:
}
}