このプロジェクトについて

# TelemetryDeck Kotlin SDK [TelemetryDeck](https://telemetrydeck.com)에 Android 애플리케이션으로부터 분석 신호를 전송하기 위한 Kotlin 라이브러리입니다. 프라이버시 우선 분석 플랫폼으로, SDK는 Android API 23+ 및 Kotlin 2.3.x에서 동작합니다. ## 핵심 기능 **신호 전송** — 즉시 분석 신호를 발생시키려면 `TelemetryDeck.send("eventName")`을 호출하거나, 나중에 전송할 수 있도록 예약하려면 `TelemetryDeck.signal("eventName")`을 사용합니다. **세션 추적** — 새로운 설치, 세션 지속 시간 측정, 유지 지표(평균 세션 초수, 사용한 고유 일수, 총 세션 횟수)를 자동으로 감지합니다. 세션 상태는 기기에 로컬로 저장되며 제거 시 지워집니다. **사용자 식별** — 기본적으로 기기 범위의 익명 식별자를 생성합니다. `defaultUser`(전송 전에 해시됨) 또는 사용자 정의 `TelemetryDeckIdentityProvider` 구현을 통해 사용자 지정 사용자 식별자를 지원합니다. **환경 파라미터** — 기기 메타데이터(모델, OS, 화면 해상도, 방향, 아키텍처, 브랜드, 시간대), 앱 메타데이터(버전, 빌드 번호), SDK 메타데이터로 모든 신호를 자동으로 부가합니다. 접근성 설정도 캡처합니다(폰트 규모는 iOS 크기 범주로 매핑, 굵은 텍스트, 색상 반전, 모션 축소, 다크/라이트 스킴). **네비게이션 신호** — `TelemetryDeck.navigate(source, destination)`을 사용하여 화면 간 사용자 흐름을 추적하거나 경로 변경 시마다 호출하여 자동 라우트 추적을 수행합니다. **지속 시간 추적** — 명명된 지속 시간 신호 시작 및 정지를(`startDurationSignal` / `stopAndSendDurationSignal`) 통해 마법사 단계 같은 특정 이벤트에 소요된 시간을 측정합니다. **획득 도우미** — `acquiredUser(channel)`, `leadStarted(leadId)`, `leadConverted(leadId)`용 편의 메서드입니다. **캘린더 파라미터** — 주 단위 요일, 월 단위 일자, 연중 주차, 분기, 시간대, 주말 플래그 등을 모든 전송 신호에 추가합니다. **구매 추적** — `purchaseCompleted()`는 마켓플레이스 국가 코드와 제품 ID로 인앱 구매를 기록합니다. **메모리 전용 모드** — 빌더에서 `inMemoryOnly(true)`를 호출하여 디스크 쓰기 없이 실행합니다. 샌드박스화된 프로세스에 적합하며, 매 실행 시 사용자 식별자가 재생성됩니다. 이 모드에서는 신규 설치 감지 및 유지 지표 사용이 불가능합니다. ## 설치 `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` 구현을 추가할 수 있습니다.