Appearance
SDKs
One canonical surface on seven platforms — same concepts, same names, adapted only to platform idiom:
| Platform | Package | Notes |
|---|---|---|
| Web | @wingblaze/sdk-web | Service worker with confirmed delivery + click attribution |
| iOS | Swift package | APNs, notification service extension, Live Activities |
| Android | Kotlin library | Data-only FCM — SDK-rendered, confirmed delivery |
| Flutter | wingblaze_flutter | Method channel over the native SDKs |
| React Native | @wingblaze/react-native | Native module over the native SDKs |
| Expo | @wingblaze/expo | RN module + prebuild config plugin |
| Unity | com.wingblaze.sdk (UPM) | C# over JNI / Swift bridges |
The surface
init / configure → set appId + endpoints, restore identity
enablePush → permission + device registration → { subscriberId, deviceId }
login / logout → bind or drop your user id (multi-device users converge)
addTags → upsert data tags (strings, ≤50 per call)
trackEvent → custom analytics events (drive journeys & insights)
deep-link handling → notification opens surface data.deepLinkAll SDKs beacon confirmed delivery and clicks with campaign attribution, so funnel stats reflect reality even for backgrounded apps.