● مجتمع
CharlesWiltgen
⚡ فوري
Axiom (xOS Dev Skills)
بواسطة CharlesWiltgen · CharlesWiltgen/Axiom
تطوير منصات Apple دون محاربة Swift 6 — مهارات رأيية لـ SwiftUI والتزامن المُهيكَل و@Observable وأدوات البناء الحديثة.
Axiom هي حزمة مهارات Claude Code لشحن تطبيقات إنتاج على iOS / iPadOS / watchOS / tvOS. تُطبِّق الاصطلاحات الحديثة: SwiftUI أولاً، @Observable (iOS 17+) بدلاً من ObservableObject، async/await بدلاً من completion handlers، الأنواع ذات القيمة وقواعد تزامن Swift 6. تشمل فحوصات إمكانية الوصول وجاهزية App Store ونظافة مشروع Xcode.
لماذا تستخدمه
الميزات الأساسية
- أنماط SwiftUI أولاً؛ UIKit فقط حيثما يُطلَب
- ViewModels بـ @Observable (iOS 17+) مع عزل actor صحيح
- التزامن المُهيكَل — يُعلِّم تسرُّب Task ومشكلات الإلغاء المفقود
- تحيُّز للأنواع ذات القيمة؛ struct/enum بدلاً من class إلا عند الحاجة
- مراجعة إمكانية الوصول (VoiceOver وDynamic Type والتباين)
- قائمة فحص جاهزية App Store
- نظافة مشروع Xcode — لا تعديلات يدوية على .pbxproj
عرض مباشر
كيف يبدو في الممارسة
جاهز
حالات الاستخدام
استخدامات عملية: Axiom (xOS Dev Skills)
متى تستخدمه: التطبيق iOS 17+ لكن ViewModels لا تزال ObservableObject + @Published.
الخطوات
-
الجرد
Axiom: list every ObservableObject + @Published in the project. Note which are leaf vs shared.✓ تم النسخ
→ قائمة مع الشكل + تلميحات التبعية
-
ترحيل واحد
Refactor ProfileViewModel to @Observable. Keep the public API stable. Update its View consumers' bindings.✓ تم النسخ
→ VM مُرحَّل؛ @Bindable مستخدَم في Views؛ لا @Published متبقية
-
التحقق
Run xcodebuild for the scheme. Report any warnings.✓ تم النسخ
→ بناء نظيف؛ لا تحذيرات Swift 6
النتيجة: قاعدة كود حديثة بـ @Observable مع views أنظف.
المزالق
- الاختبارات الموجودة تعتمد على تسقيط @Published ($name) — الاختبارات تحتاج إعادة كتابة؛ لا تتعيَّن جميع أنماط الوصول بشكل مباشر
متى تستخدمه: البناء مليء بتحذيرات Sendable / actor.
الخطوات
-
التصنيف
Axiom concurrency-clean: classify warnings into: (1) actor isolation, (2) Sendable conformance, (3) data race risk.✓ تم النسخ
→ قائمة مُصنَّفة
-
إصلاح عزل actor
Tackle category 1 first. Propose minimal fixes; prefer @MainActor on UI types over global isolation.✓ تم النسخ
→ تغييرات جراحية؛ لا رشَّ @MainActor عشوائي
النتيجة: بناء Swift 6 نظيف مع حدود تزامن متعمَّدة.
المزالق
- الإفراط في @MainActor كاختصار لـ 'كتم التحذيرات' — المهارة تُعلِّم هذا؛ استخدم تصميم actor صحيح بدلاً من ذلك
متى تستخدمه: تقديم App Store قريب؛ تريد تغطية VoiceOver/Dynamic Type.
الخطوات
-
مسح Views
Axiom a11y: scan SwiftUI views. Flag missing accessibilityLabel, hardcoded font sizes, low-contrast color usage.✓ تم النسخ
→ قائمة مشكلات لكل view
-
تصحيح المشكلات الرئيسية
Apply fixes for top 10 issues. Use system fonts for Dynamic Type.✓ تم النسخ
→ تصحيحات مُطبَّقة؛ البناء لا يزال نظيفاً
النتيجة: التطبيق يجتاز جولة VoiceOver أساسية.
المزالق
- التسميات المُولَّدة تلقائياً لا تطابق النموذج الذهني للمستخدم — أضِف تسميات مقصودة وذات معنى
التركيبات
اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10
تطبيق توصيات المهارة + اختبار دخان على المحاكي
Axiom: migrate ProfileVM. Then iOS-Simulator: launch, screenshot the profile screen.✓ تم النسخ
تطبيق تصحيحات عبر المشروع
Axiom concurrency-clean: produce patches for src/. Filesystem: apply them.✓ تم النسخ
التحقق من البناء بعد إعادة الهيكلة
After migration, XcodeBuild: build for sim. Report warnings.✓ تم النسخ
التكلفة والحدود
تكلفة التشغيل
- حصة API
- لا ينطبق
- الرموز لكل استدعاء
- عمليات المسح 10k–40k token
- التكلفة المالية
- مجاني
- نصيحة
- قيِّد المراجعات على ميزة/مجلد واحد؛ لا تُوزِّع على تطبيق ضخم
الأمان
الصلاحيات والأسرار ونطاق الأثر
الحد الأدنى من الصلاحيات: filesystem-read filesystem-write
تخزين بيانات الاعتماد: لا شيء
نقل البيانات الخارجي: لا شيء
- المهارة رأيية؛ إذا كان فريقك يستخدم UIKit أولاً أو Combine، توقَّع احتكاكاً
استكشاف الأخطاء
الأخطاء الشائعة وحلولها
الترحيل كسر استخدام @Bindable
بعض views تحتاج غلافات @Bindable؛ المهارة يجب أن تضيفها — تحقق أنها لم تفتها
إصلاحات التزامن تُغيِّر الدلالات بصمت
شغِّل الاختبارات دائماً بعد الترحيل؛ تغييرات التزامن دقيقة
اقتراحات إمكانية الوصول تبدو نمطية
المهارة تتبع Apple HIG؛ أضِق بتسميات التطبيق الخاصة بك
البدائل
Axiom (xOS Dev Skills) مقابل البدائل
| البديل | متى تستخدمها | المقايضة |
| AvdLee Swift Concurrency Skill | تحتاج التزامن فقط لا الحزمة الكاملة | أضيق |
| Apple's own Swift Migrator | تريد ترحيلاً مُعتمَداً من Apple | أقل تفاعلية؛ أقل وعياً بالمشروع |
| twostraws SwiftUI Agent Skill | تركيز SwiftUI فقط | آراء مختلفة |