ARKit — vad är det, nyckelbegrepp och AR-teknik

Författare: IT Sectr Publicerad: 2026-03-25 Lästid: 8 min

ARKit-ramverket — plattformen för förstärkt verklighet från Apple som gör att utvecklare kan skapa AR-appar för iOS utan djupgående kunskaper i datorseende. Enligt Apple ARKit Documentation, 2025 använder ramverket Visual-Inertial Odometry för att noggrant spåra enhetens position i rymden utan externa markörer. Semantisk förståelse av scenen gör det möjligt att känna igen horisontella och vertikala plan, bestämma belysning och placera virtuella objekt i den verkliga miljön.

Huvudpunkter

  • ARKit — Apples ramverk för förstärkt verklighet på iOS, introducerat 2017 med iOS 11.
  • Motion Tracking — teknik för att spåra enhetens position i rymden utan externa beaconer.
  • Scene Understanding — igenkänning av plan, gränser och objekt i användarens verkliga miljö.
  • ARAnchor — objekt som fixerar positionen för virtuellt innehåll i den verkliga scenen.
  • ARSCNView — huvudklassen för att rendera 3D-innehåll baserat på SceneKit.

Vad är ARKit?

ARKit — Apples ramverk för förstärkt verklighet, tillkännagivet på WWDC 2017 tillsammans med iOS 11. Det kombinerar kamerans, M-seriens rörelseprocessors och A-chipens neurala motors kapacitet för att skapa en immersiv AR-upplevelse utan specialiserad hårdvara — bara iPhone eller iPad räcker.

ARKit använder tekniken Visual-Inertial Odometry (VIO), som kombinerar data från kameran och Core Motion tröghetssensorer för att noggrant spåra enhetens rörelse i rymden. VIO gör det möjligt för ramverket att förstå var enheten befinner sig i förhållande till omgivningen, utan GPS eller externa markörer.

Enligt Apple WWDC 2024 stöds ARKit 6 på enheter med A12-chip och nyare (iPhone XS, iPad Pro 2018+). Antalet AR-appar i App Store har överstigit 15 000 och den totala ytan av igenkända plan i alla AR-sessioner överstiger 100 miljarder kvadratmeter.

ARKits utveckling

Under sex versioner har ARKit fått betydande förbättringar: ARKit 1.0 (iOS 11) — grundläggande spårning och planigenkänning; ARKit 2.0 — delade AR-sessioner via ARWorldMap och detektering av 3D-objekt; ARKit 3.0 — spårning av människokroppen, segmentering av personer och samtidiga fram- och bakkameror.

ARKit 4.0 introducerade LiDAR Scanner för omedelbar bestämning av djup och opacitet hos objekt, samt Location Anchor för att koppla AR-innehåll till GPS-koordinater. ARKit 6 lade till 4K-video med HDR, Plane Estimation med LiDAR och förbättrad ocklusionsbehandling.

swift
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)

Hur ARKit fungerar

ARKit fungerar genom en AR-sessionscykel, som startas med en konfiguration och kontinuerligt analyserar videoströmmen från kameran. Varje bildruta beräknar ramverket enhetens position (6 frihetsgrader), uppdaterar kartan över igenkända plan och korrigerar positionen för virtuella objekt — allt detta med en frekvens på 60 bildrutor per sekund.

VIO-processen består av två parallella strömmar: den visuella odometrialgoritmen spårar rörelsen av karakteristiska punkter (feature points) mellan bildrutor, och Core Motion tröghetssensorer förutsäger rörelse över korta intervall när kameran rör sig snabbt eller bilden är suddig. Kombinationen av två metoder ger en spårningsnoggrannhet på upp till 1 centimeter.

Enligt Apple bearbetar ARKit upp till 500 karakteristiska punkter per bildruta, och storleken på omgivningskartan (ARWorldMap) kan nå 100 meter i diameter. Att skanna omgivningen och bygga kartan tar cirka 2-3 sekunder efter att sessionen startats — under hela denna tid samlar ARKit data från kameran och sensorerna.

ARAnchor och placering av objekt

ARAnchor — nyckelobjektet för att placera innehåll. När ARKit känner igen ett plan skapar det ARPlaneAnchor med angivelse av position, storlek och orientering av ytan. Utvecklaren reagerar på delegaten session(_:didAdd:) och placerar 3D-objektet på platsen för plandetektering via SceneKit eller RealityKit.

För att implementera dragning av objekt används ARHitTestResult: vid beröring av skärmen utförs en hit-test genom ARKit-bildrutan som returnerar skärningspunkten mellan strålen och igenkända plan. Den funna punkten omvandlas till ARAnchor och objektet fixeras i denna position.

swift
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)
}

ARKits viktigaste funktioner

ARKit erbjuder en uppsättning teknologier som gör förstärkt verklighet realistisk och funktionell: rörelsespårning med 6 frihetsgrader, scenförståelse genom igenkänning av plan och gränser, uppskattning av belysning för korrekt skuggläggning, ocklusion av personer och reflekterande ytor baserat på omgivningskartor.

Motion Capture (ARKit 3+) — teknik för att spåra människokroppen i realtid genom kameran. Gör det möjligt att animera karaktärer med användarens rörelser utan externa sensorer: 18 leder känns igen med en frekvens på 60 Hz. Används i fitnessappar och för animationsprototyping.

Delade AR-sessioner (ARKit 2+) gör att flera enheter kan se samma virtuella objekt i ett delat utrymme. ARWorldMap sparar omgivningskartan som överförs till andra enheter via nätverket. Apple ger ett exempel på synkroniseringsnoggrannhet: två iPhone 12 Pro i samma rum ser ett objekt med en avvikelse på högst 2 centimeter.

Arbete med LiDAR

LiDAR-skannern, installerad på iPhone 12 Pro och nyare, förändrar ARKits möjligheter radikalt. Istället för programvarubaserad djupbestämning genom bildanalys, levererar LiDAR omedelbart en djupkarta med en noggrannhet på upp till 3 centimeter inom ett intervall på upp till 5 meter. Detta gör att ARKit kan känna igen plan omedelbart, utan föregående skanning med kameran.

Med LiDAR kan ARKit bestämma opaciteten hos objekt: ett virtuellt objekt kan gömma sig bakom en verklig stol eller ett bord. Dessutom bygger Scene Reconstruction ett 3D-nät av omgivningen i realtid — upp till 10 miljoner polygoner per rum, som används för simulering av kollisionsfysik och realistisk belysning.

swift
// Konfiguration för LiDAR
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh

arView.session.run(lidarConfig)

// Detektering av beröring på 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
        )
}

Integrera ARKit i appen

Integrering av ARKit börjar med minimikrav: Xcode 15+, iOS 17 SDK, enhet med A12 Bionic-chip och nyare. I Info.plist måste nyckeln NSCameraUsageDescription läggas till — ARKit använder kameran för att spåra och visa AR-scenen. Utan denna nyckel kommer appen att avslutas med ett fel vid start av AR-sessionen.

För rendering av innehåll erbjuder iOS tre ramverk: SceneKit för 3D-grafik av medelhög komplexitet, RealityKit för fotorealistisk rendering med PBR-material och Metal för maximal prestanda. RealityKit — det rekommenderade valet för nya projekt, eftersom det innehåller inbyggt stöd för ARKit-funktioner, animering och fysik.

Enligt Apple är genomsnittstiden för integrering av en grundläggande AR-skärm i en befintlig app — cirka 2 timmar för en erfaren iOS-utvecklare. De största svårigheterna uppstår vid arbete med att överlappa UI-element på AR-scenen och vid hantering av avbrott i AR-sessionen — samtal, växling av appar eller förlust av spårning i svagt ljus.

Fel- och störningshantering

ARKit kan förlora spårning i ett antal situationer: otillräcklig belysning (mindre än 100 lux), avsaknad av karakteristiska punkter (enfärgade väggar), snabba kamerarörelser eller övertäckning av linsen. Delegaten ARSessionDelegate tillhandahåller metoder för att hantera dessa tillstånd — det rekommenderas att visa tips för användaren: “Flytta enheten långsammare” eller “Sätt på belysningen”.

För återhämtning efter ett fel startar ARKit automatiskt relokalisering — det försöker matcha den aktuella videoströmmen med den sparade omgivningskartan. Om relokalisering inte är möjlig startas sessionen om med en ny konfiguration. Det rekommenderas att spara ARWorldMap när man lämnar appen för snabb återställning av AR-scenen vid återkomst.

swift
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("Session avbruten")
    }
}

Vanliga frågor

På vilka enheter fungerar ARKit?

ARKit fungerar på Apple-enheter med A12 Bionic-chip och nyare: iPhone XS, XR, 11, 12, 13, 14, 15, 16 och SE (2:a och 3:e generationen), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+. För LiDAR-funktioner krävs iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max och iPad Pro 2020+.

Kan ARKit användas utan SceneKit eller RealityKit?

Ja, ARKit kan användas direkt med Metal, men detta kräver att man skriver sin egen shader och rendering. SceneKit och RealityKit tillhandahåller färdiga lösningar med ARKit-integration på ramverksnivå. För nybörjare är RealityKit det optimala valet eftersom det automatiskt hanterar ARKit-funktioner.

Hur hanterar ARKit förändringar i belysning?

ARKit uppskattar automatiskt scenbelysningen genom kameran och tillhandahåller data om ljuskällans riktning, intensitet och färgtemperatur via AREnvironmentProbeAnchor. Detta gör att virtuella objekt kan kasta skuggor korrekt och reflektera omgivningen, vilket skapar en realistisk sammansmältning med den verkliga världen.

Hur skiljer sig ARKit från ARCore?

ARKit fungerar endast på iOS och använder Visual-Inertial Odometry för spårning, medan ARCore från Google fungerar på Android och använder sin egen Motion Tracking baserad på IMU och kamera. ARKit har en fördel tack vare hårdvaruintegrering med Apple-chips, och ARCore — multiplattform via Cloud Anchors.

Kan ARKit användas för att skapa spel?

Ja, ARKit är idealiskt för AR-spel. SceneKit och RealityKit stödjer fysik (SCNPhysicsBody, PhysicsSimulation), animering, ljud och partiklar. Kända exempel — Pokémon GO (använder egen motor med ARKit), Angry Birds AR och Lego AR Studio. ARKit stödjer även flerspelarsessioner via ARWorldMap.

Sammanfattning

  • ARKit — Apples ramverk för förstärkt verklighet baserat på Visual-Inertial Odometry från 2017.
  • 6 frihetsgrader — noggrann spårning av enhetens position i det tredimensionella rummet.
  • SceneKit och RealityKit — två ramverk för rendering av AR-innehåll med olika komplexitetsnivåer.
  • LiDAR ger omedelbar djupbestämning och omgivningsrekonstruktion på Pro-enheter.
  • Delade sessioner gör att flera användare kan se samma AR-objekt.
  • Motion Capture spårar 18 kroppsleder för animering av karaktärer i realtid.

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också