SDK mobile (bêta) : Android et iOS
Recueillir, appliquer et prouver le consentement dans vos apps, avec le même contrat que le web.
Principe
Le SDK mobile FlowConsent (bêta) est un SDK de décision et de preuve, pas une UI imposée : votre app 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 apps démo copiables 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 : écran RGPD d'abord ; le prompt ATT ne se justifie que si le marketing a été accepté, et c'est toujours votre app qui le 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 app utilise Firebase/GA4. Sans Firebase, utilisez decision.can("analytics") pour conditionner vos propres appels.