개발 가이드
이 문서는 iOS SDK를 활용한 앱 개발 지침을 제공합니다. SDK는 콘텐츠 재생 및 관리를 위한 핵심 API를 제공하며, 플레이어 UI는 개발자가 직접 구현해야 합니다.
iOS SDK API 레퍼런스
SDK에 포함된 전체 API 명세는 아래 문서를 참고하세요.
개요
Kollus iOS SDK는 iPhone 및 iPad 앱에서 콘텐츠 재생 기능을 통합하고 제어하기 위한 소프트웨어 개발 키트입니다.
이 SDK는 Cocoa Application의 UIView 기반으로 설계되었으며, KollusPlayerView를 서브 뷰(SubView)로 추가하여 화면에 플레이어를 배치할 수 있습니다.
핵심 구성 요소
KollusStorage
SDK 인증 및 콘텐츠 관리를 담당하는 클래스입니다.
- SDK 인증
- 콘텐츠 정보 조회
- 콘텐츠 다운로드 및 삭제
- 스트리밍 캐시 데이터 관리
KollusPlayerView
콘텐츠 재생 및 플레이어 제어를 담당하는 클래스입니다.
- 스트리밍 및 다운로드 콘텐츠 재생
- 북마크 데이터 조회, 추가, 삭제
KollusStorage
인스턴스 초기화 및 인증 절차
- 앱은
KollusStorage의init메서드를 호출하여 인스턴스를 생성합니다. - 인스턴스가 정상적으로 생성되면, 해당 인스턴스의 식별자(
id)가 반환됩니다. - 앱은
setApplicationKey메서드를 사용하여 인증 키(Application Key)를 인스턴스에 설정합니다. - 앱은
setApplicationBundleID메서드를 사용하여 앱의 Bundle ID를 설정합니다. - 앱은
setApplicationExpireDate메서드를 사용하여 인증 키의 유효 기간(Expire Date)을 설정합니다. - 모든 설정이 완료되면, 앱은
startStorage메서드를 호출하여 인증 절차를 시작합니다. KollusStorage는 3~5번에서 설정된 값을 검증합니다. 인증 성공 시YES, 실패 시NO를 반환합니다.
KollusStorage 인증을 위해서는 인증 키(Application Key), Bundle ID, 유효 기간(Expire Date)이 정확히 일치해야 합니다.
하나의 정보라도 발급된 데이터와 다를 경우 SDK 초기화가 중단됩니다.
콘텐츠 다운로드 구현
다운로드 실행
- 앱은
KollusStorage의setDelegate메서드를 호출하여 다운로드 상태를 전달받을 델리게이트(Delegate)를 등록합니다. - 앱은
loadContentURL메서드를 호출하여 다운로드할 콘텐츠의 URL을 설정합니다. KollusStorage는 해당 URL을 분석하여 대상 콘텐츠의 고유 식별자인mediaContentKey를 반환합니다.- 앱은 반환된
mediaContentKey를 파라미터로 사용하여downloadContent메서드를 호출하고, 다운로드를 시작합니다. KollusStorage는 다운로드 중 상태가 변경될 때마다, 1번에서 등록한 델리게이트의kollusStorage:downloadContent:error:메서드를 호출합니다.
콘텐츠 다운로드 기능은 KollusStorage의 인증이 정상적으로 완료된 상태에서만 작동합니다.
반드시 스토리지 초기화 및 인증 성공 후 다운로드 를 시도하세요.
다운로드 콘텐츠 삭제
- 앱은
KollusStorage의removeContent:error:메서드에 삭제할 콘텐츠의 키(mediaContentKey)를 전달하여 삭제를 요청합니다. KollusStorage는 로컬 저장소에서 해당 콘텐츠를 삭제한 후 결과를 반환합니다. 삭제 성공 시YES, 실패 시NO가 반환됩니다.
캐시 데이터 삭제 구현
- 앱은
KollusStorage의removeCacheWithError메서드를 호출하여 현재 관리 중인 캐시 데이터를 일괄 삭제합니다. KollusStorage는 삭제 결과를 반환합니다. 성공 시YES, 실패 시NO가 반환됩니다.
removeCacheWithError 호출 시점에 스트리밍 재생 중인 콘텐츠가 있다면, 안정적인 재생 유지를 위해 해당 콘텐츠의 캐시 데이 터는 삭제 대상에서 제외됩니다.
콘텐츠 재생 구현
prepareToPlayWithMode: 및 playWithError 메서드는 비동기 방식으로 동작합니다.
이 메서드들의 실행 결과는 반환값이 아닌 델리게이트 메서드를 통해 전달됩니다.
정상적인 동작 확인을 위해 델리게이트로 등록된 객체에 아래 메서드들을 반드시 사전에 구현해야 합니다
kollusPlayerView:prepareToPlayWithError:kollusPlayerView:playWithError:
상세한 델리게이트 정의는 KollusPlayerDelegate.h 파일을 참고하세요.
스트리밍 재생
- 앱은
initWithContentURL메서드를 사용하여 재생 URL 정보가 포함된KollusPlayerView인스턴스를 생성합니다. - 인스턴스가 정상적으로 생성되면, 해당 인스턴스의 식별자(
id)가 반환됩니다. - 앱은 생성된
KollusPlayerView를addSubview메서 드를 사용하여 화면에 출력될 상위UIView의 서브뷰로 추가합니다. - 앱은 이전에 생성해 둔
KollusStorage객체를setStorage메서드를 통해KollusPlayerView에 연결합니다. - 앱은
setDelegate메서드를 호출하여 플레이어의 상태 이벤트를 수신할 델리게이트를 등록합니다. - 앱은
prepareToPlayWithMode:메서드를 호출하여 재생 준비를 요청합니다. KollusPlayerView는 준비 완료 또는 오류 발생 시, 5번에서 등록한 델리게이트의kollusPlayerView:prepareToPlayWithError:를 호출하여 결과를 전달합니다.- 재생 준비가 완료되면, 앱은
playWithError메서드를 호출하여 재생을 시작합니다. - 재생이 시작되거나 오류가 발생하면,
KollusPlayerView는 델리게이트의kollusPlayerView:playWithError:메서드를 호출하여 최종 결과를 전송합니다.
다운로드 콘텐츠 재생
- 앱은
init메서드를 호출하여KollusPlayerView인스턴스를 생성합니다. - 인스턴스가 정상적으로 생성되면, 해당 인스턴스의 식별자(
id)가 반환됩니다. - 앱은 재생 화면을 구성할
UIView객체에addSubview메서드를 사용하여 생성된 플레이어 뷰를 추 가합니다. - 앱은
setMediaContentKey메서드를 사용하여 재생할 콘텐츠의 식별자(mediaContentKey)를 설정합니다. - 앱은 이전에 생성해 둔
KollusStorage객체를setStorage메서드를 통해KollusPlayerView에 연결합니다. - 앱은
setDelegate메서드를 호출하여 플레이어의 상태 이벤트를 수신할 델리게이트를 등록합니다. - 앱은
prepareToPlayWithMode:메서드를 호출하여 로컬 파일의 재생 준비를 요청합니다. KollusPlayerView는 준비 완료 또는 오류 발생 시, 6번에서 등록한 델리게이트의kollusPlayerView:prepareToPlayWithError:를 호출하여 결과를 전달합니다.- 준비가 완료되면, 앱은
playWithError메서드를 호출하여 콘텐츠 재생을 시작합니다. - 재생이 시작되거나 오류가 발생하면,
KollusPlayerView는 델리게이트의kollusPlayerView:playWithError:메서드를 호출하여 최종 결과를 전송합니다.
북마크 관리 기능 구현
콘텐츠 재생 중에 북마크 데이터를 조회, 추가, 삭제할 수 있습니다.
북마크 목록 조회
