ARKit — cos'è, concetti chiave e tecnologia AR

Autore: IT Sectr Pubblicato: 2026-03-25 Tempo di lettura: 8 min

Il framework ARKit è la piattaforma di realtà aumentata di Apple che consente agli sviluppatori di creare applicazioni AR per iOS senza conoscenze approfondite di visione artificiale. Secondo Apple ARKit Documentation, 2025, il framework utilizza Visual-Inertial Odometry per il tracciamento preciso della posizione del dispositivo nello spazio senza marcatori esterni. La comprensione semantica della scena consente di riconoscere piani orizzontali e verticali, determinare l'illuminazione e posizionare oggetti virtuali nell'ambiente reale.

Punti chiave

  • ARKit — il framework di realtà aumentata di Apple per iOS, presentato nel 2017 con iOS 11.
  • Motion Tracking — tecnologia per tracciare la posizione del dispositivo nello spazio senza beacon esterni.
  • Scene Understanding — riconoscimento di piani, confini e oggetti nell'ambiente reale dell'utente.
  • ARAnchor — un oggetto che fissa la posizione del contenuto virtuale nella scena reale.
  • ARSCNView — la classe principale per il rendering di contenuti 3D basati su SceneKit.

Cos'è ARKit?

ARKit è il framework di realtà aumentata di Apple, annunciato al WWDC 2017 insieme a iOS 11. Combina le capacità della fotocamera, il coprocessore di movimento della serie M e il motore neurale dei chip A per offrire un'esperienza AR immersiva senza necessità di hardware specializzato — solo un iPhone o iPad.

ARKit utilizza Visual-Inertial Odometry (VIO), che combina i dati della fotocamera e dei sensori inerziali di Core Motion per tracciare con precisione il movimento del dispositivo nello spazio. VIO consente al framework di capire dove si trova il dispositivo rispetto all'ambiente circostante senza utilizzare GPS o marcatori esterni.

Secondo Apple WWDC 2024, ARKit 6 è supportato su dispositivi con chip A12 e successivi (iPhone XS, iPad Pro 2018+). Il numero di app AR nell'App Store ha superato le 15.000 e l'area totale dei piani riconosciuti in tutte le sessioni AR supera i 100 miliardi di metri quadrati.

Evoluzione di ARKit

In sei versioni, ARKit ha ricevuto miglioramenti significativi: ARKit 1.0 (iOS 11) — tracciamento di base e riconoscimento dei piani; ARKit 2.0 — sessioni AR condivise tramite ARWorldMap e rilevamento di oggetti 3D; ARKit 3.0 — tracciamento del corpo umano, segmentazione delle persone e fotocamere frontale e posteriore simultanee.

ARKit 4.0 ha introdotto lo scanner LiDAR per la determinazione istantanea della profondità e dell'occlusione degli oggetti, oltre a Location Anchor per collegare il contenuto AR alle coordinate GPS. ARKit 6 ha aggiunto video 4K con HDR, Plane Estimation tramite LiDAR e una migliore gestione dell'occlusione.

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)

Come funziona ARKit

ARKit opera attraverso un ciclo di sessione AR, che si avvia con una configurazione e analizza continuamente il flusso video della fotocamera. Ogni fotogramma, il framework calcola la posizione del dispositivo (6 gradi di libertà), aggiorna la mappa dei piani riconosciuti e regola le posizioni degli oggetti virtuali — tutto a 60 fotogrammi al secondo.

Il processo VIO consiste in due pipeline parallele: l'algoritmo di odometria visiva traccia il movimento dei punti caratteristici tra i fotogrammi, mentre i sensori inerziali di Core Motion prevedono il movimento a brevi intervalli quando la fotocamera si muove rapidamente o l'immagine è sfocata. La combinazione dei due metodi offre una precisione di tracciamento fino a 1 centimetro.

