Framework-ul ARKit — platforma de realitate augmentată de la Apple, care permite dezvoltatorilor să creeze aplicații AR pentru iOS fără cunoștințe profunde de viziune computerizată. Potrivit Apple ARKit Documentation, 2025, framework-ul utilizează Visual-Inertial Odometry pentru urmărirea precisă a poziției dispozitivului în spațiu fără markeri externi. Înțelegerea semantică a scenei permite recunoașterea planurilor orizontale și verticale, determinarea iluminării și amplasarea obiectelor virtuale în mediul real.
Principalele puncte
ARKit — framework-ul de realitate augmentată de la Apple, anunțat la WWDC 2017 împreună cu iOS 11. Acesta combină capacitățile camerei, procesorului de mișcare seria M și motorului neural al cipurilor A pentru a crea o experiență AR imersivă fără a fi nevoie de echipament specializat — doar iPhone sau iPad.
ARKit utilizează tehnologia Visual-Inertial Odometry (VIO), care combină datele de la cameră și senzorii inerțiali Core Motion pentru urmărirea precisă a mișcării dispozitivului în spațiu. VIO permite framework-ului să înțeleagă unde se află dispozitivul față de mediu, fără a utiliza GPS sau markeri externi.
Potrivit Apple WWDC 2024, ARKit 6 este suportat pe dispozitive cu cip A12 și mai noi (iPhone XS, iPad Pro 2018+). Numărul aplicațiilor AR în App Store a depășit 15 mii, iar suprafața totală a planurilor recunoscute în toate sesiunile AR depășește 100 de miliarde de metri pătrați.
În șase versiuni, ARKit a primit îmbunătățiri semnificative: ARKit 1.0 (iOS 11) — urmărire de bază și recunoaștere a planurilor; ARKit 2.0 — sesiuni AR partajate prin ARWorldMap și detectarea obiectelor 3D; ARKit 3.0 — urmărirea corpului uman, segmentarea persoanelor și camere simultane față și spate.
ARKit 4.0 a introdus LiDAR Scanner pentru determinarea instantanee a adâncimii și opacității obiectelor, precum și Location Anchor pentru ancorarea conținutului AR la coordonate GPS. ARKit 6 a adăugat video 4K cu HDR, Plane Estimation cu LiDAR și procesare îmbunătățită a ocluziei.
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 funcționează printr-un ciclu de sesiune AR, care este pornit cu o configurație și analizează continuu fluxul video de la cameră. În fiecare cadru, framework-ul calculează poziția dispozitivului (6 grade de libertate), actualizează harta planurilor recunoscute și corectează poziția obiectelor virtuale — toate acestea la o frecvență de 60 de cadre pe secundă.
Procesul VIO constă din două fluxuri paralele: algoritmul de odometrie vizuală urmărește mișcarea punctelor caracteristice (feature points) între cadre, iar senzorii inerțiali Core Motion prezic mișcarea pe intervale scurte când camera se mișcă rapid sau imaginea este neclară. Combinarea celor două metode oferă o precizie de urmărire de până la 1 centimetru.
Potrivit Apple, ARKit procesează până la 500 de puncte caracteristice per cadru, iar dimensiunea hărții mediului (ARWorldMap) poate atinge 100 de metri în diametru. Scanarea mediului și construirea hărții durează aproximativ 2–3 secunde după pornirea sesiunii — în tot acest timp ARKit colectează date de la cameră și senzori.
ARAnchor — obiectul cheie pentru amplasarea conținutului. Când ARKit recunoaște un plan, creează ARPlaneAnchor cu specificarea poziției, dimensiunii și orientării suprafeței. Dezvoltatorul reacționează la delegatul session(_:didAdd:) și plasează obiectul 3D în locul detectării planului prin SceneKit sau RealityKit.
Pentru implementarea tragerei obiectelor se utilizează ARHitTestResult: la atingerea ecranului se execută un hit-test prin cadrul ARKit, care returnează punctul de intersecție a razei cu planurile recunoscute. Punctul găsit este transformat în ARAnchor, iar obiectul este fixat în această poziție.
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 oferă un set de tehnologii care fac realitatea augmentată realistă și funcțională: urmărirea mișcării cu 6 grade de libertate, înțelegerea scenei prin recunoașterea planurilor și granițelor, estimarea iluminării pentru aplicarea corectă a umbrelor, ocluzia persoanelor și suprafețe reflectorizante bazate pe hărți ale mediului.
Motion Capture (ARKit 3+) — tehnologia de urmărire a corpului uman în timp real prin cameră. Permite animarea personajelor cu mișcările utilizatorului fără senzori externi: se recunosc 18 articulații la o frecvență de 60 Hz. Este utilizată în aplicații de fitness și pentru prototiparea animațiilor.
Sesiunile AR partajate (ARKit 2+) permit mai multor dispozitive să vadă aceleași obiecte virtuale într-un spațiu comun. ARWorldMap salvează harta mediului, care este transmisă altor dispozitive prin rețea. Apple oferă un exemplu de precizie a sincronizării: două iPhone 12 Pro în aceeași cameră văd obiectul cu o diferență de cel mult 2 centimetri.
Scannerul LiDAR, instalat pe iPhone 12 Pro și mai noi, schimbă radical capacitățile ARKit. În locul determinării software a adâncimii prin analiza imaginilor, LiDAR oferă instantaneu o hartă a adâncimii cu o precizie de până la 3 centimetri într-un interval de până la 5 metri. Acest lucru permite ARKit să recunoască planurile instantaneu, fără scanarea prealabilă cu camera.
Cu ajutorul LiDAR, ARKit poate determina opacitatea obiectelor: un obiect virtual se poate ascunde în spatele unui scaun sau al unei mese reale. În plus, Scene Reconstruction construiește o rețea 3D a mediului în timp real — până la 10 milioane de poligoane per cameră, utilizată pentru simularea fizicii coliziunilor și iluminarea realistă.
// Configurare pentru LiDAR
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh
arView.session.run(lidarConfig)
// Detectarea atingerii pe plan
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
)
}
Integrarea ARKit începe cu cerințe minime: Xcode 15+, iOS 17 SDK, dispozitiv cu cip A12 Bionic și mai nou. În Info.plist trebuie adăugată cheia NSCameraUsageDescription — ARKit utilizează camera pentru urmărirea și afișarea scenei AR. Fără această cheie, aplicația se va încheia cu o eroare la pornirea sesiunii AR.
Pentru randarea conținutului, iOS oferă trei framework-uri: SceneKit pentru grafică 3D de complexitate medie, RealityKit pentru randare fotorealistă cu materiale PBR și Metal pentru performanță maximă. RealityKit — alegerea recomandată pentru proiecte noi, deoarece include suport încorporat pentru funcțiile ARKit, animație și fizică.
Potrivit Apple, timpul mediu de integrare a unui ecran AR de bază într-o aplicație existentă — aproximativ 2 ore pentru un dezvoltator iOS experimentat. Principalele dificultăți apar la lucrul cu suprapunerea elementelor UI pe scena AR și la gestionarea întreruperilor sesiunii AR — apeluri, comutarea aplicațiilor sau pierderea urmăririi în iluminare slabă.
ARKit poate pierde urmărirea într-o serie de situații: iluminare insuficientă (sub 100 de lux), absența punctelor caracteristice (pereți uniformi), mișcări rapide ale camerei sau acoperirea lentilei. Delegatul ARSessionDelegate oferă metode pentru gestionarea acestor stări — se recomandă afișarea de sugestii utilizatorului: „Deplasați dispozitivul mai încet” sau „Porniți iluminarea”.
Pentru recuperarea după o defecțiune, ARKit pornește automat relocalizarea — încearcă să potrivească fluxul video curent cu harta salvată a mediului. Dacă relocalizarea nu este posibilă, sesiunea este repornită cu o nouă configurație. Se recomandă salvarea ARWorldMap la ieșirea din aplicație pentru restaurarea rapidă a scenei AR la revenire.
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("Sesiune întreruptă")
}
}
Întrebări frecvente
ARKit funcționează pe dispozitive Apple cu cip A12 Bionic și mai noi: iPhone XS, XR, 11, 12, 13, 14, 15, 16 și SE (generația a 2-a și a 3-a), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+. Pentru funcțiile LiDAR sunt necesare iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max și iPad Pro 2020+.
Da, ARKit poate fi utilizat direct cu Metal, dar aceasta necesită scrierea propriului shader și sistem de randare. SceneKit și RealityKit oferă soluții gata făcute cu integrare ARKit la nivel de framework. Pentru începători, RealityKit este alegerea optimă, deoarece gestionează automat funcțiile ARKit.
ARKit evaluează automat iluminarea scenei prin cameră și oferă date despre direcția, intensitatea și temperatura de culoare a sursei de lumină prin AREnvironmentProbeAnchor. Acest lucru permite obiectelor virtuale să arunce corect umbre și să reflecte mediul, creând o fuziune realistă cu lumea reală.
ARKit funcționează doar pe iOS și utilizează Visual-Inertial Odometry pentru urmărire, în timp ce ARCore de la Google funcționează pe Android și folosește propriul Motion Tracking bazat pe IMU și cameră. ARKit are avantaj datorită integrării hardware cu cipurile Apple, iar ARCore — multiclient prin Cloud Anchors.
Da, ARKit este ideal pentru jocuri AR. SceneKit și RealityKit suportă fizică (SCNPhysicsBody, PhysicsSimulation), animație, sunet și particule. Exemple celebre — Pokémon GO (folosește propriul motor cu ARKit), Angry Birds AR și Lego AR Studio. ARKit suportă și sesiuni multiplayer prin ARWorldMap.
Rezumat
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și