SwiftUI-Animation-Masterclass
iOS ve macOS'ta SwiftUI için fiziğe dayalı hareket, particle'lar, değişim efektleri ve geçişler.
Lisans: MIT
iOS 17+ ve macOS 14+ üzerinde SwiftUI için bir hareket paketi: fiziğe dayalı spring, decay ve sekmeler, parmağın hızını koruyan sürüklemeler, particle efektleri, değişim efektleri ve geçişler. Her şey bir view modifier, bir Animation, bir Transition ya da düz bir value type; paketin hiçbir bağımlılığı yok.
Özellikler
- Kapalı formda çözülen DampedSpring: gentle, snappy, bouncy ve smooth preset'leri, yerleşme süresi ve SwiftUI animasyonuna dönüşüm
- Decay bir flick'in nerede biteceğini hesaplıyor; GravityBounce ve .gravityBounce() bir değeri düşürüp sektiriyor
- .elasticDrag() ve .snapDrag() bırakma hızını spring'e aktarıyor, uçlarda rubber-band direnciyle esniyor
- Tek Canvas'ta particle'lar: 8 preset, 5 kuvvet ve 7 şekil, seed'li simülasyon ve en fazla 10.000 particle
- Değişim efektleri (shake, jump, spin, pulse, ping, shine) ile iris, wipe, flip ve pop geçişleri
- Her efekt Reduce Motion ayarına kendi başına uyuyor
- Swift 6 dil modunda derleniyor; dört makaleli DocC kataloğu ve iOS ile macOS için MotionGallery örnek uygulaması
Hızlı Başlangıç
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}Kurulum
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]Ekran Görüntüleri












Zaman Çizelgesi
Repo açıldı
1.0.0 etiketlendi; manifest repoda olmayan kaynak klasörlerini gösterdiği için derlenmiyordu
Sadeleştirildi: eski animasyon modülleri kaldırıldı, geriye bir demo view ve bir scroll modifier'ı kaldı
2.0.0 olarak yeniden kuruldu: fizik, gesture, particle, değişim efektleri ve geçişler; MobileMotion ve SwiftParticles birleştirilip arşivlendi