iOS

Hackle iOS SDK 는 iOS 13 이상을 지원합니다.

  • Hackle iOS SDK 3.0.0 버전부터 최소 지원 버전을 iOS 13으로 변경하였습니다.

  • Hackle iOS SDK 2.x 버전의 최소 지원 버전은 iOS 10 입니다.

의존성 추가

Hackle iOS SDK는 Swift Package Manager와 CocoaPods를 지원합니다.

// ...
dependencies: [
    .package(url: "https://github.com/hackle-io/hackle-ios-sdk.git", from: "3.2.1")
],
targets: [
    .target(
        name: "YOUR_TARGET",
        dependencies: ["Hackle"]
    )
],
// ...

SDK 초기화

SDK를 사용하기 위해서 반드시 HackleApp을 초기화 해야 합니다. HackleApp을 초기화 하기 위해 SDK 키가 필요합니다.

  • HackleApp은 SDK의 기능을 사용하기 위한 메소드들을 제공하는 클래스입니다.

  • SDK 키는 핵클 서비스의 대시보드 안에 위치한 SDK 연동 정보에서 확인하실 수 있습니다.

초기화는 비동기로 실행되며, 핵클 서버로부터 필요한 정보들을 가져와서 SDK에 저장합니다.

권장 초기화 전략: 로딩 화면을 통한 초기화

앱을 즉시 시작하지 않고 스플레시 화면을 표시하고 SDK를 초기화합니다. 이후 콜백을 통해 스플레시 화면을 닫고 사용자가 앱과 상호작용을 시작할 수 있도록 합니다.

초기화 시 사용자 주입

유저 정보를 포함하여 SDK를 초기화 할 수 있습니다.

  • 유저 정보를 포함하지 않으면 로컬 스토리지에 저장된 유저 정보를 사용합니다.

  • 유저 정보를 포함하는 경우 로컬 스토리지에 저장된 유저 정보는 사용하지 않습니다.

  • 사용자 주입을 하지 않고, 로컬 스토리지에 저장된 유저 정보도 없는 경우 Hackle Device ID를 device id로 가지고 유저를 사용합니다.

유저 정보는 SDK 초기화 이후에도 유저 정보 설정 함수를 통해 자유롭게 수정 할 수 있습니다.

초기화 설정정보

설정정보를 포함하여 SDK를 초기화 할 수 있습니다

설정 옵션

설정
기능
기본값
지원 버전

exposureEventDedupIntervalSeconds

동일한 사용자가 연속으로 발생시킨 동일한 A/B 테스트, 기능플래그 분배결과에 대한 노출 이벤트를 제거합니다.

  • 최솟값: 1

  • 최댓값: 86400(24시간)

60 (1분)

2.7.0+

eventFlushInterval

수집된 이벤트를 서버로 전송하는 주기입니다.

  • 최솟값: 1

  • 최댓값: 60 (1분)

10

2.10.0+

pollingIntervalSeconds

대시보드에서 설정한 정보를 주기적으로 업데이트 할 수 있습니다.

  • 최솟값 : 60 (1분)

-1 (주기적으로 업데이트하지 않음)

2.18.0+

automaticScreenTracking

화면 자동 추적 활성화 여부

true

2.34.0+

automaticAppLifecycleTracking

앱 시작 / 종료 자동 추적 활성화 여부

true

2.59.0+

sessionPolicy

세션 유지 조건과 만료 조건을 설정합니다.

ALWAYS_NEW_SESSION ,

1800000

3.1.0+

optOutTracking

옵트아웃 활성화 여부.

false

3.1.0+

sessionTimeoutIntervalSeconds (deprecated)

세션만료 시간을 설정합니다. sessionPolicy를 사용해 주세요.

1800 (30분)

2.13.0+

* 2.41.0 이후부터 앱 종료 후 재시작 시에도 지원합니다. * 2.41.0 미만버전의 경우 최댓값은 : 3600 (1시간) 입니다.

세션 정책 설정

세션 정책을 설정하여 세션의 유지 조건과 만료 조건을 제어할 수 있습니다.

인스턴스 가져오기

초기화 이후 아래 코드를 통해 HackleApp 인스턴스를 가져올 수 있습니다. 초기화 이전에 호출하면 nil을 리턴합니다. 초기화 이후 호출해야 합니다.

대시보드 설정 정보 갱신

대시보드 설정 정보를 명시적으로 갱신 할 수 있습니다.

마지막 업데이트