Skip to main content

Mobile SDK feature matrix

Capability comparison across OpenCDP mobile client SDKs. Method names differ by platform; behavior is aligned.

Legend: Yes = supported · Platform = Android or iOS only · Optional = requires extra config

FeatureFlutterAndroidiOSReact Native
Initialize + reinitializeYesYesYesYes
identify / track / clearIdentityYesYesYesYes
Screen + lifecycle auto-trackingYesYesYesYes (native)
registerDeviceTokenYesYesYesYes
Push v2 metrics (delivered/open/click)YesYesYesYes (native)
Android actionable push UIYesYes—Yes (native)
iOS NSE background deliveryYes—YesYes (native)
In-app sync + SSE + pollingYesYesYesYes (native)
In-app impression / click / dismissYesYesYesYes
Gateway failoverYesYesYesYes (native)
Offline POST queueYesYesYesYes (native)
Customer.io dual-writeYesYesOptional podYes (native)
Big-picture push (image_url)YesYesYesYes (native)
Action button icons (Android)YesYes—Yes (native)
Anonymous screen replayYesYesYesYes (native)
Debug failover / queue toolsYesYesYesYes
Turnkey push setup helpersYesYesYesYes
throwErrorsBackYesYesYesYes (native)
removeInAppListenerYesYesYesYes

Platform-specific notes​

Android only​

  • Actionable notifications with up to three action buttons and optional icon URLs
  • Hybrid FCM dedup when both OS and SDK post notifications
  • Big-picture collapsed layout depends on Android version — see Rich push images

iOS only​

  • Notification Service Extension required for rich images and background delivery metrics
  • Optional OpenCDP/CustomerIO pod subspec for Customer.io dual-write

React Native​

  • Core CDP runs in native Android/iOS modules (v2.0+)
  • Requires Expo dev client or bare RN — Expo Go is not supported
  • Push big-picture follows native platform behavior

Server SDK features (not on mobile)​

These are available on Node, Python, Go, and PHP — not in mobile client SDKs:

  • sendEmail, sendPush, sendSms from backend
  • ping health check

Mobile apps use identify, track, and registerDeviceToken; the server sends push via API.