O framework ARKit é a plataforma de realidade aumentada da Apple que permite aos desenvolvedores criar aplicativos AR para iOS sem conhecimento profundo de visão computacional. De acordo com Apple ARKit Documentation, 2025, o framework usa Visual-Inertial Odometry para rastreamento preciso da posição do dispositivo no espaço sem marcadores externos. A compreensão semântica da cena permite reconhecer planos horizontais e verticais, determinar a iluminação e colocar objetos virtuais no ambiente real.
Pontos principais
ARKit é o framework de realidade aumentada da Apple, anunciado na WWDC 2017 junto com o iOS 11. Ele combina as capacidades da câmera, o coprocessador de movimento da série M e o motor neural dos chips A para oferecer uma experiência AR imersiva sem necessidade de hardware especializado — apenas um iPhone ou iPad.
O ARKit usa Visual-Inertial Odometry (VIO), que combina dados da câmera e sensores inerciais do Core Motion para rastrear com precisão o movimento do dispositivo no espaço. O VIO permite que o framework entenda onde o dispositivo está em relação ao seu ambiente sem usar GPS ou marcadores externos.
De acordo com a Apple WWDC 2024, o ARKit 6 é suportado em dispositivos com chip A12 e posteriores (iPhone XS, iPad Pro 2018+). O número de aplicativos AR na App Store ultrapassou 15.000, e a área total de planos reconhecidos em todas as sessões AR excede 100 bilhões de metros quadrados.
Ao longo de seis versões, o ARKit recebeu melhorias significativas: ARKit 1.0 (iOS 11) — rastreamento básico e reconhecimento de planos; ARKit 2.0 — sessões AR compartilhadas via ARWorldMap e detecção de objetos 3D; ARKit 3.0 — rastreamento do corpo humano, segmentação de pessoas e câmeras frontal e traseira simultâneas.
O ARKit 4.0 introduziu o Scanner LiDAR para determinação instantânea de profundidade e oclusão de objetos, além do Location Anchor para vincular conteúdo AR a coordenadas GPS. O ARKit 6 adicionou vídeo 4K com HDR, Plane Estimation usando LiDAR e melhor gerenciamento de oclusão.
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 através de um loop de sessão AR, que inicia com uma configuração e analisa continuamente o fluxo de vídeo da câmera. A cada quadro, o framework calcula a posição do dispositivo (6 graus de liberdade), atualiza o mapa de planos reconhecidos e ajusta as posições dos objetos virtuais — tudo a 60 quadros por segundo.
O processo VIO consiste em dois pipelines paralelos: o algoritmo de odometria visual rastreia o movimento dos pontos de característica entre os quadros, enquanto os sensores inerciais do Core Motion preveem o movimento em intervalos curtos quando a câmera se move rapidamente ou a imagem está borrada. A combinação dos dois métodos proporciona precisão de rastreamento de até 1 centímetro.
Segundo a Apple, o ARKit processa até 500 pontos de característica por quadro, e o mapa do ambiente (ARWorldMap) pode atingir até 100 metros de diâmetro. A digitalização do ambiente e a construção do mapa levam cerca de 2–3 segundos após o início da sessão — durante esse tempo, o ARKit acumula dados da câmera e dos sensores.
ARAnchor é um objeto chave para posicionar conteúdo. Quando o ARKit reconhece um plano, ele cria um ARPlaneAnchor especificando a posição, o tamanho e a orientação da superfície. O desenvolvedor responde ao delegate session(_:didAdd:) e coloca o objeto 3D no local do plano detectado usando SceneKit ou RealityKit.
Para implementar o arraste de objetos, usa-se ARHitTestResult: ao tocar na tela, um hit-test é realizado através do quadro do ARKit, que retorna o ponto de interseção do raio com os planos reconhecidos. O ponto encontrado é convertido em um ARAnchor, e o objeto é fixado nessa posição.
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 fornece um conjunto de tecnologias que tornam a realidade aumentada realista e funcional: rastreamento de movimento com 6 graus de liberdade, compreensão da cena através do reconhecimento de planos e limites, estimativa de iluminação para sombreamento correto, oclusão de pessoas e superfícies reflexivas baseadas em mapas do ambiente.
Motion Capture (ARKit 3+) — tecnologia para rastrear o corpo humano em tempo real através da câmera. Permite animar personagens com os movimentos do usuário sem sensores externos: 18 articulações são reconhecidas a 60 Hz. Usado em aplicativos de fitness e prototipagem de animação.
Sessões AR compartilhadas (ARKit 2+) permitem que vários dispositivos vejam os mesmos objetos virtuais em um espaço compartilhado. O ARWorldMap salva o mapa do ambiente, que é transmitido para outros dispositivos pela rede. A Apple cita um exemplo de precisão de sincronização: dois iPhones 12 Pro na mesma sala veem o objeto com um desvio de não mais de 2 centímetros.
O scanner LiDAR, integrado ao iPhone 12 Pro e posteriores, muda drasticamente as capacidades do ARKit. Em vez da determinação de profundidade baseada em software através de análise de imagem, o LiDAR fornece instantaneamente um mapa de profundidade com precisão de até 3 centímetros em um alcance de até 5 metros. Isso permite que o ARKit reconheça planos instantaneamente, sem digitalização prévia da câmera.
Com o LiDAR, o ARKit pode determinar a oclusão de objetos: um objeto virtual pode ser ocultado atrás de uma cadeira ou mesa real. Além disso, a Scene Reconstruction constrói uma malha 3D do ambiente em tempo real — até 10 milhões de polígonos por sala, usada para simulação de física de colisões e iluminação realista.
// Configuração para LiDAR
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh
arView.session.run(lidarConfig)
// Detecção de toque no 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
)
}
A integração do ARKit começa com requisitos mínimos: Xcode 15+, SDK do iOS 17, um dispositivo com chip A12 Bionic ou superior. A chave NSCameraUsageDescription deve ser adicionada ao Info.plist — o ARKit usa a câmera para rastreamento e exibição da cena AR. Sem essa chave, o aplicativo travará ao iniciar uma sessão AR.
Para renderização de conteúdo, o iOS oferece três frameworks: SceneKit para gráficos 3D de complexidade média, RealityKit para renderização fotorrealista com materiais PBR e Metal para máximo desempenho. O RealityKit é a escolha recomendada para novos projetos, pois inclui suporte integrado para recursos do ARKit, animação e física.
Segundo a Apple, o tempo médio para integrar uma tela AR básica em um aplicativo existente é de cerca de 2 horas para um desenvolvedor iOS experiente. As principais dificuldades surgem ao trabalhar com sobreposição de elementos de UI na cena AR e ao lidar com interrupções da sessão AR — chamadas, troca de aplicativos ou perda de rastreamento com pouca luz.
O ARKit pode perder o rastreamento em várias situações: iluminação insuficiente (menos de 100 lux), falta de pontos de característica (paredes monocromáticas), movimentos rápidos da câmera ou obstrução da lente. O ARSessionDelegate fornece métodos para lidar com esses estados — recomenda-se mostrar dicas ao usuário: “Movimente o dispositivo mais devagar” ou “Ligue a luz.”
Para recuperação após uma falha, o ARKit inicia automaticamente a relocalização — ele tenta corresponder o fluxo de vídeo atual com o mapa do ambiente salvo. Se a relocalização não for possível, a sessão é reiniciada com uma nova configuração. Recomenda-se salvar o ARWorldMap ao sair do aplicativo para rápida restauração da cena AR ao retornar.
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("Sessão interrompida")
}
}
Perguntas frequentes
O ARKit funciona em dispositivos Apple com chip A12 Bionic e posteriores: iPhone XS, XR, 11, 12, 13, 14, 15, 16 e SE (2ª e 3ª geração), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+. Os recursos LiDAR exigem iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max e iPad Pro 2020+.
Sim, o ARKit pode ser usado diretamente com Metal, mas isso requer a escrita de shaders e renderização personalizados. O SceneKit e o RealityKit fornecem soluções prontas com integração do ARKit no nível do framework. Para iniciantes, o RealityKit é a melhor escolha, pois lida automaticamente com as funções do ARKit.
O ARKit avalia automaticamente a iluminação da cena através da câmera e fornece dados sobre direção, intensidade e temperatura de cor da fonte de luz através do AREnvironmentProbeAnchor. Isso permite que objetos virtuais projetem sombras corretamente e reflitam o ambiente, criando uma fusão realista com o mundo real.
ARKit funciona apenas no iOS e usa Visual-Inertial Odometry para rastreamento, enquanto o ARCore do Google funciona no Android e usa seu próprio Motion Tracking baseado em IMU e câmera. O ARKit tem vantagem devido à integração de hardware com os chips da Apple, enquanto o ARCore oferece capacidade multiplataforma através do Cloud Anchors.
Sim, o ARKit é ideal para jogos AR. O SceneKit e o RealityKit suportam física (SCNPhysicsBody, PhysicsSimulation), animação, som e partículas. Exemplos conhecidos incluem Pokémon GO (usa seu próprio motor com ARKit), Angry Birds AR e Lego AR Studio. O ARKit também oferece suporte a sessões multijogador via ARWorldMap.
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.
Leia também