Secondo Apple, ARKit elabora fino a 500 punti caratteristici per fotogramma e la mappa ambientale (ARWorldMap) può raggiungere un diametro fino a 100 metri. La scansione dell'ambiente e la costruzione della mappa richiedono circa 2–3 secondi dopo l'avvio della sessione — durante questo periodo ARKit accumula dati dalla fotocamera e dai sensori.

ARAnchor e posizionamento degli oggetti

ARAnchor è un oggetto chiave per posizionare i contenuti. Quando ARKit riconosce un piano, crea un ARPlaneAnchor specificando la posizione, le dimensioni e l'orientamento della superficie. Lo sviluppatore risponde al delegato session(_:didAdd:) e posiziona l'oggetto 3D nella posizione del piano rilevato utilizzando SceneKit o RealityKit.

Per implementare il trascinamento degli oggetti, viene utilizzato ARHitTestResult: toccando lo schermo, viene eseguito un hit-test attraverso il fotogramma ARKit, che restituisce il punto di intersezione del raggio con i piani riconosciuti. Il punto trovato viene convertito in un ARAnchor e l'oggetto viene fissato in quella posizione.

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

Funzionalità principali di ARKit

ARKit fornisce una serie di tecnologie che rendono la realtà aumentata realistica e funzionale: tracciamento del movimento con 6 gradi di libertà, comprensione della scena attraverso il riconoscimento di piani e confini, stima dell'illuminazione per un ombreggiatura corretta, occlusione delle persone e superfici riflettenti basate su mappe ambientali.

Motion Capture (ARKit 3+) — tecnologia per tracciare il corpo umano in tempo reale attraverso la fotocamera. Consente di animare i personaggi con i movimenti dell'utente senza sensori esterni: 18 articolazioni vengono riconosciute a 60 Hz. Utilizzato in app per il fitness e per il prototyping di animazioni.

Le sessioni AR condivise (ARKit 2+) consentono a più dispositivi di vedere gli stessi oggetti virtuali in uno spazio condiviso. ARWorldMap salva la mappa ambientale, che viene trasmessa ad altri dispositivi tramite rete. Apple cita un esempio di precisione di sincronizzazione: due iPhone 12 Pro nella stessa stanza vedono l'oggetto con uno scostamento non superiore a 2 centimetri.

Lavorare con LiDAR

Lo scanner LiDAR, integrato nell'iPhone 12 Pro e successivi, cambia drasticamente le capacità di ARKit. Invece della determinazione software della profondità attraverso l'analisi delle immagini, LiDAR fornisce istantaneamente una mappa di profondità con una precisione fino a 3 centimetri in un raggio fino a 5 metri. Ciò consente ad ARKit di riconoscere i piani istantaneamente, senza scansione preliminare della fotocamera.

Con LiDAR, ARKit può determinare l'occlusione degli oggetti: un oggetto virtuale può essere nascosto dietro una sedia o un tavolo reale. Inoltre, Scene Reconstruction costruisce una mesh 3D dell'ambiente in tempo reale — fino a 10 milioni di poligoni per stanza, utilizzata per la simulazione fisica delle collisioni e l'illuminazione realistica.

swift
// Configurazione LiDAR
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh

arView.session.run(lidarConfig)

// Rilevamento tocco sul piano
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
        )
}

Integrazione di ARKit in un'app

L'integrazione di ARKit inizia con requisiti minimi: Xcode 15+, SDK iOS 17, un dispositivo con chip A12 Bionic o successivo. È necessario aggiungere la chiave NSCameraUsageDescription in Info.plist — ARKit utilizza la fotocamera per il tracciamento e la visualizzazione della scena AR. Senza questa chiave, l'app si bloccherà all'avvio di una sessione AR.

Per il rendering dei contenuti, iOS offre tre framework: SceneKit per grafica 3D di media complessità, RealityKit per rendering fotorealistico con materiali PBR e Metal per le massime prestazioni. RealityKit è la scelta consigliata per i nuovi progetti poiché include il supporto integrato per le funzionalità ARKit, l'animazione e la fisica.

