Stream Probe introduces Phase 4 of its iOS SDK in this update, shipping a native UIKit overlay window, a public show/hide presenter API, and a complete iOS demo app.
TL;DR
Phase 4 brings the overlay experience to iOS with a proper UIKit implementation. SKIE handles Kotlin-to-Swift interop so the API feels native, and a new demo app gives you a working reference from day one.
What's New
- SKIE integration: Kotlin Multiplatform types now surface cleanly in Swift without manual bridging. Calling the overlay API from Swift code feels like a first-class SDK.
- Public overlay types: Core overlay models are now exposed in the public API surface, so you can build custom integrations without reaching into internals.
- Show/hide presenter API: A dedicated
show()andhide()method pair on the presenter lets you control overlay visibility from any Swift context. - Native UIKit overlay window: The overlay renders in a floating
UIWindowlayered above your app content. No web views, no cross-platform renderer hacks. - Panel renderer: A Swift/UIKit panel renderer handles layout and display of the debug stats inside the overlay window.
- AutoLayout fix: Resolved a constraint conflict that fired during panel collapse animations. Priority adjustments on the collapsing constraints killed the ambiguity warnings.
- iOS demo app: A new demo app ships alongside the SDK to show the overlay in action on a real iOS target.
How to Use
Once the SDK is linked, showing the overlay from Swift looks like this:
// Initialize the presenter (wired through SKIE-generated API)
let presenter = StreamProbeOverlayPresenter()
// Show the overlay
presenter.show()
// Hide it when done
presenter.hide()
Check the iOS demo app in the repo for a full working example including player setup and overlay lifecycle.
FAQ
Does this replace the existing Android overlay?
No. The Android overlay is unchanged. Phase 4 adds a parallel iOS implementation using UIKit, sharing business logic through the KMP core.
Why SKIE instead of manual Kotlin/Swift bridging?
SKIE generates idiomatic Swift APIs from your Kotlin Multiplatform code automatically. It cuts out the hand-written wrappers and keeps the Swift call sites clean.
Is the overlay window safe to use alongside other UIWindow-based overlays?
Yes. The overlay uses a dedicated UIWindow with a controlled window level, so it shouldn't conflict with standard app windows or system overlays.
Where can I find the demo app?
It's in the Stream Probe GitHub repo under the iOS demo target. Clone the repo and open the Xcode project to run it on a simulator or device.