تهيئة تطبيقات Swift: مكتبة SwiftyConfig

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو SwiftyConfig؟

SwiftyConfig هي مكتبة خفيفة الوزن لإدارة تكوينات تطبيقات iOS/macOS بلغة Swift. توفر واجهة سهلة لقراءة الإعدادات من ملفات .plist أو .json أو .yaml، كما تدعم العمل مع متغيرات البيئة. تقوم المكتبة تلقائياً بالتحقق من أنواع البيانات، وتدعم الهياكل المتداخلة، وتسمح بتعيين القيم الافتراضية.

لماذا نحتاج SwiftyConfig؟

أثناء عملية تطوير التطبيقات، غالباً ما تنشأ الحاجة لتخزين إعدادات البيئة (مفاتيح API، عناوين URL للخوادم، أعلام الميزات) بشكل منفصل عن الكود. تحل SwiftyConfig هذه المشكلة من خلال تقديم:

  • أمان الأنواع — يتحقق المترجم من أنواع التكوينات في مرحلة البناء.
  • المرونة — دعم تنسيقات ملفات متعددة ومصادر بيانات مختلفة.
  • البساطة — الحد الأدنى من الكود للتهيئة والوصول إلى الإعدادات.

التثبيت

أضف إلى Package.swift:

.package(url: "https://github.com/example/SwiftyConfig.git", from: "1.0.0")

أو عبر CocoaPods:

pod 'SwiftyConfig'

الوظائف الرئيسية

  • الاكتشاف التلقائي للتكوينات — يبحث عن ملفات Config.plist في الحزمة.
  • دعم المفاتيح المتداخلة — الوصول عبر الترميز النقطي: config["server.host"].
  • واجهات استرجاع محددة النوع — string(forKey:)، int(forKey:)، bool(forKey:) وغيرها.
  • القيم الافتراضية — إذا كان المفتاح مفقوداً، يتم إرجاع القيمة المحددة.
  • التخزين المؤقت — قراءة الملف مرة واحدة مع التخزين المؤقت اللاحق في الذاكرة.

مثال على الكود

import SwiftyConfig

// التهيئة (يقوم تلقائياً بتحميل Config.plist)let config = try SwiftyConfig()

// قراءة القيمlet apiKey: String = config.string(forKey: "api.key") ?? ""let maxRetries: Int = config.int(forKey: "network.maxRetries") ?? 3let isDebugMode: Bool = config.bool(forKey: "debug.enabled") ?? false

// أو باستخدام الترميز النقطيif let host = config["server.host"] as? String { print("Server host: \\(host)")}

// لنظام macOS يمكن إضافة دعم متغيرات البيئة:let envConfig = SwiftyConfig(environment: ProcessInfo.processInfo.environment)print(envConfig.string(forKey: "DATABASE_URL") ?? "default")

متى نستخدم SwiftyConfig؟

المكتبة مثالية لـ:

  • التطبيقات متعددة البيئات — dev/staging/prod بتكوينات مختلفة.
  • مفاتيح الميزات (Feature toggles) — لتفعيل/تعطيل الوظائف بسرعة دون إعادة بناء.
  • البناء لأهداف متعددة — iOS، macOS، watchOS بإعدادات مشتركة.
  • المشاريع مفتوحة المصدر — حيث تحتاج لإخفاء المفاتيح الحقيقية ووضعها في ملف منفصل.

SwiftyConfig هو حل بسيط لكنه قوي لتكوين تطبيقات Swift، مما يبسط صيانة الكود وقابليته للتوسع.

توصيات