Skip to Content
PlatformsFlutterOverview

Flutter SDK

The Flutter SDK (onesygnal on pub.dev, current version 0.4.0) is not an independent implementation of the OneSygnal pipeline. It’s a thin, non-federated Flutter plugin — a Dart-facing API backed by method/event channels that delegate straight through to the native Android (apps/android-sdk) and iOS (apps/ios-sdk) SDKs. All the real work — HTTP transport, storage, trigger evaluation, and rendering surveys — happens natively. Nothing in the Dart package does any of that itself; every method on OneSygnal is a one-line pass-through to whichever native SDK is running underneath.

Surveys render as a native, OS-level window overlay above the entire app, Flutter content included — not as an embedded Flutter widget. This is why there’s no navigatorKey/OverlayState wiring to set up (see Troubleshooting if you’ve read older material that mentions one).

Because Flutter projects the native surface rather than independently conforming to it, its API is shaped by what the two natives expose, not by a separate design. Where Android/iOS diverge from each other, the bridge only exposes what both agree on — see API Reference and the full Platform Parity table.

Distribution model

ChannelPackageNotes
pub.devonesygnalFlutter plugin — pulls in the native Android AAR and iOS pod as part of the plugin, no separate native SDK install.

Platform floors

RequirementFloor
Dart SDK^3.7.2
Flutter>=3.7.0
Android minSdk21 — matches apps/android-sdk’s own floor; the bridge can’t support a lower Android version than the native SDK it wraps.
iOS deployment target15.0

Both native SDKs are required underneath — this package has no behavior of its own without them. See Install for what that means for project setup.