Not supported / React Native
React Native
There is no React Native package. The engine underneath is reachable from one, and this page is about that seam rather than a promise.
What exists
The iOS renderer is an ordinary Swift package presenting a SwiftUI view. A React Native app on iOS can reach it the same way it reaches any other native view — a native module and a hosting controller. The Flutter package does exactly this, one layer down.
// Not a supported package — a sketch of the seam, for a team that wants it
// now. A native module that presents the SwiftUI view from your RN app.
@objc(UpliftFunnelBridge)
class UpliftFunnelBridge: NSObject {
@objc func present(_ flowKey: String,
resolver: @escaping RCTPromiseResolveBlock,
rejecter: @escaping RCTPromiseRejectBlock) {
DispatchQueue.main.async {
let view = UpliftFunnelFlowView(flowKey: flowKey) { result in
resolver(["endReason": result.endReason,
"variables": result.variables.mapValues(\.stringifiedValue)])
}
let host = UIHostingController(rootView: view)
UIApplication.shared.topViewController?.present(host, animated: true)
}
}
}What is missing, and why it is not a wrapper away
- iOS only, still.A bridge inherits the engine's platform, so a React Native app would get flows on iOS and not on Android — the same trade as Android.
- The handoffs. Purchases, restore, sign-in, permissions, photo upload and links are async callbacks the engine awaits. Crossing the RN bridge in both directions, and keeping the flow on screen while it waits, is most of the work in a real package.
- Typed results.
variablesis a JSON map andexperimenta typed assignment; both need a hand-written TypeScript surface to be worth using.
None of that is hard. It is simply not written, and shipping it half done would be worse than saying so — a paywall whose purchase handler drops a callback charges nobody and reports success.
If you need it now
Mail hello@upliftfunnel.com. Teams building on the sketch above have been given the handoff contract directly, and that is how the eventual package will get its shape.