FAQ
Is Flow-UI free, is server driven UI just WebViews, what happens on old app versions? Straight answers about SDUI on iOS and SwiftUI.
Yes. Flow-UI is open source under the MIT licence, free for commercial and personal use. There is no paid tier, no licence key and no usage limit. See Open source.
No. Flow-UI renders real SwiftUI views with native scrolling, gestures, animation and accessibility. The server describes structure and styling as data; every pixel is drawn by the platform.
Those names all describe the same split. Backend driven UI, API driven UI and remote UI send screen structure from a server. Flow-UI is the SwiftUI form of that idea: JSON in, native views out, no WebView in the middle.
The page renders without it. Debug builds show a labelled placeholder, release builds skip it, and diagnostics record the type and location. Forward compatibility is the default, not a project.
No. They are a convenience and a reference. Register your own widget under the same type string after the library and yours wins.
Flow-UI deliberately ships no router. Your app registers an ActionHandler for the deeplink action type and forwards the URL to its existing navigation. The framework delivers the payload; you own the destination.
That is the design. PageLoader is one async function you implement with your existing client; FlowImageLoader is the same seam for images. Flow-UI itself performs no network calls.
Your PageLoader decides. Serve cached bytes when the network fails and Flow-UI renders them identically; it never knows the difference.
Every widget can carry an opaque tracking object. Implement FlowTrackingSink, install it with .flowTrackingSink(_:), and it arrives untouched, so your event schema stays yours. Impressions are dwell debounced, so a fast scroll does not report every row it passes.
The renderer leans on Observation and the modern scroll APIs for snapping carousels and clean state flow. Those ship in iOS 17, and the framework carries zero compatibility shims because of it.