Free for Mac · Works with Claude Code and Codex
Write SwiftUI.Run it live.Ship it.
A native SwiftUI playground for one component. Write it yourself, or let Claude Code or Codex build it over MCP while you watch it run live. Fork anything from the community, and copy source that compiles in Xcode.
macOS 14+, Apple silicon and Intel. On iPhone? Browse and play the community.
- TimelineView
- PhaseAnimator
- DragGesture
- symbolEffect
- withAnimation
- GeometryReader
- sensoryFeedback
- MagnifyGesture
- Path
- transition
- @State
- sin · cos · .pi
- 01It runs.Springs, timelines and trig are computed live in native SwiftUI. Nothing is a canned preview.
- 02It pastes.What you copy is what you typed. No package. Nothing to import beyond SwiftUI.
- 03It refuses.If it can’t play something the way Xcode would, it stops and names the line.
Press play.
Recorded in the app, not mocked. The ball is the component, running live.
What plays
One component, postcard size. Not a screen, and not an app.
import SwiftUI struct TwinOrbitLoader: View { var size: Double = 54 var period: Double = 0.85 var colorA: Color = .mint var colorB: Color = .cyan var body: some View { TimelineView(.animation) { context in let t = context.date.timeIntervalSinceReferenceDate let a = t * .pi * 2 / period ZStack { ball(angle: a, color: colorA) ball(angle: a + .pi, color: colorB) } } .frame(width: size, height: size) } func ball(angle: Double, color: Color) -> some View { let depth = sin(angle) Circle() .fill(color.gradient) .frame(width: size * 0.36, height: size * 0.36) .scaleEffect(0.78 + 0.22 * ((depth + 1) / 2)) .offset(x: cos(angle) * size * 0.28, y: sin(angle) * size * 0.1) .zIndex(depth) } }
That file plays in Swoop as written, and pastes into Xcode unchanged.
- Views
Text,Image,Button,Toggle,Slider,TextField,ProgressView, stacks,ForEach,TimelineView,PhaseAnimator,GeometryReader,Path,Shape, gradients, and the basic shapes.- Motion and input
animation,transition,onAppear,onTapGesture,DragGesture,MagnifyGesture,symbolEffect,sensoryFeedback.- Swift
@State,let,var, helpers,if/else, loops, ranges, andsin,cos,sqrt,min,max,.pi.- Not here
- No
ScrollView,List,NavigationStack,TabView, sheets, ormatchedGeometryEffect. Swoop is one component, not a screen.
Read a file
One component each. The source on the page is the source that plays, and it pastes into Xcode unchanged.
- 01SwiftUI animationHow a component keeps time, frame by frame.
- 02SwiftUI code previewThe stage runs the file. It does not mime it.
- 03Learn SwiftUIOne view at a time. Not a course.
- 04Loading animationTwo dots on a timeline.
- 05Rotation animationAn angle, every frame.
- 06withAnimationChange state, and the view eases.
- 07onAppearMove once, when the view shows up.
- 08Offset animationPlace a shape without a stack doing it.
Pay once. Keep it forever.
No subscription. Lifetime Pro starts at $5 for the first 10 people, then doubles every 10 sales until it settles at $69.99. Pro hides your source, shows your creator stats, adds the badge next to your name, and gets every Pro feature we ship.
Get it on
your Mac.
Free. macOS 14 and later. Also on iPhone for browsing the community.
Download for Mac