Secondo Apple, il tempo medio per integrare una schermata AR di base in un'app esistente è di circa 2 ore per uno sviluppatore iOS esperto. Le principali difficoltà sorgono quando si lavora con la sovrapposizione di elementi UI sulla scena AR e nella gestione delle interruzioni della sessione AR — chiamate, cambio di app o perdita di tracciamento in condizioni di scarsa illuminazione.

Gestione degli errori e dei guasti

ARKit può perdere il tracciamento in diverse situazioni: illuminazione insufficiente (meno di 100 lux), mancanza di punti caratteristici (pareti monocolore), movimenti rapidi della fotocamera o ostruzione dell'obiettivo. ARSessionDelegate fornisce metodi per gestire questi stati — si consiglia di mostrare suggerimenti all'utente: “Muovi il dispositivo più lentamente” o “Accendi la luce.”

Per il recupero dopo un guasto, ARKit avvia automaticamente la rilocalizzazione — tenta di far corrispondere il flusso video corrente con la mappa ambientale salvata. Se la rilocalizzazione non è possibile, la sessione si riavvia con una nuova configurazione. Si consiglia di salvare ARWorldMap all'uscita dall'app per un rapido ripristino della scena AR al ritorno.

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("Sessione interrotta")
    }
}

Domande frequenti

Su quali dispositivi funziona ARKit?

ARKit funziona su dispositivi Apple con chip A12 Bionic e successivi: iPhone XS, XR, 11, 12, 13, 14, 15, 16 e SE (2ª e 3ª generazione), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+. Le funzionalità LiDAR richiedono iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max e iPad Pro 2020+.

Si può usare ARKit senza SceneKit o RealityKit?

Sì, ARKit può essere utilizzato direttamente con Metal, ma questo richiede la scrittura di shader e rendering personalizzati. SceneKit e RealityKit forniscono soluzioni pronte all'uso con integrazione ARKit a livello di framework. Per i principianti, RealityKit è la scelta ottimale poiché gestisce automaticamente le funzioni ARKit.

Come gestisce ARKit i cambiamenti di illuminazione?

ARKit valuta automaticamente l'illuminazione della scena attraverso la fotocamera e fornisce dati su direzione, intensità e temperatura di colore della sorgente luminosa tramite AREnvironmentProbeAnchor. Ciò consente agli oggetti virtuali di proiettare correttamente le ombre e riflettere l'ambiente, creando una fusione realistica con il mondo reale.

Qual è la differenza tra ARKit e ARCore?

ARKit funziona solo su iOS e utilizza Visual-Inertial Odometry per il tracciamento, mentre ARCore di Google funziona su Android e utilizza il proprio Motion Tracking basato su IMU e fotocamera. ARKit ha il vantaggio dell'integrazione hardware con i chip Apple, mentre ARCore offre capacità multipiattaforma tramite Cloud Anchors.

Si può usare ARKit per creare giochi?

Sì, ARKit è ideale per i giochi AR. SceneKit e RealityKit supportano la fisica (SCNPhysicsBody, PhysicsSimulation), l'animazione, l'audio e le particelle. Esempi noti includono Pokémon GO (usa il proprio motore con ARKit), Angry Birds AR e Lego AR Studio. ARKit supporta anche sessioni multiplayer tramite ARWorldMap.

Riepilogo

  • ARKit — il framework di realtà aumentata di Apple basato su Visual-Inertial Odometry del 2017.
  • 6 gradi di libertà — tracciamento preciso della posizione del dispositivo nello spazio tridimensionale.
  • SceneKit e RealityKit — due framework per il rendering di contenuti AR con diversi livelli di complessità.
  • LiDAR fornisce determinazione istantanea della profondità e ricostruzione ambientale sui dispositivi Pro.
  • Sessioni condivise consentono a più utenti di vedere gli stessi oggetti AR.
  • Motion Capture traccia 18 articolazioni del corpo per l'animazione dei personaggi in tempo reale.

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche