À propos du projet

# SDK Kotlin TelemetryDeck Une bibliothèque Kotlin permettant d'envoyer des signaux d'analyse depuis des applications Android vers [TelemetryDeck](https://telemetrydeck.com), une plateforme d'analyse respectueuse de la vie privée. Le SDK fonctionne sur Android API 23+ avec Kotlin 2.3.x. ## Fonctionnalités principales **Envoi de signaux** — Appelez `TelemetryDeck.send("eventName")` pour déclencher immédiatement un signal d'analyse, ou utilisez `TelemetryDeck.signal("eventName")` pour le mettre en file d'attente en vue d'une transmission ultérieure. **Suivi de session** — Détecte automatiquement les nouvelles installations, mesure la durée des sessions et calcule les métriques de rétention (secondes moyennes par session, nombre de jours distincts d'utilisation, nombre total de sessions). L'état de la session est stocké localement sur l'appareil et supprimé lors de la désinstallation. **Identité de l'utilisateur** — Génère par défaut un identifiant anonyme lié à l'appareil. Prend en charge les identifiants utilisateur personnalisés via `defaultUser` (haché avant l'envoi) ou une implémentation personnalisée de `TelemetryDeckIdentityProvider`. **Paramètres d'environnement** — Enrichit automatiquement chaque signal avec les métadonnées de l'appareil (modèle, système d'exploitation, résolution d'écran, orientation, architecture, marque, fuseau horaire), les métadonnées de l'application (version, numéro de build) et les métadonnées du SDK. Capture également les paramètres d'accessibilité (échelle de police mappée sur les catégories de taille iOS, texte en gras, inversion des couleurs, réduction des mouvements, thème sombre/clair). **Signaux de navigation** — Suivez le flux des utilisateurs entre les écrans avec `TelemetryDeck.navigate(source, destination)` ou appelez cette méthode à chaque changement de chemin pour un suivi automatique des routes. **Suivi de durée** — Démarrez et arrêtez des signaux de durée nommés (`startDurationSignal` / `stopAndSendDurationSignal`) pour mesurer le temps passé sur des événements spécifiques, comme les étapes d'un assistant. **Aides à l'acquisition** — Méthodes pratiques pour `acquiredUser(channel)`, `leadStarted(leadId)` et `leadConverted(leadId)`. **Paramètres de calendrier** — Ajoute à chaque signal sortant le jour de la semaine, le jour du mois, la semaine de l'année, le trimestre, l'heure de la journée, l'indicateur de week-end, et plus encore. **Suivi des achats** — `purchaseCompleted()` enregistre les achats intégrés avec le code pays du marché et l'ID du produit. **Mode mémoire uniquement** — Appelez `inMemoryOnly(true)` sur le builder pour fonctionner sans écriture sur disque, adapté aux processus isolés. L'identité de l'utilisateur est régénérée à chaque lancement ; la détection des nouvelles installations et les métriques de rétention ne sont pas disponibles dans ce mode. ## Installation Ajoutez à `build.gradle` : ```groovy implementation 'com.telemetrydeck:kotlin-sdk:7.2.0' ``` Ajoutez la permission Internet à `AndroidManifest.xml` : ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` Configurez via les meta-données du manifest ou le builder programmatique : ```kotlin val builder = TelemetryDeck.Builder() .appID("YOUR-APP-ID") .showDebugLogs(true) .defaultUser("anonymous-user") TelemetryDeck.start(applicationContext, builder) ``` ## Fournisseurs et personnalisation Le SDK utilise un système de plugins de fournisseurs. Les fournisseurs intégrés incluent `EnvironmentParameterProvider`, `PlatformContextProvider`, `AccessibilityProvider`, `SessionTrackingSignalProvider` et `CalendarParameterProvider`. L'enrichissement personnalisé peut être ajouté via `DefaultParameterProvider`, `DefaultPrefixProvider`, ou en implémentant `TelemetryDeckIdentityProvider`, `TelemetryDeckSessionManagerProvider` et `TelemetryDeckStorage` pour des backends personnalisés.