Skip to content

Free SwiftUI playground

Free SwiftUI playground that runs in any browser.

No Mac. Shareable phone links. Paste one SwiftUI view, or some small files, and click Run. Rondar builds the code and shows the app in a phone frame. Each result gets a public link.

Run a SwiftUI view

More files (up to 5)

Limits: 5 files, 32 KB in total, .swift files only, a build time of 90 seconds. Import only SwiftUI, Foundation, Combine, CoreGraphics. The result and its source are public.

Sample screens

Select a sample to put it in the editor. Then click Run.

What renders

The playground uses the iOS mobile preview of Rondar. It builds your code with SwiftOpenUI on WebAssembly. SwiftOpenUI is an open reimplementation of SwiftUI. It is not the SwiftUI of Apple, so some parts look different and some parts do not render.

This table comes from the test corpus of the mobile preview. A part that is not in the table is not checked.

Area SwiftUI parts Status
Text Text Renders
Stacks and layout VStack, HStack, ZStack, Spacer, padding Renders
Lists List, ForEach Renders
Forms Form, Section Renders
Buttons and state Button, @State, @Binding Renders
Text input TextField Renders
Navigation, one level NavigationStack, NavigationLink Renders
Images and fonts from the app Image("name"), font Renders
State after a rebuild Route and form state that Codable can save Opt-in
Network requests URLSession with mock responses Not in the playground
UIKit and AppKit UIKit, AppKit, UIViewRepresentable Does not render
Packages and binary frameworks Swift packages, XCFrameworks Does not render
Device services Location, Push notifications, Bluetooth, StoreKit Does not render

Shareable result page

Each run gets a public page. The page shows the app in a phone frame, the source, and a note about the SwiftUI parts that render. A link to the page shows a phone frame image when you share it.

The page has a button "Keep building this with an agent". It opens a new Rondar session that starts from your code. You need a Rondar account for that step.

How it works

  1. You send the Swift files. Rondar checks the size, the file names and the imports.
  2. Rondar adds an app entry when your files have no @main App. Rondar writes the Package.swift. Your files cannot add a package, a plugin or a macro.
  3. A build server compiles the code to WebAssembly with the pinned Swift toolchain, in a new directory for each run. Rondar removes the directory after the build.
  4. Your browser runs the app in a sandboxed frame.

Scope and limits

  • SwiftUI views only. UIKit, AppKit and other Apple frameworks are not available.
  • No Xcode projects, no Swift packages, no assets and no network requests.
  • No Android and no App Store builds.
  • At most 5 files and 32 KB. A build stops after 90 seconds.
  • Each network address can start a small number of runs in an hour, and the playground has a daily limit.
  • Do not paste secrets. Each result and its source are public.

Reconnecting… Buttons are off until this page is connected again. Reload