Write SwiftUI. Run it live.
Straight from your iPhone.
A canvas for postcard-sized components. Type one — or tell your AI — watch it run for real, copy source that compiles in Xcode, then post it or record it.
iPhone · iOS 17 and later · free.
Everything here is running. None of it is a screenshot.
The loop
Type it, run it, take it with you.
Your source drives the stage. What you copy is what you typed.
import SwiftUI
struct RingSpinner: View {
@State private var turning = false
var body: some View {
Circle()
.trim(from: 0, to: 0.72)
.stroke(.orange, lineWidth: 5)
.frame(width: 46, height: 46)
.rotationEffect(.degrees(turning ? 360 : 0))
.animation(.linear(duration: 1).repeatForever(autoreverses: false),
value: turning)
.onAppear { turning = true }
}
}It runs, it doesn’t mime
Springs, TimelineView and trigonometry are computed on the
device, at the frame rate you feel.
Copy compiles
Plain SwiftUI. No package to install, nothing to import beyond
SwiftUI.
Fails closed, with a line number
If Swoop can’t play something exactly the way Xcode would, it refuses and points at the line rather than guessing.
Your AI, in the editor
Plug in your own key — ChatGPT, Claude, Grok or Gemini. It knows what Swoop can play, writes straight into the file, and when the player refuses, the refusal goes back and it fixes it.
And then
Post it. Record it. Keep it yours.
Making the thing is half of it. The other half is showing someone.
Publish to the community
Put a component on Home and anyone can play it and take the source. Publishing is free — taxing the thing that fills a feed is how a feed dies before it starts.
Record it
Three seconds, square, straight to the share sheet. Captured from the running component, so it is the real animation rather than a still.
Your files stay yours
Everything you write is saved on the phone. Not uploaded, not read by us, not used to train anything. It leaves only when you publish or share it.
An account is optional
Writing, playing and copying never need one. Sign in with Apple or Google only when you want to publish or like — and you can delete your account from inside the app.
Writing
Animation, worked through.
Every example is a complete file, and every one of them runs on the page you’re reading.
SwiftUI animation examples
Eight components, complete source for each, all running as you read.
2026-09-08SwiftUI loading animation
Four spinners, complete files, no package to install.
2026-09-08withAnimation, and the modifier that replaced it
Two ways to animate the same change, and the rule for picking one.
2026-09-08SwiftUI rotation animation
rotationEffect, anchors, and the two mistakes everybody makes once.
2026-09-08The subset
Views
Text, Image,
Button, Toggle, Spacer,
Divider, VStack, HStack,
ZStack, ForEach, TimelineView,
PhaseAnimator, GeometryReader, Slider,
TextField, ProgressView, Path,
Shape, LinearGradient, Circle,
Capsule, Rectangle, RoundedRectangle,
Ellipse.
Modifiers
frame,
padding, offset, foregroundStyle,
fill, stroke, trim,
background, overlay, opacity,
scaleEffect, rotationEffect, zIndex,
clipShape, shadow, animation,
onAppear.
Swift
@State, let,
var, parameters with defaults, computed some View
properties, helper funcs, if/else,
for, ranges, arrays, arithmetic, Double.random, and
sin, cos, atan2, sqrt,
pow, min, max, .pi.
Deliberately not here
No ScrollView,
List, NavigationStack, TabView, sheets
or matchedGeometryEffect. Swoop is for one component at postcard
size, not for building screens on a phone.
Shared links