Releases: superwall/Superwall-KMP
Releases · superwall/Superwall-KMP
Release list
0.1.1
0.1.0
Initial release of the Kotlin Multiplatform SDK for Superwall.
Enhancements
- Adds
com.superwall.sdk:superwall-kmp, a Kotlin Multiplatform wrapper over the native Superwall SDKs. The entire public API lives incommonMain— no platform types leak into it, andSuperwall.configurehas an identical signature on both platforms (noContextparameter on Android). - Android support (
minSdk 26) wrappingcom.superwall.sdk:superwall-android2.8.0. The dependency is bundled transitively and anandroidx.startupinitializer captures theApplication, so integration is a single Gradle dependency. - iOS support (iOS 14+,
iosArm64/iosSimulatorArm64/iosX64) forwarding through SuperwallKMPBridge, a self-authored@objcSwift facade over SuperwallKit iOS 4.16.1 (pinned exactly). The bridge destructures Swift-only constructs — enum associated values, structs,async— into ObjC-visible envelopes consumed via cinterop. - Adds
Superwall.register(placement:params:handler:feature:)for gating features behind paywalls, with aPaywallPresentationHandlerexposingonPresent,onDismiss,onErrorandonSkip. - Adds
Superwall.subscriptionStatusFlow, aStateFlowthat is collectable beforeconfigure(seeded withSubscriptionStatus.Unknown) and emits on the main thread. - Adds
PurchaseControllerfor apps that own their purchase logic, with separatepurchaseFromAppStoreandpurchaseFromGooglePlayentry points. - Adds
SuperwallDelegatecovering the paywall presentation lifecycle, subscription-status changes, deep links, URLs, custom paywall actions, logging, and link redemption. - Adds
SuperwallOptions(includingPaywallOptionsandTestModeBehavior), user identity (identify,reset, user attributes), and deep-link handling viahandleDeepLink. - Adds
configureAndAwait, a suspending twin ofconfigure, plus theSuperwall.isConfiguredflag for ordering calls.
Notes
- There is no pre-configure call queue: most members throw
SuperwallError.NotConfiguredbeforeconfigure. Guard-exempt members arehandleDeepLink, the flows,delegate, and the introspection properties. - iOS integration is two steps — the Gradle dependency plus the
SuperwallKMPBridgeSwift package — and the Kotlin framework must be exported asisStatic = true, because it does not embed the bridge binary. See the README for details.