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
| Channel | Package | Notes |
|---|---|---|
| pub.dev | onesygnal | Flutter plugin — pulls in the native Android AAR and iOS pod as part of the plugin, no separate native SDK install. |
Platform floors
| Requirement | Floor |
|---|---|
| Dart SDK | ^3.7.2 |
| Flutter | >=3.7.0 |
Android minSdk | 21 — matches apps/android-sdk’s own floor; the bridge can’t support a lower Android version than the native SDK it wraps. |
| iOS deployment target | 15.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.