ARKit framework-u — Apple-dan genişləndirilmiş reallıq platformasıdır və tərtibatçılara dərin kompüter görmə bilikləri olmadan iOS üçün AR tətbiqləri yaratmağa imkan verir. Apple ARKit Documentation, 2025 məlumatlarına görə, framework xarici markerlər olmadan cihazın kosmosda mövqeyini dəqiq izləmək üçün Visual-Inertial Odometry istifadə edir. Səhnənin semantik dərk edilməsi üfüqi və şaquli müstəviləri tanımağa, işıqlandırmanı təyin etməyə və virtual obyektləri real mühitdə yerləşdirməyə imkan verir.
Əsas məqamlar
ARKit — Apple-dan genişləndirilmiş reallıq framework-u, WWDC 2017-də iOS 11 ilə birlikdə elan edilmişdir. O, kameranın, M-seriyası hərəkət prosessorunun və A-çip neyron mühərrikinin imkanlarını birləşdirərək xüsusi avadanlıq olmadan immersiv AR təcrübəsi yaradır — yalnız iPhone və ya iPad kifayətdir.
ARKit Visual-Inertial Odometry (VIO) texnologiyasından istifadə edir, bu da kameradan və Core Motion inertial sensorlarından məlumatları birləşdirərək cihazın kosmosda hərəkətini dəqiq izləyir. VIO framework-a GPS və ya xarici markerlər olmadan cihazın mühitə nisbətən harada olduğunu anlamağa imkan verir.
Apple WWDC 2024 məlumatlarına görə, ARKit 6 A12 çipi və daha yeni cihazlarda (iPhone XS, iPad Pro 2018+) dəstəklənir. App Store-da AR tətbiqlərinin sayı 15 mini keçib və bütün AR sessiyalarında tanınan müstəvilərin ümumi sahəsi 100 milyard kvadrat metri ötür.
Altı versiya ərzində ARKit əhəmiyyətli təkmilləşdirmələr aldı: ARKit 1.0 (iOS 11) — əsas izləmə və müstəvi tanıma; ARKit 2.0 — ARWorldMap vasitəsilə birgə AR sessiyaları və 3D obyektlərin aşkarlanması; ARKit 3.0 — insan bədəninin izlənməsi, insanların seqmentasiyası və eyni vaxtda ön və arxa kameralar.
ARKit 4.0 LiDAR Scanner-i təqdim etdi ki, bu da obyektlərin dərinliyini və qeyri-şəffaflığını dərhal təyin etməyə, həmçinin AR məzmununu GPS koordinatlarına bağlamaq üçün Location Anchor-a imkan verir. ARKit 6 4K HDR video, LiDAR ilə Plane Estimation və təkmilləşdirilmiş okklyuziya emalı əlavə etdi.
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 konfiqurasiya ilə işə salınan və kameradan video axınını fasiləsiz təhlil edən AR sessiyası dövrü vasitəsilə işləyir. Hər kadrda framework cihazın mövqeyini (6 sərbəstlik dərəcəsi) hesablayır, tanınan müstəvilərin xəritəsini yeniləyir və virtual obyektlərin mövqeyini düzəldir — bütün bunlar saniyədə 60 kadr tezliyində.
VIO prosesi iki paralel axından ibarətdir: vizual odometriya alqoritmi kadrlar arasında xarakterik nöqtələrin (feature points) hərəkətini izləyir, Core Motion inertial sensorları isə kamera sürətli hərəkət edəndə və ya təsvir bulanıq olduqda qısa intervallarda hərəkəti proqnozlaşdırır. İki metodun birləşməsi 1 santimetrə qədər izləmə dəqiqliyi verir.
Apple-a görə, ARKit hər kadrda 500-ə qədər xarakterik nöqtəni emal edir və ətraf mühit xəritəsinin (ARWorldMap) ölçüsü diametri 100 metrə çata bilər. Sessiya başladıqdan sonra ətraf mühiti skan etmək və xəritə qurmaq təxminən 2-3 saniyə çəkir — bu müddət ərzində ARKit kameradan və sensorlardan məlumat toplayır.
ARAnchor — məzmunu yerləşdirmək üçün əsas obyekt. ARKit müstəvini tanıdıqda, səthin mövqeyini, ölçüsünü və oriyentasiyasını göstərən ARPlaneAnchor yaradır. Tərtibatçı session(_:didAdd:) delegatına reaksiya verir və SceneKit və ya RealityKit vasitəsilə müstəvinin aşkarlandığı yerdə 3D obyekti yerləşdirir.
Obyektlərin sürüklənməsi üçün ARHitTestResult istifadə olunur: ekrana toxunduqda ARKit kadrı vasitəsilə hit-test icra edilir, bu da şüanın tanınan müstəvilərlə kəsişmə nöqtəsini qaytarır. Tapılan nöqtə ARAnchor-a çevrilir və obyekt bu mövqedə təsbit edilir.
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 genişləndirilmiş reallığı realistik və funksional edən texnologiyalar dəsti təqdim edir: 6 sərbəstlik dərəcəsi ilə hərəkət izləmə, müstəvilərin və sərhədlərin tanınması vasitəsilə səhnənin dərk edilməsi, kölgələrin düzgün qoyulması üçün işıqlandırmanın qiymətləndirilməsi, insanların okklyuziyası və ətraf mühit xəritələri əsasında əks etdirici səthlər.
Motion Capture (ARKit 3+) — kamera vasitəsilə insan bədəninin real vaxtda izlənməsi texnologiyası. Xarici sensorlar olmadan istifadəçinin hərəkətləri ilə personajları animasiya etməyə imkan verir: 60 Hz tezliyində 18 oynaq tanınır. Fitness tətbiqlərində və animasiya prototipləşdirilməsində istifadə olunur.
Birgə AR sessiyaları (ARKit 2+) bir neçə cihaza eyni virtual obyektləri ümumi məkanda görməyə imkan verir. ARWorldMap ətraf mühit xəritəsini saxlayır və şəbəkə vasitəsilə digər cihazlara ötürülür. Apple sinxronizasiya dəqiqliyi nümunəsi göstərir: bir otaqda iki iPhone 12 Pro obyekti 2 santimetrdən çox olmayan fərqlə görür.
iPhone 12 Pro və daha yeni modellərə quraşdırılmış LiDAR skaneri ARKit-in imkanlarını köklü şəkildə dəyişir. Təsvirlərin təhlili vasitəsilə proqram təminatı ilə dərinliyin təyin edilməsi əvəzinə, LiDAR 5 metrə qədər diapazonda 3 santimetr dəqiqliklə dərhal dərinlik xəritəsi təqdim edir. Bu, ARKit-ə kameranın ilkin skan edilməsi olmadan müstəviləri dərhal tanımağa imkan verir.
LiDAR vasitəsilə ARKit obyektlərin qeyri-şəffaflığını təyin edə bilər: virtual obyekt real kreslo və ya masanın arxasında gizlənə bilər. Bundan əlavə, Scene Reconstruction real vaxtda ətraf mühitin 3D şəbəkəsini qurur — otaq üçün 10 milyon poliqona qədər, bu da toqquşma fizikasının simulyasiyası və realistik işıqlandırma üçün istifadə olunur.
// LiDAR üçün konfiqurasiya
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh
arView.session.run(lidarConfig)
// Müstəviyə toxunmanın aşkarlanması
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 inteqrasiyası minimum tələblərlə başlayır: Xcode 15+, iOS 17 SDK, A12 Bionic çipi və daha yeni cihaz. Info.plist-ə NSCameraUsageDescription açarını əlavə etmək lazımdır — ARKit AR səhnəsini izləmək və göstərmək üçün kameradan istifadə edir. Bu açar olmadan tətbiq AR sessiyasını işə salarkən xəta ilə başa çatacaq.
Məzmunun render edilməsi üçün iOS üç framework təklif edir: SceneKit orta mürəkkəblik səviyyəli 3D qrafika üçün, RealityKit PBR materialları ilə fotorealistik render üçün və Metal maksimum performans üçün. RealityKit — yeni layihələr üçün tövsiyə olunan seçimdir, çünki o, ARKit funksiyaları, animasiya və fizika üçün daxili dəstək ehtiva edir.
Apple-a görə, mövcud tətbiqdə əsas AR ekranının inteqrasiyasının orta vaxtı təcrübəli iOS tərtibatçısı üçün təxminən 2 saatdır. Əsas çətinliklər AR səhnəsinə UI elementlərinin yerləşdirilməsi və AR sessiyasının kəsilmələrinin — zənglər, tətbiqlərin dəyişdirilməsi və ya zəif işıqlandırmada izləmənin itirilməsinin işlənməsi zamanı yaranır.
ARKit bir sıra hallarda izləməni itirə bilər: qeyri-kafi işıqlandırma (100 lux-dan az), xarakterik nöqtələrin olmaması (monoton divarlar), kameranın sürətli hərəkətləri və ya obyektivin örtülməsi. ARSessionDelegate delegatı bu halların işlənməsi üçün metodlar təqdim edir — istifadəçiyə “Cihazı yavaş hərəkət etdirin” və ya “İşıqlandırmanı yandırın” kimi ipucları göstərmək tövsiyə olunur.
Nasazlıqdan sonra bərpa üçün ARKit avtomatik olaraq relokallaşdırmanı işə salır — cari video axını saxlanılmış ətraf mühit xəritəsi ilə uyğunlaşdırmağa çalışır. Relokallaşdırma mümkün deyilsə, sessiya yeni konfiqurasiya ilə yenidən başladılır. Tətbiqdən çıxarkən ARWorldMap-i saxlamaq tövsiyə olunur ki, qayıtdıqda AR səhnəsi tez bərpa olunsun.
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 dayandırıldı")
}
}
Tez-tez verilən suallar
ARKit A12 Bionic çipi və daha yeni Apple cihazlarında işləyir: iPhone XS, XR, 11, 12, 13, 14, 15, 16 və SE (2-ci və 3-cü nəsil), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+. LiDAR funksiyaları üçün iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max və iPad Pro 2020+ tələb olunur.
Bəli, ARKit birbaşa Metal ilə istifadə edilə bilər, lakin bu, öz shader və renderinqin yazılmasını tələb edir. SceneKit və RealityKit framework səviyyəsində ARKit inteqrasiyası ilə hazır həllər təqdim edir. Yeni başlayanlar üçün RealityKit optimal seçimdir, çünki o, ARKit funksiyalarını avtomatik idarə edir.
ARKit avtomatik olaraq səhnənin işıqlandırılmasını kamera vasitəsilə qiymətləndirir və AREnvironmentProbeAnchor vasitəsilə işıq mənbəyinin istiqaməti, intensivliyi və rəng temperaturu haqqında məlumat verir. Bu, virtual obyektlərə düzgün kölgə salmağa və ətraf mühiti əks etdirməyə imkan verərək real dünya ilə realistik birləşmə yaradır.
ARKit yalnız iOS-da işləyir və izləmə üçün Visual-Inertial Odometry istifadə edir, Google-dan ARCore isə Android-də işləyir və IMU və kameraya əsaslanan öz Motion Tracking-indən istifadə edir. ARKit Apple çipləri ilə aparat inteqrasiyası sayəsində üstünlüyə malikdir, ARCore isə Cloud Anchors vasitəsilə çoxplatformalılığa malikdir.
Bəli, ARKit AR oyunları üçün idealdır. SceneKit və RealityKit fizikanı (SCNPhysicsBody, PhysicsSimulation), animasiya, səs və hissəcikləri dəstəkləyir. Tanınmış nümunələr — Pokémon GO (ARKit ilə öz mühərrikini istifadə edir), Angry Birds AR və Lego AR Studio. ARKit həmçinin ARWorldMap vasitəsilə çoxistifadəçili sessiyaları dəstəkləyir.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun