Hands-on animation workshop. Use when the user wants their app to feel alive — button feedback, screen transitions, loading states, scroll effects, hero transitions. Covers implicit/explicit animations, springs, transitions, matched geometry, phase/keyframe animators, gesture-driven animation, and Lottie integration.
.animation — Start with the simplest approach. Apply .animation(.easeInOut, value:) to a state change. Explain that SwiftUI watches the value and interpolates any changed properties..spring(response:dampingFraction:) for natural feel. Refer to references/spring-physics-visual-guide.md for parameter combos. Default recommendation: response: 0.5, dampingFraction: 0.7 (snappy without bounce).withAnimation — When multiple views must animate together or different properties need different curves. Wrap state mutations in withAnimation(.spring) { ... }..transition(.slide), .transition(.scale), .transition(.asymmetric(...)) for insert/remove animations. Combine with if/switch and .withAnimation@Namespace + .matchedGeometryEffect(id:in:) for hero transitions between views. Warn: both source and destination must exist momentarily; use if/else not two if blocks..navigationTransition(.zoom(sourceID:in:)) and .matchedTransitionSource(id:in:) for zoom transitions in NavigationStack..scrollTransition { content, phase in ... } (iOS 17+) for parallax, scale, and opacity effects tied to scroll position.DragGesture with .offset and spring animation on .onEnded for swipe-to-dismiss, card stacks, pull-to-action.PhaseAnimator for multi-step sequential animations (pulse, shake, bounce sequences). Each phase triggers the next automatically.KeyframeAnimator for precise timeline control. Define keyframe tracks for each property (scale, rotation, offset) with exact timing.references/lottie-swiftui-integration.md for adding complex vector animations from After Effects via lottie-ios SPM package..redacted(reason: .placeholder) with shimmer overlay for skeleton screens..frame changes (triggers layout passes). Prefer .scaleEffect, .offset, .opacity, .rotationEffect — these are GPU-composited. Use .drawingGroup() for complex view hierarchies. Profile with Instruments > Core Animation.references/animation-recipes.md — 20 copy-paste recipes organized by use casereferences/spring-physics-visual-guide.md — Spring parameter combos with feel descriptionsreferences/lottie-swiftui-integration.md — Step-by-step Lottie setup for SwiftUIapple-swiftui-mastery skill — animation sections for deeper theory