جميع حزم المصدر المفتوح
واجهة المستخدمSwift

SwiftUI-Animation-Masterclass

حركة قائمة على الفيزياء، وجُسيمات، وتأثيرات تغيير (change effects)، وانتقالات لـ SwiftUI على iOS وmacOS.

7النجومآخر إصدار: v2.0.0آخر تحديث: 15 أكتوبر 2026
الأنظمة الأساسية:iOS 17macOS 14

الترخيص: MIT

حزمة Swift للحركة في SwiftUI على iOS 17+ وmacOS 14+: زنبركات (springs) قائمة على الفيزياء، وdecay، وارتدادات (bounces)، وسحب (drags) يحافظ على سرعة الإصبع، وتأثيرات جُسيمات، وتأثيرات تغيير، وانتقالات. كل شيء هو معدِّل view، أو Animation، أو Transition، أو نوع قيمة (value type) بسيط، ولا تحتوي الحزمة على أي اعتماديات.

الميزات

  • DampedSpring محلول بصيغة مغلقة (closed form)، بقوالب gentle وsnappy وbouncy وsmooth، ووقت استقرار (settling time)، وتحويل إلى animation خاص بـ SwiftUI
  • تتنبأ Decay بنقطة انتهاء flick؛ ويُسقِط GravityBounce ومعدِّل .gravityBounce() قيمة ويرتدّان بها
  • يمرّر .elasticDrag() و.snapDrag() سرعة الإفراج (release velocity) إلى الزنبرك ويتمدَّدان بمقاومة مطاطية (rubber-band) عند تجاوز الحدود
  • جُسيمات في Canvas واحد: 8 قوالب جاهزة، و5 قوى (forces)، و7 أشكال، ومحاكاة (simulation) بـ seed، وحد أقصى 10,000 جُسيم
  • تأثيرات تغيير (shake وjump وspin وpulse وping وshine) وانتقالات iris وwipe وflip وpop
  • يحترم كل تأثير إعداد Reduce Motion من تلقاء نفسه
  • يُبنى في وضع لغة Swift 6؛ كتالوج DocC بأربع مقالات وتطبيق MotionGallery التوضيحي لـ iOS وmacOS

البدء السريع

swift
1import SwiftUI
2import SwiftUIAnimationMasterclass
3 
4struct LikeButton: View {
5 @State private var likes = 0
6 
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}

التثبيت

Swift Package Manager

swift
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]

لقطات الشاشة

انفجارات confetti وfireworks، وثلج وجمر مرسومة بواسطة ParticleSystem
انفجارات confetti وfireworks، وثلج وجمر مرسومة بواسطة ParticleSystem، السمة الداكنة
تأثيرات التغيير shake وjump وspin وpulse وping وshine
تأثيرات التغيير shake وjump وspin وpulse وping وshine، السمة الداكنة
كرة تسقط بـ gravityBounce، وDampedSpring من نوع bouncy، وflick من نوع Decay
كرة تسقط بـ gravityBounce، وDampedSpring من نوع bouncy، وflick من نوع Decay، السمة الداكنة
شاشة معمل الفيزياء (physics lab) في تطبيق MotionGallery التوضيحي على محاكي iPhone، فاتحة
شاشة معمل الفيزياء في تطبيق MotionGallery التوضيحي على محاكي iPhone، داكنة
شاشة تأثيرات التغيير في تطبيق MotionGallery التوضيحي، فاتحة
شاشة تأثيرات التغيير في تطبيق MotionGallery التوضيحي، داكنة
شاشة الانتقالات في تطبيق MotionGallery التوضيحي، فاتحة
شاشة الانتقالات في تطبيق MotionGallery التوضيحي، داكنة

الجدول الزمني

  1. افتُتح المستودع

  2. وُسم 1.0.0؛ أشار بيانه (manifest) إلى مجلدات مصدر غير موجودة في المستودع، فلم يُبنَ

  3. تبسيط: أُزيلت وحدات التحريك القديمة، وتبقّى عرض توضيحي ومعدِّل scroll

  4. أُعيد البناء كـ 2.0.0: فيزياء، وإيماءات، وجُسيمات، وتأثيرات تغيير، وانتقالات؛ دُمجت MobileMotion وSwiftParticles وأُرشفتا

الروابط

المستودعات المدمجة

مقالة ذات صلة

قراءة المقالة