SwiftUI-Components
عروض SwiftUI جاهزة لـ iOS 17 وmacOS 14، بتحقق صحة النماذج (form validation) وإيماءات متاحة لإمكانية الوصول (accessible gestures)
الترخيص: MIT
حزمة Swift بلا اعتماديات من عروض SwiftUI: أزرار، وبطاقات، ورسوم بيانية، وحقول نماذج مع تحقق صحة (validation)، وإيماءات، وقوائم، وطبقات تراكب (overlays)، ومؤشرات تحميل (loaders)، وtoasts. كل مكوّن هو View بسيط يُهيَّأ من خلال مُنشئه (initializer)، بحيث يمكنك استخدام واحد أو اثنين منه دون تبنّي نظام سمات (theme system) كامل. المنطق الذي خلفها، مثل فحوصات أرقام البطاقات، والمُحقِّقات (validators)، وصيغ النماذج من JSON، وتمييز السحب (swipe) والأشكال، مغطّى بحزم اختبارات Swift Testing تعمل على macOS ومحاكي iPhone.
الميزات
- 223 عرض view، و12 معدِّل view، و5 معدِّلات إيماءة (gesture)، في 14 فئة، مُحصاة من المصادر
- مُحقِّقات (validators) قابلة للتركيب، وأخطاء تظهر بعد أول تحرير، وفحوصات خادم بتأخير (debounced)، ونماذج متعددة الخطوات
- نماذج تُرسَم من JSON؛ تعمل أنماط الصيغة (schema patterns) بحد 20 ميلي ثانية لكل مطابقة وموازنة 100 ميلي ثانية لكل فحص
- السحب (swipe)، وسحب الحافة (edge swipe)، وتسلسلات السحب، وpinch-rotate-drag، ورسم الأشكال، كل منها بإجراء إمكانية وصول (accessibility action)
- قاعدة كود واحدة لـ iOS وmacOS: تُطابَق تقريبًا كل التفاصيل الخاصة بـ UIKit فقط مع AppKit أو تُحوَّل إلى no-ops في ملف خاص بالمنصة
- وضع لغة Swift 6، بلا اعتماديات، وأمثلة README مُجمَّعة (compiled) بواسطة التطبيق التوضيحي وهدف الاختبار
- نسبة وتصنيف تباين WCAG 2 لألوان SwiftUI بواسطة ColorContrast
البدء السريع
1import SwiftUI2import SwiftUIComponents3 4struct ContentView: View {5 @State private var rating = 3.06 7 var body: some View {8 VStack(spacing: 20) {9 Text("Rate this app")10 .font(.headline)11 RatingInput(rating: $rating)12 PrimaryButton("Send rating") {13 print("Rating: \(rating)")14 }15 }16 .padding()17 }18}التثبيت
Xcode (File › Add Package Dependencies…)
1https://github.com/muhittincamdali/SwiftUI-Components.gitSwift Package Manager
1dependencies: [2 .package(url: "https://github.com/muhittincamdali/SwiftUI-Components.git", from: "2.1.0")3],4targets: [5 .target(name: "YourApp", dependencies: [6 .product(name: "SwiftUIComponents", package: "SwiftUI-Components")7 ])8]لقطات الشاشة








الجدول الزمني
افتُتح المستودع؛ وُسم v1.0.0 على أول commit (14 ملف مصدر، iOS 16 وmacOS 13)
تقليص الحزمة: أُزيلت المكوّنات واستُبدلت بكود placeholder (c7b3799)
أُعيد البناء كـ 2.0.0: استُعيدت المكوّنات لـ iOS 17 وmacOS 14 في وضع لغة Swift 6، مع اختبارات وCI وDocC (PR #3)
2.1.0: تحقق الصحة (validation)، ونماذج JSON، وإيماءات، وفاحص تباين، أُعيدت كتابتها من SwiftUI-Forms-Kit وSwiftUI-Gesture-Library وiOSUIComponents، التي أُرشفت (PR #6)