시작전 필수사항
시작 전 필수사항
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’ douse_frameworks!# Pods for FlipFlopSDKpod 'FlipFlopSDK', '0.4.1'end
b. 앱 권한 설정하기
SDK를 사용하려면 앱 권한이 필요합니다. 아래 권한을 info.plist에 입력해 주세요.
Privacy - Bluetooth Always Usage DescriptionPrivacy - Camera Usage DescriptionPrivacy - 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 내에서의 모든 기능은 사용자 기반으로 동작합니다.
- 사용자 모델
필드명 | 타입 | 필수여부 | 설명 |
---|---|---|---|
userID | String | true | 중복은 허용하지 않음. 숫자 혹은 영문자만 입력 가능 (a-zA-Z0-9) |
userName | String | true | 사용자 이름(nickname) |
avatarProfileURL | String | false | 사용자 프로필 사진 |
- 사용자 로그인을 위해 authorize 함수를 사용자 정보와 함께 호출합니다. FlipFlop의 기능은 authorize를 통해 받아온 인스턴스를 통해 사용하게 됩니다. (이후의 문서에서 sdk가 나오면 이 인스턴스라고 생각하시면 됩니다). 사용자를 변경하고 싶은 경우에는 authorize 함수를 다시 호출하여 새로운 인스턴스를 생성해서 사용해야 합니다. userId가 중복되어 등록되는 경우 새로운 값이 등록되고 이전값은 무시됩니다.
FlipFlop.authentication(userID: USER_ID, userName: USER_NAME, avatarProfileURL: AVATAR_PROFILE_URL) { (result) inswitch result {case .failure(let error):// errorcase .success(let sdk):// success result is flipflop instance}}
- 이름이나 프로필 사진등의 사용자 정보를 변경하고 싶은 경우에는 updateUserInfo 함수를 호출합니다.
// userName 또는 avatarProfileURL 둘중 하나만 변경하고 싶은 경우에는 변경 안할 값에는 null을 넣어줍니다.sdk.updateUserInfo(userName: "Updated User", avatarProfileURL: "xxx") { (result) inswitch result {case .failure(let error):case .success:}}