프로젝트 소개

# TelemetryDeck Kotlin SDK [K TelemetryDeck](https://telemetrydeck.com) 프라이버시 우선 분석 플랫폼으로 Android 애플리케이션에서 분석 신호 전송을 위한 Kotlin 라이브러리입니다. 이 SDK는 Android API 23+ 및 Kotlin 2.3.x 위에서 실행됩니다. ## 핵심 기능 **신호 전송** — `TelemetryDeck.send("eventName")` 호출하여 분석 신호를 즉시 전송하거나, `TelemetryDeck.signal("eventName")` 사용하여 나중에 전송할 수 있도록 큐에 추가합니다. **세션 추적** — 새 설치 감지, 세션 지속 시간 측정, 리텐션 지표(평균 세션 초, 고유 사용일수, 총 세션 수) 계산을 자동으로 처리합니다. 세션 상태는 로컬 기기 저장소에 저장되며 제거 시 삭제됩니다. **사용자 ID** — 기본적으로 장치 범위 익명 식별자를 생성합니다. `defaultUser`(전송 전에 해싱됨) 또는 사용자 정의 `TelemetryDeckIdentityProvider` 구현체를 통해 사용자 지정 사용자 ID를 지원합니다. **환경 파라미터** — 모든 신호에 자동으로 장치 메타데이터(모델, OS, 화면 해상도, 방향, 아키텍처, 브랜드, 시간대), 앱 메타데이터(버전, 빌드 번호), SDK 메타데이터로 풍부하게 만듭니다. 접근성 설정도 캡처합니다(글꼴 스케일 → iOS 크기 범주 매핑, 볼드 텍스트, 색상 반전, 모션 줄이기, 다크/라이트 스킴). **네비게이션 신호** — `TelemetryDeck.navigate(source, destination)` 사용하여 화면 간 사용자 흐름을 추적하거나 경로 변경 시마다 호출하여 자동 경로 추적을 수행합니다. **지속 시간 추적** — `startDurationSignal` / `stopAndSendDurationSignal`으로 이름이 지정된 지속 신호를 시작하고 종료하여 마법사 단계와 같은 특정 이벤트에 소요된 시간을 측정합니다. **획득 헬퍼** — `acquiredUser(channel)`, `leadStarted(leadId)`, `leadConverted(leadId)`를 위한 편의 메서드입니다. **캘린더 파라미터** — 요일, 월일, 연중 주차, 분기, 시간대, 주말 플래그 등을 모든 전송 신호에 추가합니다. **구매 추적** — `purchaseCompleted()`는 마켓플레이스 국가 코드 및 제품 ID와 함께 인앱 결제를 기록합니다. **메모리 전용 모드** — 빌더에서 `inMemoryOnly(true)` 호출 시 디스크 쓰기 없이 실행되며 샌드박스화된 프로세스에 적합합니다. 사용자 ID는 각 실행 시 재생성되며 새 설치 감지 및 리텐션 지표는 이 모드에서 사용할 수 없습니다. ## 설치 `build.gradle`에 추가: ```groovy implementation 'com.telemetrydeck:kotlin-sdk:7.2.0' ``` `AndroidManifest.xml`에 인터넷 권한 추가: ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` 매니페스트 메타데이터 또는 프로그램 빌더를 통해 구성: ```kotlin val builder = TelemetryDeck.Builder() .appID("YOUR-APP-ID") .showDebugLogs(true) .defaultUser("anonymous-user") TelemetryDeck.start(applicationContext, builder) ``` ## 제공자 및 커스터마이제이션 SDK는 제공자 플러그인 시스템 사용합니다. 기본 제공 제공자에는 `EnvironmentParameterProvider`, `PlatformContextProvider`, `AccessibilityProvider`, `SessionTrackingSignalProvider`, `CalendarParameterProvider`가 포함됩니다. `DefaultParameterProvider`, `DefaultPrefixProvider`를 통한 사용자 정의 보강이나 `TelemetryDeckIdentityProvider`, `TelemetryDeckSessionManagerProvider`, `TelemetryDeckStorage` 구현하여 사용자 정의 백엔드를 추가할 수 있습니다.