swiftui-expert-skill
أنشئ تطبيقات SwiftUI حديثة باستخدام أفضل الممارسات الاحترافية
متاح أيضًا من: avdlee
يواجه مطورو SwiftUI صعوبات مع تعقيدات إدارة الحالة وأنماط APIs الموقوفة. تقدم هذه المهارة إرشادات قائمة على الحقائق لتطوير SwiftUI الحديث باستخدام @Observable، وتكوين العروض الصحيح، وتنسيق Liquid Glass لنظام iOS 26+.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "swiftui-expert-skill". Review this view: struct ProductView: View { @StateObject var vm: ProductViewModel; var body: some View { Text(vm.title) } }
النتيجة المتوقعة:
تم العثور على مشاكل: (1) استخدام @StateObject مع ObservableObject - فضّل @Observable class مع @State للكود الجديد. (2) يجب أن يكون StateObject private. (3) فكر في تمرير title كمعامل let إذا كان للقراءة فقط. الموصى به: استخدم @Observable class، وعلّم @State كـ private، ومرّر القيم للقراءة فقط مباشرة.
استخدام "swiftui-expert-skill". How do I handle navigation to a detail view when tapping a list row?
النتيجة المتوقعة:
استخدم NavigationStack مع navigationDestination للتنوع الآمن عند وقت التجميع. استبدل NavigationView بـ NavigationStack عند الجذر. استخدم NavigationLink مع معامل value و modifier navigationDestination(for:). هذا يوفر أماناً عند وقت التجميع وإدارة حالة صحيحة مقارنة بأنماط NavigationView القديمة.
التدقيق الأمني
آمنStatic analyzer produced 226 false positive findings due to pattern matching on markdown documentation content. External command patterns matched file path references like 'references/state-management.md' and Swift code examples, not actual shell execution. Network finding was a GitHub source URL in YAML frontmatter. All blocker findings for cryptographic algorithms and system reconnaissance are incorrect pattern matches on documentation text. No executable code or security risks present.
درجة الجودة
ماذا يمكنك بناءه
مطور iOS ينشئ ميزات جديدة
استخدم عند إنشاء SwiftUI views جديدة لضمان إدارة الحالة الصحيحة مع @Observable، واستخدام APIs حديثة مثل foregroundStyle() و NavigationStack، والبنية المثلى للعروض منذ البداية.
مراجعة الكود لمشاريع SwiftUI الموجودة
استخدم عند فحص كود SwiftUI القديم للتعرف على APIs الموقوفة، و property wrappers غير الصحيحة، ومشاكل الأداء المضادة، والفرص للتحديث.
تعلم أنماط SwiftUI الحديثة
استخدم عند الانتقال من UIKit أو SwiftUI القديم لتعلم أفضل الممارسات الحالية لتدفق البيانات، وتكوين العروض، وإرشادات تصميم Apple.
جرّب هذه الموجهات
راجع هذا الـ SwiftUI view للتأكد من إدارة الحالة الصحيحة واستخدام APIs الحديث. تحقق من اختيار property wrapper، و APIs الموقوفة، وأنماط تكوين العروض.
أعد هيكلة كود SwiftUI هذا لاستخدام APIs الحديثة. استبدل ObservableObject بـ @Observable، وحدّث المعدّلات الموقوفة، وحسّن بنية العرض للأداء.
ساعدني في بناء ميزة SwiftUI جديدة بتدفق بيانات صحيح. صمّم إدارة الحالة باستخدام @Observable، ونظّم العروض للـ diffing الأمثل، وطبّق تنسيق iOS 26+ حيث يناسب.
حلّل SwiftUI view هذا لمشاكل الأداء. حدد تحديثات الحالة غير الضرورية، ومشاكل هوية العرض في ForEach، وتحسينات hot path، وأسباب layout thrashing.
أفضل الممارسات
- فضّل @Observable على ObservableObject لكل كود SwiftUI جديد مع @MainActor لأمان الخيوط
- اجعل body العرض بسيطاً ونقياً - استخرج المنطق المعقد إلى النماذج والعروض الفرعية
- استخدم هوية مستقرة في ForEach مع معرّفات فريدة، ولا تستخدم .indices للمحتوى الديناميكي أبداً
تجنب
- تصريح القيم الممرّرة كـ @State أو @StateObject بدلاً من استخدام @Binding أو معاملات let
- استخدام GeometryReader عندما توجد بدائل containerRelativeFrame أو visualEffect
- إنشاء كائنات أو تنفيذ حوسبة ثقيلة مباشرة في body العرض
الأسئلة المتكررة
هل يجب استخدام @Observable أم ObservableObject لمشاريع SwiftUI الجديدة؟
متى يجب استخدام @Binding مقابل تمرير القيمة مباشرة؟
هل تنسيق Liquid Glass مطلوب لتطبيقات iOS؟
لماذا يسبب ForEach الخاص بي crashes مع المصفوفات الديناميكية؟
كيف أصحّح unexpected view re-renders في SwiftUI؟
هل يمكن لهذه المهارة فرض معمارية محددة مثل MVVM؟
تفاصيل المطور
المؤلف
sickn33الترخيص
MIT
المستودع
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/swiftui-expert-skillمرجع
main
بنية الملفات
📄 SKILL.md