Principe
Le SDK mobile FlowConsent (bêta) est un SDK de décision et de preuve, pas une interface imposée : votre application garde son écran de consentement, le SDK gère l'état (même contrat v1 que le cookie web), la propagation aux SDK tiers et la preuve : chaque choix apparaît dans votre Consent Registry comme un consentement web, et déclenche vos webhooks.
Installation
Android : publié sur Maven Central :
dependencies {
implementation("com.flowconsent:flowconsent-android:0.1.0")
}iOS : via Swift Package Manager :
.package(url: "https://github.com/BeBranded-xyz/flowconsent-mobile", exact: "0.1.0")Le code source est ouvert : github.com/BeBranded-xyz/flowconsent-mobile, avec des applications de démonstration à reprendre pour Android (Compose) et iOS (SwiftUI).
Android (Kotlin)
FlowConsent.configure(context, licenseCode = "XXXX-…", workerUrl = "https://….consent.flowconsent.com")
val decision = FlowConsent.readConsent()
if (!decision.hasValidConsent) showMyConsentScreen()
// après le choix de l'utilisateur :
val d = FlowConsent.setConsent(analytics = true, marketing = false)
firebaseAnalytics.setConsent(ConsentContract.toGoogleConsentMap(d)) // si votre app utilise FirebaseRefus par défaut : sans enregistrement (ou périmé, ou après un changement de configuration de la bannière, fetchRemoteConfig()), tout est refusé avec une raison explicite. Identifiant pseudonyme local (jamais IDFA/GAID).
iOS (Swift Package)
FlowConsentCore expose le même moteur (ConsentContract.parse, toGoogleConsentMap) plus la doctrine App Tracking Transparency :
if ConsentContract.shouldRequestATT(decision) {
ATTrackingManager.requestTrackingAuthorization { _ in }
}Règle : l'écran RGPD d'abord. La demande ATT ne se justifie que si le marketing a été accepté, et c'est toujours votre application qui la déclenche.
Firebase est-il requis ?
Non. Le SDK n'importe aucun SDK tiers : toGoogleConsentMap() renvoie une simple table de chaînes à passer à setConsent si votre application utilise Firebase ou GA4. Sans Firebase, utilisez decision.can("analytics") pour conditionner vos propres appels.