React Native
Hackle React Native SDK는 React 16.8 이상 및 React Native 0.64.1 이상을 지원합니다.
React Native SDK는 Android SDK, iOS SDK 를 기반으로 작동합니다. 아래 OS를 지원합니다.
Android API 16 (4.1 Jelly Bean) 이상
iOS 13 이상
Hackle React Native SDK 3.31.0 버전부터 iOS 최소 지원 버전이 iOS 13으로 상향되였습니다.
Hackle React Native SDK 3.31.0 미만 버전의 최소 지원 버전은 iOS 10 입니다.
의존성 추가
SDK 설치/업데이트 후 앱을 새롭게 빌드해야 연동이 변경사항이 적용됩니다.
npm install --save @hackler/react-native-sdkyarn add @hackler/react-native-sdkiOS
cd ios
pod installExpo 사용 시 의존성 추가
React Native SDK 3.17.0 이상 버전에서 Expo를 지원합니다.
React Native SDK는 Expo Go 환경을 지원하지 않습니다. expo prebuild 를 사용해주세요.
expo 사용 시에는 link나 pod install은 실행하지 않아도 무방합니다.
안드로이드 설정
React Native SDK 3.25.0 이하 버전에서만 아래 코드를 직접 입력해주세요.
SDK 3.26.0 이상 버전부터는 아래 설정이 자동으로 적용됩니다. 이 단계를 건너뛰고 다음으로 진행해 주세요.
아래 코드를 참고해서 registerActivityLifecycleCallbacks를 추가해주세요.
생성된 Application 클래스가 없다면 새로 생성하여 AndroidManifest.xml에 등록해 주세요.
Application 클래스에 다음과 같은 코드를 onCreate 함수 아래 추가해 주세요.
SDK 초기화
SDK를 사용하기 위해서 반드시 createInstance()에 SDK 키를 전달하여 HackleReactNativeSDKClient를 생성하고 React 어플리케이션을 감싸는 HackleProvider에 전달해야 합니다.
SDK 키는 핵클 서비스의 대시보드 안에 위치한 SDK 연동 정보에서 확인하실 수 있습니다.
초기화 시 핵클 서버로부터 필요한 정보들을 가져와 SDK에 저장합니다. 일반적으로 이 시간은 수 밀리 초에 불과합니다. 동기화가 완료되면 즉시 렌더링이 진행됩니다.
초기화 시 사용자 주입
React Native SDK 3.31.0 버전 이상에서 지원하는 기능입니다.
유저 정보를 포함하여 SDK를 초기화 할 수 있습니다.
유저 정보를 포함하지 않으면 로컬 스토리지에 저장된 유저 정보를 사용합니다.
유저 정보를 포함하는 경우 로컬 스토리지에 저장된 유저 정보는 사용하지 않습니다.
사용자 주입을 하지 않고, 로컬 스토리지에 저장된 유저 정보도 없는 경우 Hackle Device ID를 device id로 가지고 유저를 사용합니다.
유저 정보는 SDK 초기화 이후에도 유저 정보 설정 함수를 통해 자유롭게 수정 할 수 있습니다.
초기화 시 주입한 유저 정보와 로컬 스토리지에 저장된 유저 정보는 병합하지 않습니다.
ex) 스토리지에 userId: A 가 저장된 상태에서 초기화 시 deviceId: B 를 주입하는 경우, userId: null, deviceId: B인 유저로 설정됩니다.
초기화 설정정보
설정정보를 포함하여 SDK를 초기화 할 수 있습니다
exposureEventDedupIntervalMillis
동일한 사용자가 연속으로 발생시킨 동일한 A/B 테스트, 기능플래그 분배결과에 대한 노출 이벤트를 제거합니다. 최솟값: 1000 (1초) 최댓값: 3600000 (1시간)
-1 (중복제거 하지 않음)
3.3.1+
debug
모든 기능에 대한 로그를 콘솔에 출력하고, 이벤트를 즉시 전송합니다.
false
3.4.1+
pollingIntervalMillis
대시보드에서 설정한 정보를 주기적으로 업데이트 할 수 있습니다. 최솟값 : 60000 (60초)
-1 (주기적으로 업데이트하지 않음)
3.6.0+
automaticAppLifecycleTracking
앱 시작 / 종료 자동 추적 활성화 여부
true
3.30.0+
automaticScreenTracking
화면 자동 추적 활성화 여부
true
3.30.0+
sessionPolicy
세션 유지 조건과 만료 조건을 설정합니다.
persistCondition: alwaysNewSession,
timeoutMillis: 1800000 (30분)
3.32.0+
optOutTracking
옵트아웃 활성화 여부. 활성화 시 모든 이벤트 전송이 중단됩니다.
false
3.32.0+
sessionTimeoutMillis (deprecated)
세션만료 시간을 설정합니다. sessionPolicy를 사용해 주세요.
1800000 (30분)
3.11.0+
세션 정책 설정
세션 정책을 설정하여 세션의 유지 조건과 만료 조건을 제어할 수 있습니다.
대시보드 설정 정보 갱신
대시보드 설정 정보를 명시적으로 갱신 할 수 있습니다.
해당 함수는 60초에 한번 제한적으로 호출할 수 있습니다.
마지막 업데이트