El framework ARKit es la plataforma de realidad aumentada de Apple que permite a los desarrolladores crear aplicaciones AR para iOS sin conocimientos profundos de visión por computadora. Según Apple ARKit Documentation, 2025, el framework utiliza Visual-Inertial Odometry para el seguimiento preciso de la posición del dispositivo en el espacio sin marcadores externos. La comprensión semántica de la escena permite reconocer planos horizontales y verticales, determinar la iluminación y colocar objetos virtuales en el entorno real.
Puntos clave
ARKit es el framework de realidad aumentada de Apple, anunciado en la WWDC 2017 junto con iOS 11. Combina las capacidades de la cámara, el coprocesador de movimiento de la serie M y el motor neuronal de los chips A para ofrecer una experiencia AR inmersiva sin necesidad de hardware especializado — solo un iPhone o iPad.
ARKit utiliza Visual-Inertial Odometry (VIO), que combina datos de la cámara y los sensores inerciales de Core Motion para rastrear con precisión el movimiento del dispositivo en el espacio. VIO permite al framework comprender dónde se encuentra el dispositivo en relación con su entorno sin usar GPS ni marcadores externos.
Según Apple WWDC 2024, ARKit 6 es compatible con dispositivos con chip A12 y posteriores (iPhone XS, iPad Pro 2018+). El número de aplicaciones AR en la App Store ha superado las 15,000, y el área total de planos reconocidos en todas las sesiones AR supera los 100 mil millones de metros cuadrados.
A lo largo de seis versiones, ARKit ha recibido mejoras significativas: ARKit 1.0 (iOS 11) — seguimiento básico y reconocimiento de planos; ARKit 2.0 — sesiones AR compartidas mediante ARWorldMap y detección de objetos 3D; ARKit 3.0 — seguimiento del cuerpo humano, segmentación de personas y cámaras frontal y trasera simultáneas.
ARKit 4.0 introdujo el escáner LiDAR para la determinación instantánea de profundidad y oclusión de objetos, así como Location Anchor para vincular contenido AR a coordenadas GPS. ARKit 6 añadió video 4K con HDR, Plane Estimation con LiDAR y una mejor gestión de la oclusión.
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 opera a través de un bucle de sesión AR, que se inicia con una configuración y analiza continuamente el flujo de video de la cámara. En cada fotograma, el framework calcula la posición del dispositivo (6 grados de libertad), actualiza el mapa de planos reconocidos y ajusta las posiciones de los objetos virtuales — todo a 60 fotogramas por segundo.
El proceso VIO consta de dos tuberías paralelas: el algoritmo de odometría visual rastrea el movimiento de los puntos característicos entre fotogramas, mientras que los sensores inerciales de Core Motion predicen el movimiento en intervalos cortos cuando la cámara se mueve rápidamente o la imagen está borrosa. La combinación de ambos métodos proporciona una precisión de seguimiento de hasta 1 centímetro.
Según Apple, ARKit procesa hasta 500 puntos característicos por fotograma, y el mapa del entorno (ARWorldMap) puede alcanzar hasta 100 metros de diámetro. El escaneo del entorno y la construcción del mapa toma aproximadamente 2–3 segundos después de iniciar la sesión — durante este tiempo ARKit acumula datos de la cámara y los sensores.
ARAnchor es un objeto clave para colocar contenido. Cuando ARKit reconoce un plano, crea un ARPlaneAnchor que especifica la posición, el tamaño y la orientación de la superficie. El desarrollador responde al delegado session(_:didAdd:) y coloca el objeto 3D en la ubicación del plano detectado usando SceneKit o RealityKit.
Para implementar el arrastre de objetos, se utiliza ARHitTestResult: al tocar la pantalla, se realiza un hit-test a través del fotograma de ARKit, que devuelve el punto de intersección del rayo con los planos reconocidos. El punto encontrado se convierte en un ARAnchor y el objeto se fija en esa posición.
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 proporciona un conjunto de tecnologías que hacen que la realidad aumentada sea realista y funcional: seguimiento de movimiento con 6 grados de libertad, comprensión de la escena mediante el reconocimiento de planos y límites, estimación de iluminación para un sombreado correcto, oclusión de personas y superficies reflectantes basadas en mapas del entorno.
Motion Capture (ARKit 3+) — tecnología para rastrear el cuerpo humano en tiempo real a través de la cámara. Permite animar personajes con los movimientos del usuario sin sensores externos: se reconocen 18 articulaciones a 60 Hz. Se utiliza en aplicaciones de fitness y para la creación de prototipos de animación.
Las sesiones AR compartidas (ARKit 2+) permiten que varios dispositivos vean los mismos objetos virtuales en un espacio compartido. ARWorldMap guarda el mapa del entorno, que se transmite a otros dispositivos a través de la red. Apple cita un ejemplo de precisión de sincronización: dos iPhone 12 Pro en la misma sala ven el objeto con una desviación de no más de 2 centímetros.
El escáner LiDAR, integrado en el iPhone 12 Pro y posteriores, cambia drásticamente las capacidades de ARKit. En lugar de la determinación de profundidad basada en software mediante análisis de imágenes, LiDAR proporciona instantáneamente un mapa de profundidad con una precisión de hasta 3 centímetros en un rango de hasta 5 metros. Esto permite a ARKit reconocer planos al instante, sin escaneo previo de la cámara.
Con LiDAR, ARKit puede determinar la oclusión de objetos: un objeto virtual puede ocultarse detrás de una silla o mesa real. Además, Scene Reconstruction construye una malla 3D del entorno en tiempo real — hasta 10 millones de polígonos por habitación, utilizada para la simulación de física de colisiones y la iluminación realista.
// Configuración para LiDAR
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh
arView.session.run(lidarConfig)
// Detección de toque en plano
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
)
}
La integración de ARKit comienza con los requisitos mínimos: Xcode 15+, SDK de iOS 17, un dispositivo con chip A12 Bionic o superior. Se debe agregar la clave NSCameraUsageDescription en Info.plist — ARKit usa la cámara para el seguimiento y la visualización de la escena AR. Sin esta clave, la aplicación fallará al iniciar una sesión AR.
Para el renderizado de contenido, iOS ofrece tres frameworks: SceneKit para gráficos 3D de complejidad media, RealityKit para renderizado fotorrealista con materiales PBR y Metal para máximo rendimiento. RealityKit es la opción recomendada para nuevos proyectos, ya que incluye soporte integrado para las funciones de ARKit, animación y física.
Según Apple, el tiempo promedio para integrar una pantalla AR básica en una aplicación existente es de aproximadamente 2 horas para un desarrollador iOS experimentado. Las principales dificultades surgen al trabajar con la superposición de elementos de UI en la escena AR y al manejar las interrupciones de la sesión AR — llamadas, cambio de aplicaciones o pérdida de seguimiento con poca luz.
ARKit puede perder el seguimiento en varias situaciones: iluminación insuficiente (menos de 100 lux), falta de puntos característicos (paredes monocromáticas), movimientos rápidos de la cámara u obstrucción del lente. El ARSessionDelegate proporciona métodos para manejar estos estados — se recomienda mostrar indicaciones al usuario: “Mueva el dispositivo más lentamente” o “Encienda la luz.”
Para la recuperación después de un fallo, ARKit inicia automáticamente la reubicación — intenta coincidir el flujo de video actual con el mapa del entorno guardado. Si la reubicación no es posible, la sesión se reinicia con una nueva configuración. Se recomienda guardar el ARWorldMap al salir de la aplicación para una rápida restauración de la escena AR al regresar.
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("Sesión interrumpida")
}
}
Preguntas frecuentes
ARKit funciona en dispositivos Apple con chip A12 Bionic y posteriores: iPhone XS, XR, 11, 12, 13, 14, 15, 16 y SE (2.ª y 3.ª generación), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+. Las funciones LiDAR requieren iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max y iPad Pro 2020+.
Sí, ARKit se puede usar con Metal directamente, pero esto requiere escribir shaders y renderizado personalizados. SceneKit y RealityKit proporcionan soluciones listas para usar con integración de ARKit a nivel de framework. Para principiantes, RealityKit es la opción óptima, ya que maneja automáticamente las funciones de ARKit.
ARKit evalúa automáticamente la iluminación de la escena a través de la cámara y proporciona datos sobre la dirección, intensidad y temperatura de color de la fuente de luz mediante AREnvironmentProbeAnchor. Esto permite que los objetos virtuales proyecten sombras correctamente y reflejen el entorno, creando una fusión realista con el mundo real.
ARKit funciona solo en iOS y utiliza Visual-Inertial Odometry para el seguimiento, mientras que ARCore de Google funciona en Android y utiliza su propio Motion Tracking basado en IMU y cámara. ARKit tiene ventaja gracias a la integración de hardware con los chips de Apple, mientras que ARCore ofrece capacidades multiplataforma a través de Cloud Anchors.
Sí, ARKit es ideal para juegos AR. SceneKit y RealityKit admiten física (SCNPhysicsBody, PhysicsSimulation), animación, sonido y partículas. Ejemplos conocidos incluyen Pokémon GO (usa su propio motor con ARKit), Angry Birds AR y Lego AR Studio. ARKit también admite sesiones multijugador a través de ARWorldMap.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también