إطار عمل ARKit هو منصة الواقع المعزز من Apple التي تتيح للمطورين إنشاء تطبيقات AR لنظام iOS دون معرفة عميقة برؤية الكمبيوتر. وفقًا لـ Apple ARKit Documentation, 2025، يستخدم الإطار Visual-Inertial Odometry لتتبع دقيق لموضع الجهاز في الفضاء دون علامات خارجية. الفهم الدلالي للمشهد يسمح بالتعرف على المستويات الأفقية والرأسية، وتحديد الإضاءة، ووضع الكائنات الافتراضية في البيئة الحقيقية.
النقاط الرئيسية
ARKit هو إطار عمل الواقع المعزز من Apple، تم الإعلان عنه في WWDC 2017 مع iOS 11. يجمع بين إمكانيات الكاميرا، ومعالج الحركة من سلسلة M، والمحرك العصبي لرقائق A لتقديم تجربة AR غامرة دون الحاجة إلى أجهزة متخصصة — فقط iPhone أو iPad.
يستخدم ARKit Visual-Inertial Odometry (VIO)، الذي يجمع بيانات من الكاميرا وأجهزة الاستشعار بالقصور الذاتي من Core Motion لتتبع حركة الجهاز بدقة في الفضاء. يسمح VIO للإطار بفهم مكان الجهاز بالنسبة لبيئته دون استخدام GPS أو علامات خارجية.
وفقًا لـ Apple WWDC 2024، ARKit 6 مدعوم على الأجهزة المزودة برقاقة A12 وما أحدث (iPhone XS، iPad Pro 2018+). تجاوز عدد تطبيقات AR في App Store 15,000، وتتجاوز المساحة الإجمالية للمستويات المعترف بها عبر جميع جلسات AR 100 مليار متر مربع.
على مدار ستة إصدارات، تلقى ARKit تحسينات كبيرة: ARKit 1.0 (iOS 11) — تتبع أساسي والتعرف على المستويات؛ ARKit 2.0 — جلسات AR مشتركة عبر ARWorldMap واكتشاف الكائنات ثلاثية الأبعاد؛ ARKit 3.0 — تتبع جسم الإنسان، وتجزئة الأشخاص، والكاميرات الأمامية والخلفية المتزامنة.
قدم ARKit 4.0 ماسح LiDAR لتحديد العمق الفوري وإخفاء الكائنات، بالإضافة إلى Location Anchor لربط محتوى AR بإحداثيات GPS. أضاف ARKit 6 فيديو 4K مع HDR، وتقدير المستوى باستخدام LiDAR، وتحسين معالجة الإخفاء.
import ARKit
let configuration = ARWorldTrackingConfiguration()
configuration.planeDetection = [.horizontal, .vertical]
configuration.environmentTexturing = .automatic
let arView = ARSCNView(frame: view.bounds)
arView.session.run(configuration)
arView.debugOptions = [.showFeaturePoints]
view.addSubview(arView)
ARKit يعمل من خلال حلقة جلسة AR، تبدأ بتكوين وتقوم بتحليل مستمر لتدفق الفيديو من الكاميرا. في كل إطار، يحسب الإطار موضع الجهاز (6 درجات من الحرية)، ويحدث خريطة المستويات المعترف بها، ويضبط مواضع الكائنات الافتراضية — كل ذلك بمعدل 60 إطارًا في الثانية.
تتكون عملية VIO من مسارين متوازيين: خوارزمية التشفير البصري تتبع حركة النقاط المميزة بين الإطارات، بينما تتنبأ أجهزة الاستشعار بالقصور الذاتي من Core Motion بالحركة على فترات قصيرة عندما تتحرك الكاميرا بسرعة أو تكون الصورة غير واضحة. يؤدي الجمع بين الطريقتين إلى دقة تتبع تصل إلى 1 سنتيمتر.
وفقًا لـ Apple، ARKit يعالج ما يصل إلى 500 نقطة مميزة لكل إطار، ويمكن أن يصل قطر خريطة البيئة (ARWorldMap) إلى 100 متر. يستغرق مسح البيئة وبناء الخريطة حوالي 2–3 ثوانٍ بعد بدء الجلسة — خلال هذا الوقت يقوم ARKit بتجميع البيانات من الكاميرا وأجهزة الاستشعار.
ARAnchor هو كائن رئيسي لوضع المحتوى. عندما يتعرف ARKit على مستوى، يقوم بإنشاء ARPlaneAnchor يحدد موضع وحجم واتجاه السطح. يستجيب المطور للمفوض session(_:didAdd:) ويضع الكائن ثلاثي الأبعاد في موقع المستوى المكتشف باستخدام SceneKit أو RealityKit.
لتنفيذ سحب الكائنات، يتم استخدام ARHitTestResult: عند لمس الشاشة، يتم إجراء اختبار التقاطع عبر إطار ARKit، والذي يعيد نقطة تقاطع الشعاع مع المستويات المعترف بها. يتم تحويل النقطة التي تم العثور عليها إلى ARAnchor، ويتم تثبيت الكائن في هذا الموضع.
func renderer(
_ renderer: SCNSceneRenderer,
didAdd node: SCNNode,
for anchor: ARAnchor
) {
guard let planeAnchor = anchor
as? ARPlaneAnchor else { return }
let boxNode = SCNNode(
geometry: SCNBox(
width: planeAnchor.extent.x,
height: 0.01,
length: planeAnchor.extent.z,
chamferRadius: 0
)
)
node.addChildNode(boxNode)
}
ARKit يوفر مجموعة من التقنيات التي تجعل الواقع المعزز واقعيًا وعمليًا: تتبع الحركة بست درجات من الحرية، وفهم المشهد من خلال التعرف على المستويات والحدود، وتقدير الإضاءة للظلال الصحيحة، وإخفاء الأشخاص، والأسطح العاكسة بناءً على خرائط البيئة.
التقاط الحركة (ARKit 3+) — تقنية تتبع جسم الإنسان في الوقت الفعلي من خلال الكاميرا. تتيح تحريك الشخصيات بحركات المستخدم بدون أجهزة استشعار خارجية: يتم التعرف على 18 مفصلًا بتردد 60 هرتز. تُستخدم في تطبيقات اللياقة البدنية ونمذجة الرسوم المتحركة.
جلسات AR المشتركة (ARKit 2+) تسمح لعدة أجهزة برؤية نفس الكائنات الافتراضية في مساحة مشتركة. ARWorldMap يحفظ خريطة البيئة، والتي يتم نقلها إلى الأجهزة الأخرى عبر الشبكة. تستشهد Apple بمثال دقة المزامنة: جهازا iPhone 12 Pro في نفس الغرفة يريان الكائن بانحراف لا يتجاوز 2 سنتيمتر.
ماسح LiDAR، المدمج في iPhone 12 Pro والأحدث، يغير بشكل جذري قدرات ARKit. بدلاً من تحديد العمق القائم على البرامج من خلال تحليل الصور، يوفر LiDAR على الفور خريطة عمق بدقة تصل إلى 3 سنتيمترات في نطاق يصل إلى 5 أمتار. يتيح ذلك لـ ARKit التعرف على المستويات فورًا، دون مسح أولي بالكاميرا.
باستخدام LiDAR، يمكن لـ ARKit تحديد إخفاء الكائنات: يمكن إخفاء كائن افتراضي خلف كرسي أو طاولة حقيقي. بالإضافة إلى ذلك، تقوم Scene Reconstruction ببناء شبكة ثلاثية الأبعاد للبيئة في الوقت الفعلي — تصل إلى 10 ملايين مضلع لكل غرفة، تُستخدم لمحاكاة فيزياء التصادم والإضاءة الواقعية.
// تكوين LiDAR
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh
arView.session.run(lidarConfig)
// كشف النقر على المستوى
override func touchesBegan(
_ touches: Set<UITouch>,
with event: UIEvent?
) {
let location = touches.first?.location(in: arView)
guard let hitPoint = location else { return }
let results = arView
.raycastQuery(
from: hitPoint,
allowing: .existingPlaneInfinite,
alignment: .horizontal
)
}
يبدأ دمج ARKit بالحد الأدنى من المتطلبات: Xcode 15+، SDK iOS 17، جهاز برقاقة A12 Bionic أو أحدث. يجب إضافة مفتاح NSCameraUsageDescription في Info.plist — يستخدم ARKit الكاميرا للتتبع وعرض مشهد AR. بدون هذا المفتاح، سيتعطل التطبيق عند بدء جلسة AR.
لعرض المحتوى، يقدم iOS ثلاثة أطر عمل: SceneKit للرسومات ثلاثية الأبعاد متوسطة التعقيد، RealityKit للعرض الفوتوغرافي الواقعي بمواد PBR، وMetal للأداء الأقصى. RealityKit هو الخيار الموصى به للمشاريع الجديدة لأنه يتضمن دعمًا مدمجًا لميزات ARKit والرسوم المتحركة والفيزياء.
وفقًا لـ Apple، متوسط الوقت لدمج شاشة AR أساسية في تطبيق موجود هو حوالي ساعتين لمطور iOS متمرس. تنشأ الصعوبات الرئيسية عند العمل مع تراكب عناصر واجهة المستخدم على مشهد AR ومعالجة انقطاعات جلسة AR — المكالمات، تبديل التطبيقات، أو فقدان التتبع في الإضاءة المنخفضة.
قد يفقد ARKit التتبع في عدة حالات: إضاءة غير كافية (أقل من 100 لوكس)، عدم وجود نقاط مميزة (جدران أحادية اللون)، حركات كاميرا سريعة، أو انسداد العدسة. يوفر ARSessionDelegate طرقًا لمعالجة هذه الحالات — يوصى بعرض تلميحات للمستخدم: «حرك الجهاز بشكل أبطأ» أو «شغّل الضوء.»
للاسترداد بعد العطل، يبدأ ARKit تلقائيًا إعادة التموضع — يحاول مطابقة تدفق الفيديو الحالي مع خريطة البيئة المحفوظة. إذا كانت إعادة التموضع غير ممكنة، يتم إعادة تشغيل الجلسة بتكوين جديد. يوصى بحفظ ARWorldMap عند الخروج من التطبيق لاستعادة سريعة لمشهد AR عند العودة.
class ARViewController: UIViewController {
let arView = ARSCNView()
override func viewDidLoad() {
super.viewDidLoad()
arView.session.delegate = self
let config = ARWorldTrackingConfiguration()
config.planeDetection = [.horizontal]
config.frameSemantics = .personSegmentation
arView.session.run(config)
}
func sessionWasInterrupted(
_ session: ARSession
) {
showAlert("تمت مقاطعة الجلسة")
}
}
الأسئلة الشائعة
يعمل ARKit على أجهزة Apple المزودة برقاقة A12 Bionic وأحدث: iPhone XS، XR، 11، 12، 13، 14، 15، 16 وSE (الجيل الثاني والثالث)، iPad Pro 2018+، iPad Air 2020+، iPad mini 2021+. تتطلب ميزات LiDAR iPhone 12 Pro/Pro Max، iPhone 13 Pro/Pro Max، iPhone 14 Pro/Pro Max، iPhone 15 Pro/Pro Max وiPad Pro 2020+.
نعم، يمكن استخدام ARKit مع Metal مباشرة، لكن هذا يتطلب كتابة shaders وعرض مخصصين. SceneKit وRealityKit يقدمان حلولاً جاهزة مع تكامل ARKit على مستوى الإطار. للمبتدئين، RealityKit هو الخيار الأمثل لأنه يعالج تلقائيًا وظائف ARKit.
يقوم ARKit تلقائيًا بتقييم إضاءة المشهد من خلال الكاميرا ويوفر بيانات حول اتجاه وشدة ودرجة حرارة لون مصدر الضوء عبر AREnvironmentProbeAnchor. يتيح ذلك للكائنات الافتراضية إسقاط الظلال بشكل صحيح وعكس البيئة، مما يخلق اندماجًا واقعيًا مع العالم الحقيقي.
ARKit يعمل فقط على iOS ويستخدم Visual-Inertial Odometry للتتبع، بينما يعمل ARCore من Google على Android ويستخدم Motion Tracking الخاص به استنادًا إلى IMU والكاميرا. يتمتع ARKit بميزة بفضل التكامل المادي مع رقائق Apple، بينما يقدم ARCore إمكانيات عبر المنصات من خلال Cloud Anchors.
نعم، ARKit مثالي لألعاب AR. يدعم SceneKit وRealityKit الفيزياء (SCNPhysicsBody، PhysicsSimulation)، والرسوم المتحركة، والصوت، والجسيمات. تشمل الأمثلة المعروفة Pokémon GO (يستخدم محركه الخاص مع ARKit)، Angry Birds AR وLego AR Studio. يدعم ARKit أيضًا جلسات متعددة اللاعبين عبر ARWorldMap.
الخلاصة
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.