Het ARKit-framework — het augmented reality-platform van Apple waarmee ontwikkelaars AR-apps voor iOS kunnen maken zonder diepgaande kennis van computervisie. Volgens Apple ARKit Documentation, 2025 gebruikt het framework Visual-Inertial Odometry voor het nauwkeurig volgen van de positie van het apparaat in de ruimte zonder externe markers. Semantisch begrip van de scène maakt het mogelijk horizontale en verticale vlakken te herkennen, verlichting te bepalen en virtuele objecten in de echte omgeving te plaatsen.
Belangrijkste punten
ARKit — het augmented reality-framework van Apple, aangekondigd op WWDC 2017 samen met iOS 11. Het combineert de mogelijkheden van de camera, de M-serie bewegingsprocessor en de neurale engine van A-chips om een meeslepende AR-ervaring te creëren zonder gespecialiseerde hardware — alleen een iPhone of iPad is voldoende.
ARKit gebruikt de technologie Visual-Inertial Odometry (VIO), die gegevens van de camera en Core Motion traagheidssensoren combineert voor het nauwkeurig volgen van de beweging van het apparaat in de ruimte. VIO stelt het framework in staat te begrijpen waar het apparaat zich bevindt ten opzichte van de omgeving, zonder GPS of externe markers.
Volgens Apple WWDC 2024 wordt ARKit 6 ondersteund op apparaten met een A12-chip en nieuwer (iPhone XS, iPad Pro 2018+). Het aantal AR-apps in de App Store is de 15.000 gepasseerd en het totale oppervlak van herkende vlakken in alle AR-sessies overschrijdt 100 miljard vierkante meter.
In zes versies heeft ARKit aanzienlijke verbeteringen gekregen: ARKit 1.0 (iOS 11) — basisvolgen en vlakherkenning; ARKit 2.0 — gedeelde AR-sessies via ARWorldMap en detectie van 3D-objecten; ARKit 3.0 — volgen van het menselijk lichaam, segmentatie van personen en gelijktijdige voor- en achtercamera's.
ARKit 4.0 introduceerde LiDAR Scanner voor het onmiddellijk bepalen van diepte en ondoorzichtigheid van objecten, evenals Location Anchor voor het koppelen van AR-inhoud aan GPS-coördinaten. ARKit 6 voegde 4K-video met HDR, Plane Estimation met LiDAR en verbeterde occlusieverwerking toe.
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 werkt via een AR-sessiecyclus, die wordt gestart met een configuratie en continu de videostream van de camera analyseert. Elk frame berekent het framework de positie van het apparaat (6 vrijheidsgraden), werkt het de kaart van herkende vlakken bij en corrigeert het de positie van virtuele objecten — dit alles met een frequentie van 60 frames per seconde.
Het VIO-proces bestaat uit twee parallelle stromen: het visuele odometrie-algoritme volgt de beweging van karakteristieke punten (feature points) tussen frames, en Core Motion traagheidssensoren voorspellen beweging over korte intervallen wanneer de camera snel beweegt of het beeld wazig is. De combinatie van twee methoden geeft een volgnauwkeurigheid tot 1 centimeter.
Volgens Apple verwerkt ARKit tot 500 karakteristieke punten per frame, en de grootte van de omgevingskaart (ARWorldMap) kan een diameter van 100 meter bereiken. Het scannen van de omgeving en het bouwen van de kaart duurt ongeveer 2-3 seconden na het starten van de sessie — gedurende deze tijd verzamelt ARKit gegevens van de camera en sensoren.
ARAnchor — het belangrijkste object voor het plaatsen van inhoud. Wanneer ARKit een vlak herkent, maakt het ARPlaneAnchor met specificatie van de positie, grootte en oriëntatie van het oppervlak. De ontwikkelaar reageert op de delegate session(_:didAdd:) en plaatst het 3D-object op de plaats van vlakdetectie via SceneKit of RealityKit.
Voor het implementeren van slepen van objecten wordt ARHitTestResult gebruikt: bij het aanraken van het scherm wordt een hit-test uitgevoerd door het ARKit-frame, die het snijpunt van de straal met herkende vlakken retourneert. Het gevonden punt wordt omgezet in ARAnchor en het object wordt op deze positie vastgezet.
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 biedt een reeks technologieën die augmented reality realistisch en functioneel maken: bewegingsvolgen met 6 vrijheidsgraden, scènewerkenning door vlak- en grensdetectie, schatting van verlichting voor correcte schaduw, occlusie van personen en reflecterende oppervlakken op basis van omgevingskaarten.
Motion Capture (ARKit 3+) — technologie voor het volgen van het menselijk lichaam in realtime via de camera. Maakt het mogelijk personages te animeren met gebruikersbewegingen zonder externe sensoren: 18 gewrichten worden herkend met een frequentie van 60 Hz. Wordt gebruikt in fitness-apps en voor animatieprototyping.
Gedeelde AR-sessies (ARKit 2+) stellen meerdere apparaten in staat dezelfde virtuele objecten in een gedeelde ruimte te zien. ARWorldMap slaat de omgevingskaart op, die via het netwerk naar andere apparaten wordt verzonden. Apple geeft een voorbeeld van synchronisatienauwkeurigheid: twee iPhone 12 Pro in één kamer zien een object met een afwijking van niet meer dan 2 centimeter.
De LiDAR-scanner, geïnstalleerd op iPhone 12 Pro en nieuwer, verandert de mogelijkheden van ARKit radicaal. In plaats van softwarematige dieptebepaling door beeldanalyse, levert LiDAR onmiddellijk een dieptekaart met een nauwkeurigheid tot 3 centimeter in een bereik tot 5 meter. Hierdoor kan ARKit vlakken onmiddellijk herkennen, zonder voorafgaand scannen met de camera.
Met LiDAR kan ARKit de ondoorzichtigheid van objecten bepalen: een virtueel object kan zich verbergen achter een echte stoel of tafel. Bovendien bouwt Scene Reconstruction een 3D-net van de omgeving in realtime — tot 10 miljoen polygonen per kamer, gebruikt voor simulatie van botsingsfysica en realistische verlichting.
// Configuratie voor LiDAR
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh
arView.session.run(lidarConfig)
// Detectie van aanraking op vlak
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
)
}
Integratie van ARKit begint met minimale vereisten: Xcode 15+, iOS 17 SDK, apparaat met A12 Bionic-chip en nieuwer. In Info.plist moet de sleutel NSCameraUsageDescription worden toegevoegd — ARKit gebruikt de camera voor het volgen en weergeven van de AR-scène. Zonder deze sleutel zal de app crashen bij het starten van een AR-sessie.
Voor het renderen van inhoud biedt iOS drie frameworks: SceneKit voor 3D-graphics van gemiddelde complexiteit, RealityKit voor fotorealistisch renderen met PBR-materialen en Metal voor maximale prestaties. RealityKit — de aanbevolen keuze voor nieuwe projecten, omdat het ingebouwde ondersteuning voor ARKit-functies, animatie en fysica bevat.
Volgens Apple is de gemiddelde tijd voor integratie van een basis-AR-scherm in een bestaande app — ongeveer 2 uur voor een ervaren iOS-ontwikkelaar. De belangrijkste problemen doen zich voor bij het overlappen van UI-elementen op de AR-scène en bij het verwerken van onderbrekingen van de AR-sessie — oproepen, het schakelen van apps of verlies van tracking bij weinig licht.
ARKit kan tracking verliezen in een aantal situaties: onvoldoende verlichting (minder dan 100 lux), afwezigheid van karakteristieke punten (effen muren), snelle bewegingen van de camera of bedekking van de lens. De ARSessionDelegate-delegate biedt methoden voor het afhandelen van deze toestanden — het wordt aanbevolen om de gebruiker tips te tonen: „Beweeg het apparaat langzamer” of „Schakel verlichting in”.
Voor herstel na een storing start ARKit automatisch relokalisatie — het probeert de huidige videostream te matchen met de opgeslagen omgevingskaart. Als relokalisatie niet mogelijk is, wordt de sessie opnieuw gestart met een nieuwe configuratie. Het wordt aanbevolen om ARWorldMap op te slaan bij het verlaten van de app voor snel herstel van de AR-scène bij terugkeer.
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("Sessie onderbroken")
}
}
Veelgestelde vragen
ARKit werkt op Apple-apparaten met A12 Bionic-chip en nieuwer: iPhone XS, XR, 11, 12, 13, 14, 15, 16 en SE (2e en 3e generatie), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+. Voor LiDAR-functies zijn iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max en iPad Pro 2020+ vereist.
Ja, ARKit kan rechtstreeks met Metal worden gebruikt, maar dit vereist het schrijven van een eigen shader en rendering. SceneKit en RealityKit bieden kant-en-klare oplossingen met ARKit-integratie op framework-niveau. Voor beginners is RealityKit de optimale keuze, omdat het automatisch ARKit-functies afhandelt.
ARKit schat automatisch de scèneverlichting via de camera en levert gegevens over de richting, intensiteit en kleurtemperatuur van de lichtbron via AREnvironmentProbeAnchor. Hierdoor kunnen virtuele objecten correct schaduwen werpen en de omgeving reflecteren, waardoor een realistische samensmelting met de echte wereld ontstaat.
ARKit werkt alleen op iOS en gebruikt Visual-Inertial Odometry voor tracking, terwijl ARCore van Google op Android werkt en zijn eigen Motion Tracking op basis van IMU en camera gebruikt. ARKit heeft een voordeel dankzij hardware-integratie met Apple-chips, en ARCore — multiplatform via Cloud Anchors.
Ja, ARKit is ideaal voor AR-games. SceneKit en RealityKit ondersteunen fysica (SCNPhysicsBody, PhysicsSimulation), animatie, geluid en deeltjes. Bekende voorbeelden — Pokémon GO (gebruikt eigen engine met ARKit), Angry Birds AR en Lego AR Studio. ARKit ondersteunt ook multiplayer-sessies via ARWorldMap.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook