Mobile SDK (Beta): Android und iOS
Einwilligung in Apps erfassen, durchsetzen und nachweisen — mit demselben Vertrag wie im Web.
Prinzip
Das FlowConsent Mobile SDK (Beta) ist ein SDK für Entscheidung und Nachweis, keine aufgezwungene UI: Ihre App behält ihren eigenen Einwilligungs-Screen, das SDK verwaltet den Zustand (derselbe Vertrag v1 wie das Web-Cookie), die Weitergabe an Dritt-SDKs und den Nachweis — jede Wahl landet in Ihrem Consent Registry wie eine Web-Einwilligung und löst Ihre Webhooks aus.
Installation
Android — veröffentlicht auf Maven Central:
dependencies {
implementation("com.flowconsent:flowconsent-android:0.1.0")
}iOS — über den Swift Package Manager:
.package(url: "https://github.com/BeBranded-xyz/flowconsent-mobile", exact: "0.1.0")Der Quellcode ist offen: github.com/BeBranded-xyz/flowconsent-mobile, mit kopierbaren Demo-Apps für Android (Compose) und iOS (SwiftUI).
Android (Kotlin)
FlowConsent.configure(context, licenseCode = "XXXX-…", workerUrl = "https://….consent.flowconsent.com")
val decision = FlowConsent.readConsent()
if (!decision.hasValidConsent) showMyConsentScreen()
// nach der Wahl des Nutzers:
val d = FlowConsent.setConsent(analytics = true, marketing = false)
firebaseAnalytics.setConsent(ConsentContract.toGoogleConsentMap(d)) // falls Ihre App Firebase nutztAblehnung als Standard: Ohne Eintrag (oder wenn er veraltet ist, oder nach einer Änderung der Banner-Konfiguration — fetchRemoteConfig()) ist alles abgelehnt, mit explizitem Grund. Lokaler pseudonymer Identifikator (niemals IDFA/GAID).
iOS (Swift Package)
FlowConsentCore liefert dieselbe Engine (ConsentContract.parse, toGoogleConsentMap) plus die App-Tracking-Transparency-Doktrin:
if ConsentContract.shouldRequestATT(decision) {
ATTrackingManager.requestTrackingAuthorization { _ in }
}Regel: DSGVO-Screen zuerst; der ATT-Prompt ist nur gerechtfertigt, wenn Marketing akzeptiert wurde, und es ist immer Ihre App, die ihn auslöst.
Ist Firebase erforderlich?
Nein. Das SDK importiert kein Dritt-SDK: toGoogleConsentMap() liefert eine einfache String-Map, die Sie an setConsent übergeben, falls Ihre App Firebase/GA4 nutzt. Ohne Firebase verwenden Sie decision.can("analytics"), um Ihre eigenen Aufrufe zu konditionieren.