مولد QR Code بلغة Swift (iOS/macOS): مكتبة EFQRCode
أصبحت رموز QR جزءًا لا يتجزأ من التطبيقات الحديثة - من المصادقة إلى نقل الروابط وجهات الاتصال. إذا كنت تطور تطبيقات لنظام iOS أو macOS باستخدام Swift، فلست بحاجة لكتابة خوارزميات ترميز معقدة من الصفر. توفر المكتبة الجاهزة EFQRCode واجهة برمجة تطبيقات (API) ملائمة لإنشاء وقراءة وتخصيص رموز QR. في هذه المقالة، سنستعرض إمكانياتها وطريقة التثبيت وأمثلة الاستخدام.
ما هي EFQRCode؟
EFQRCode هي مكتبة مفتوحة المصدر مكتوبة بلغة Swift. تدعم iOS (بدءًا من الإصدار 9.0) و macOS (10.11+). الإمكانيات الرئيسية:
- توليد رموز QR من النصوص وعناوين URL وجهات اتصال vCard والنصوص.
- تخصيص اللون والخلفية والحجم ومستوى تصحيح الأخطاء.
- إضافة علامات مائية (شعارات، صور) في وسط رمز QR.
- إنشاء رموز QR متحركة (GIF).
- فك تشفير رموز QR من الصور.
تستخدم المكتبة CIFilter المدمج من Core Image، ولكنها تضيف العديد من المغلفات والتخصيصات المريحة.
التثبيت عبر Swift Package Manager
أضف حزمة EFQRCode إلى مشروع Xcode الخاص بك:
// في Xcode: File → Add Packages...// أضف رابط المستودع:https://github.com/EFPrefix/EFQRCode.git// اختر الإصدار (يوصى بـ "Up to Next Major")أو أضف التبعية يدويًا في ملف Package.swift:
dependencies: [ .package(url: "https://github.com/EFPrefix/EFQRCode.git", from: "6.0.0")]مثال أساسي لتوليد QR Code
أبسط طريقة لإنشاء رمز QR من نص:
import EFQRCode
// إنشاء QR Code من نصif let image = EFQRCode.generate( content: "https://pythonlib.ru", size: EFIntSize(width: 300, height: 300)) { // استخدم image (CGImage) للعرض // على سبيل المثال، في UIImageView على iOS: let uiImage = UIImage(cgImage: image) imageView.image = uiImage}النتيجة - رمز QR قياسي بالأسود والأبيض بحجم 300x300 بكسل.
تخصيص اللون والخلفية
يمكنك تعيين لون عشوائي للمقدمة والخلفية:
import EFQRCode
let qrImage = EFQRCode.generate( content: "Hello, Swift!", size: EFIntSize(width: 400, height: 400), backgroundColor: UIColor.yellow.cgColor, foregroundColor: UIColor.blue.cgColor, inputCorrectionLevel: .h // أقصى تصحيح للأخطاء)يقبل المعامل inputCorrectionLevel القيم .l (7%)، .m (15%)، .q (25%)، .h (30%). كلما زاد المستوى، زادت البيانات التي يمكن استعادتها في حالة التلف.
إضافة شعار (علامة مائية)
لوضع شعار في وسط رمز QR، استخدم الطريقة generateWithWatermark:
import EFQRCode
let watermarkImage = UIImage(named: "logo")?.cgImagelet qrWithLogo = EFQRCode.generateWithWatermark( content: "https://pythonlib.ru", size: EFIntSize(width: 500, height: 500), watermark: watermarkImage, watermarkMode: .center)هام: يجب ألا يشغل الشعار أكثر من 30% من المساحة، وإلا فقد لا يتم قراءة الرمز.
إنشاء رمز QR متحرك (GIF)
تدعم EFQRCode توليد رموز QR متحركة. على سبيل المثال، يمكن إنشاء GIF بألوان متغيرة:
import EFQRCode
let qrCodeGIF = EFQRCode.generateGIF( content: "Animated QR", size: EFIntSize(width: 200, height: 200), data: [someData] // مصفوفة الإطارات)للرسوم المتحركة البسيطة، يمكن استخدام ألوان جاهزة. لمزيد من التفاصيل - راجع وثائق المكتبة.
فك تشفير QR Code من صورة
لقراءة رمز QR من صورة أو لقطة شاشة:
import أيضاً في المكتبة
المصادقة والتفويض في Go (Golang): JWT وOAuth2 والجلسات
قوائم المهام في Rust: نظرة عامة على المكتبات للمعالجة غير المتزامنة