ARKit freymvorki — Apple-dan kengaytirilgan reallik platformasi bo'lib, u dasturchilarga chuqur kompyuter ko'rish bilimlarisiz iOS uchun AR ilovalarini yaratish imkonini beradi. Apple ARKit Documentation, 2025 ma'lumotlariga ko'ra, freymvork tashqi markerlarsiz qurilmaning fazodagi o'rnini aniq kuzatish uchun Visual-Inertial Odometry-dan foydalanadi. Sahnaning semantik tushunilishi gorizontal va vertikal tekisliklarni tanib olish, yoritishni aniqlash va virtual obyektlarni real muhitda joylashtirish imkonini beradi.
Asosiy nuqtalar
ARKit — Apple-dan kengaytirilgan reallik freymvorki, WWDC 2017 da iOS 11 bilan birga e'lon qilingan. U kamera, M-seriyali harakat protsessori va A-chip neyron dvigatelining imkoniyatlarini birlashtirib, maxsus uskunasiz immersiv AR tajribasini yaratadi — faqat iPhone yoki iPad yetarli.
ARKit Visual-Inertial Odometry (VIO) texnologiyasidan foydalanadi, u kamera va Core Motion inertial sensorlaridan ma'lumotlarni birlashtirib, qurilmaning fazodagi harakatini aniq kuzatadi. VIO freymvorkka GPS yoki tashqi markerlarsiz qurilmaning muhitga nisbatan qayerda ekanligini tushunish imkonini beradi.
Apple WWDC 2024 ma'lumotlariga ko'ra, ARKit 6 A12 chipi va undan yangi qurilmalarda (iPhone XS, iPad Pro 2018+) qo'llab-quvvatlanadi. App Store-dagi AR ilovalari soni 15 mingdan oshdi va barcha AR sessiyalarida tan olingan tekisliklarning umumiy maydoni 100 milliard kvadrat metrdan oshadi.
Olti versiya davomida ARKit sezilarli yaxshilanishlarni oldi: ARKit 1.0 (iOS 11) — asosiy kuzatish va tekisliklarni tanib olish; ARKit 2.0 — ARWorldMap orqali birgalikdagi AR sessiyalari va 3D obyektlarni aniqlash; ARKit 3.0 — inson tanasini kuzatish, odamlarni segmentatsiyasi va bir vaqtning o'zida old va orqa kameralar.
ARKit 4.0 LiDAR Scanner-ni taqdim etdi, bu obyektlarning chuqurligi va shaffofmasligini bir zumda aniqlash, shuningdek AR tarkibini GPS koordinatalariga bog'lash uchun Location Anchor imkonini beradi. ARKit 6 4K HDR video, LiDAR bilan Plane Estimation va yaxshilangan okklyuziya qayta ishlashni qo'shdi.
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 konfiguratsiya bilan ishga tushiriladigan va kameradan video oqimini uzluksiz tahlil qiladigan AR sessiyasi sikli orqali ishlaydi. Har bir kadrda freymvork qurilmaning o'rnini (6 erkinlik darajasi) hisoblaydi, tan olingan tekisliklar xaritasini yangilaydi va virtual obyektlarning o'rnini tuzatadi — bularning barchasi sekundiga 60 kadr chastotasida.
VIO jarayoni ikkita parallel oqimdan iborat: vizual odometriya algoritmi kadrlar orasidagi xarakterli nuqtalar (feature points) harakatini kuzatadi, Core Motion inertial sensorlari esa kamera tez harakat qilganda yoki tasvir xiralashganda qisqa intervallarda harakatni bashorat qiladi. Ikki usulning birlashishi 1 santimetrgacha kuzatish aniqligini beradi.
Apple-ga ko'ra, ARKit har bir kadrda 500 tagacha xarakterli nuqtani qayta ishlaydi va atrof-muhit xaritasi (ARWorldMap) diametri 100 metrga yetishi mumkin. Sessiya boshlanganidan keyin atrof-muhitni skanerlash va xarita qurish taxminan 2-3 soniya davom etadi — bu vaqt davomida ARKit kamera va sensorlardan ma'lumot to'playdi.
ARAnchor — tarkibni joylashtirish uchun asosiy obyekt. ARKit tekislikni taniganda, sirtning o'rni, o'lchami va yo'nalishini ko'rsatadigan ARPlaneAnchor yaratadi. Dasturchi session(_:didAdd:) delegatiga reaksiya beradi va SceneKit yoki RealityKit orqali tekislik aniqlangan joyda 3D obyektni joylashtiradi.
Obyektlarning sudralishi uchun ARHitTestResult ishlatiladi: ekranga tegilganda ARKit kadri orqali hit-test bajariladi, u nurning tan olingan tekisliklar bilan kesishish nuqtasini qaytaradi. Topilgan nuqta ARAnchor-ga aylantiriladi va obyekt shu holatda mahkamlanadi.
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 kengaytirilgan reallikni realistik va funksional qiladigan texnologiyalar to'plamini taqdim etadi: 6 erkinlik darajasi bilan harakat kuzatuvi, tekisliklar va chegaralarni tanib olish orqali sahnani tushunish, soyalarni to'g'ri qo'yish uchun yoritishni baholash, odamlarning okklyuziyasi va atrof-muhit xaritalari asosida aks ettiruvchi yuzalar.
Motion Capture (ARKit 3+) — kamera orqali inson tanasini real vaqtda kuzatish texnologiyasi. Tashqi sensorlarsiz foydalanuvchi harakatlari bilan personajlarni animatsiya qilish imkonini beradi: 60 Hz chastotada 18 bo'g'in tan olinadi. Fitness ilovalarida va animatsiya prototiplashda ishlatiladi.
Birgalikdagi AR sessiyalari (ARKit 2+) bir nechta qurilmalarga bir xil virtual obyektlarni umumiy fazoda ko'rish imkonini beradi. ARWorldMap atrof-muhit xaritasini saqlaydi va tarmoq orqali boshqa qurilmalarga uzatiladi. Apple sinxronizatsiya aniqligiga misol keltiradi: bitta xonada ikkita iPhone 12 Pro obyektni 2 santimetrdan ko'p bo'lmagan farq bilan ko'radi.
iPhone 12 Pro va undan yangi modellarga o'rnatilgan LiDAR skaneri ARKit imkoniyatlarini tubdan o'zgartiradi. Tasvirlarni tahlil qilish orqali dasturiy chuqurlikni aniqlash o'rniga, LiDAR 5 metrgacha diapazonda 3 santimetr aniqligida bir zumda chuqurlik xaritasini beradi. Bu ARKit-ga kamerani oldindan skanerlamasdan tekisliklarni bir zumda tanib olish imkonini beradi.
LiDAR yordamida ARKit obyektlarning shaffofmasligini aniqlay oladi: virtual obyekt real stul yoki stol orqasida yashirinishi mumkin. Bundan tashqari, Scene Reconstruction real vaqtda atrof-muhitning 3D tarmog'ini quradi — xona uchun 10 million poligongacha, bu to'qnashuv fizikasini simulyatsiya qilish va realistik yoritish uchun ishlatiladi.
// LiDAR uchun konfiguratsiya
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh
arView.session.run(lidarConfig)
// Tekislikka teginishni aniqlash
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 integratsiyasi minimal talablar bilan boshlanadi: Xcode 15+, iOS 17 SDK, A12 Bionic chipi va undan yangi qurilma. Info.plist-ga NSCameraUsageDescription kalitini qo'shish kerak — ARKit AR sahnasini kuzatish va ko'rsatish uchun kameradan foydalanadi. Bu kalitsiz ilova AR sessiyasini ishga tushirishda xato bilan yakunlanadi.
Tarkibni renderlash uchun iOS uchta freymvorkni taklif qiladi: SceneKit o'rta murakkablikdagi 3D grafika uchun, RealityKit PBR materiallari bilan fotorealistik render uchun va Metal maksimal samaradorlik uchun. RealityKit — yangi loyihalar uchun tavsiya etilgan tanlov, chunki u ARKit funksiyalari, animatsiya va fizika uchun o'rnatilgan qo'llab-quvvatlashni o'z ichiga oladi.
Apple-ga ko'ra, mavjud ilovaga asosiy AR ekranini integratsiya qilishning o'rtacha vaqti tajribali iOS dasturchisi uchun taxminan 2 soat. Asosiy qiyinchiliklar AR sahnasiga UI elementlarini joylashtirish va AR sessiyasining uzilishlarini — qo'ng'iroqlar, ilovalarni almashtirish yoki zaif yoritishda kuzatuvni yo'qotishni qayta ishlashda yuzaga keladi.
ARKit bir qator holatlarda kuzatuvni yo'qotishi mumkin: yetarli darajada yoritish (100 lyuksdan kam), xarakterli nuqtalarning yo'qligi (bir xil rangdagi devorlar), kameraning tez harakatlari yoki ob'ektivning yopilishi. ARSessionDelegate delegati bu holatlarni qayta ishlash uchun metodlarni taqdim etadi — foydalanuvchiga “Qurilmani sekinroq harakatlantiring” yoki “Yoritishni yoqing” kabi maslahatlarni ko'rsatish tavsiya etiladi.
Nosozlikdan keyin tiklanish uchun ARKit avtomatik ravishda relokallashuvni ishga tushiradi — joriy video oqimini saqlangan atrof-muhit xaritasi bilan moslashtirishga harakat qiladi. Relokallashuv mumkin bo'lmasa, sessiya yangi konfiguratsiya bilan qayta ishga tushiriladi. Ilovadan chiqishda ARWorldMap-ni saqlash tavsiya etiladi, shunda qaytishda AR sahnasi tez tiklansin.
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("Sessiya to'xtatildi")
}
}
Tez-tez so'raladigan savollar
ARKit A12 Bionic chipi va undan yangi Apple qurilmalarida ishlaydi: iPhone XS, XR, 11, 12, 13, 14, 15, 16 va SE (2 va 3-avlod), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+. LiDAR funksiyalari uchun iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max va iPad Pro 2020+ talab qilinadi.
Ha, ARKit to'g'ridan-to'g'ri Metal bilan ishlatilishi mumkin, ammo bu o'z shader va renderlashni yozishni talab qiladi. SceneKit va RealityKit freymvork darajasida ARKit integratsiyasi bilan tayyor yechimlarni taqdim etadi. Yangi boshlovchilar uchun RealityKit optimal tanlovdir, chunki u ARKit funksiyalarini avtomatik boshqaradi.
ARKit avtomatik ravishda sahna yoritilishini kamera orqali baholaydi va AREnvironmentProbeAnchor orqali yorug'lik manbasining yo'nalishi, intensivligi va rang harorati haqida ma'lumot beradi. Bu virtual obyektlarga to'g'ri soya tashlash va atrof-muhitni aks ettirish imkonini berib, real dunyo bilan realistik birlashma yaratadi.
ARKit faqat iOS-da ishlaydi va kuzatish uchun Visual-Inertial Odometry-dan foydalanadi, Google-dan ARCore esa Android-da ishlaydi va IMU va kameraga asoslangan o'z Motion Tracking-dan foydalanadi. ARKit Apple chiplari bilan apparat integratsiyasi tufayli ustunlikka ega, ARCore esa Cloud Anchors orqali ko'p platformalilikka ega.
Ha, ARKit AR o'yinlari uchun idealdir. SceneKit va RealityKit fizikani (SCNPhysicsBody, PhysicsSimulation), animatsiya, ovoz va zarralarni qo'llab-quvvatlaydi. Taniqli misollar — Pokémon GO (ARKit bilan o'z dvigatelidan foydalanadi), Angry Birds AR va Lego AR Studio. ARKit shuningdek ARWorldMap orqali ko'p foydalanuvchili sessiyalarni qo'llab-quvvatlaydi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.