Unified Flutter Setup

The unified Flutter setup works with Marketing Cloud Engagement and Marketing Cloud Next. Its plugins wrap the native Android and iOS libraries behind a single, consistent, modular Dart surface using Flutter’s platform channels.

If you use the Marketing Cloud Engagement-specific version of the Flutter plugin, you can migrate to the Flutter unified plugin.

Note

Who Should Use This Setup 

Use this setup if:

  • You’re integrating Flutter for the first time.
  • You’re implementing Marketing Cloud Engagement with Flutter.
  • You’re implementing Marketing Cloud Next with Flutter.

Prerequisites 

Make sure these components meet the baseline requirements:

ComponentsMinimum Requirement
Flutter3.3.0 or later
Dart SDK>=3.0.6 <4.0.0
iOS12.0 or later
AndroidminSdk 26, compileSdk 36

Select your Package 

The non-unified version of the Flutter plugin integrated Marketing Cloud features by using a single monolithic plugin that covered the entire SDK surface. The unified plugin splits the functionality into focused packages that use a consistent requestSdk() API. Its modular design ensures that your app includes only the required functionality.

The unified Flutter plugin offers these packages:

  • Product packages: Represent a Marketing Cloud product. Install the sfmc_marketingcloudsdk package for Marketing Cloud Engagement, the sfmc_mobileappmessaging package for Marketing Cloud Next, or both.
  • Core package: sfmc_core provides the foundation that both product packages require. When you install a product package, the system resolves it automatically.
  • Feature packages: Packages for handling push notifications (sfmc_push) and in-app messages (sfmc_iam) are optional add-ons. Install only the features that your app needs.

Architecture 

  • Melos workspace — The plugins are organized as a Melos workspace monorepo. Each package is independently versioned and publishable.
  • requestSdk() pattern — Every package exposes a static requestSdk() method that initializes the native SDK.
  • Event streams — Modules use EventChannel to expose Dart streams for streaming events such as push token refresh, registration changes, and inbox updates.
  • Platform channels — Each package registers its own MethodChannel (sfmc/sfmc_core, sfmc/push, sfmc/iam, sfmc/marketingcloudsdk, sfmc/mobileappmessaging).

Next Steps