SwiftUI-Animation-Masterclass
Movimiento basado en física, partículas, efectos de cambio y transiciones para SwiftUI en iOS y macOS.
Licencia: MIT
Un paquete Swift de movimiento para SwiftUI en iOS 17+ y macOS 14+: springs basados en física, decay y bounces, drags que conservan la velocidad del dedo, efectos de partículas, efectos de cambio y transiciones. Todo es un view modifier, una Animation, una Transition o un simple value type, y el paquete no tiene dependencias.
Características
- DampedSpring resuelto en forma cerrada, con los presets gentle, snappy, bouncy y smooth, tiempo de asentamiento y conversión a una animación de SwiftUI
- Decay proyecta dónde termina un flick; GravityBounce y .gravityBounce() dejan caer un valor y lo hacen rebotar
- .elasticDrag() y .snapDrag() pasan la velocidad de soltar al spring y se estiran con resistencia de goma (rubber-band) más allá de los extremos
- Partículas en un único Canvas: 8 presets, 5 fuerzas y 7 formas, una simulación con seed y como máximo 10.000 partículas
- Efectos de cambio (shake, jump, spin, pulse, ping, shine) y transiciones iris, wipe, flip y pop
- Cada efecto respeta Reduce Motion por sí mismo
- Compila en el modo de lenguaje Swift 6; catálogo DocC con cuatro artículos y la app de ejemplo MotionGallery para iOS y macOS
Inicio rápido
1import SwiftUI2import SwiftUIAnimationMasterclass3 4struct LikeButton: View {5 @State private var likes = 06 7 var body: some View {8 Button("Like", systemImage: "heart.fill") { likes += 1 }9 .buttonStyle(.borderedProminent)10 .changeEffect(.jump(), value: likes)11 .particleBurst(.hearts, trigger: likes)12 }13}Instalación
Swift Package Manager
1dependencies: [2 .package(url: "https://github.com/muhittincamdali/SwiftUI-Animation-Masterclass.git", from: "2.0.0")3],4targets: [5 .target(name: "YourApp", dependencies: [6 .product(name: "SwiftUIAnimationMasterclass", package: "SwiftUI-Animation-Masterclass")7 ])8]Capturas de pantalla












Cronología
Repositorio abierto
1.0.0 etiquetada; su manifest apuntaba a carpetas de código fuente que no estaban en el repositorio, así que no compilaba
Simplificado: se eliminaron los módulos de animación antiguos, quedando una vista de demo y un modificador de scroll
Reconstruido como 2.0.0: physics, gestures, particles, efectos de cambio y transiciones; MobileMotion y SwiftParticles se fusionaron y fueron archivados