ARKit — что это, ключевые понятия и технология AR

Автор: IT Sectr Опубликовано: 2026-03-25 Время чтения: 8 мин

Фреймворк ARKit — платформа дополненной реальности от Apple, которая позволяет разработчикам создавать AR-приложения для iOS без глубоких знаний компьютерного зрения. По данным Apple ARKit Documentation, 2025, фреймворк использует Visual-Inertial Odometry для точного отслеживания положения устройства в пространстве без внешних маркеров. Семантическое понимание сцены позволяет распознавать горизонтальные и вертикальные плоскости, определять освещение и размещать виртуальные объекты в реальном окружении.

Главное

  • ARKit — фреймворк Apple для дополненной реальности на iOS, представленный в 2017 году с iOS 11.
  • Motion Tracking — технология отслеживания положения устройства в пространстве без внешних маяков.
  • Scene Understanding — распознавание плоскостей, границ и объектов в реальном окружении пользователя.
  • ARAnchor — объект, фиксирующий положение виртуального контента в реальной сцене.
  • ARSCNView — основной класс для рендеринга 3D-контента на основе SceneKit.

Что такое ARKit?

ARKit — фреймворк дополненной реальности от Apple, анонсированный на WWDC 2017 вместе с iOS 11. Он объединяет возможности камеры, процессора движения M-серии и нейронного движка A-чипов для создания иммерсивного AR-опыта без необходимости в специализированном оборудовании — только iPhone или iPad.

ARKit использует технологию Visual-Inertial Odometry (VIO), которая объединяет данные с камеры и инерциальных датчиков Core Motion для точного отслеживания движения устройства в пространстве. VIO позволяет фреймворку понимать, где находится устройство относительно окружения, без использования GPS или внешних маркеров.

По данным Apple WWDC 2024, ARKit 6 поддерживается на устройствах с чипом A12 и новее (iPhone XS, iPad Pro 2018+). Количество AR-приложений в App Store превысило 15 тысяч, а общая площадь распознанных плоскостей во всех AR-сессиях превышает 100 миллиардов квадратных метров.

Эволюция ARKit

За шесть версий ARKit получил значительные улучшения: ARKit 1.0 (iOS 11) — базовое отслеживание и распознавание плоскостей; ARKit 2.0 — совместные AR-сессии через ARWorldMap и обнаружение 3D-объектов; ARKit 3.0 — отслеживание тела человека, сегментация людей и одновременные камеры переднего и заднего вида.

ARKit 4.0 представил LiDAR Scanner для мгновенного определения глубины и непрозрачности объектов, а также Location Anchor для привязки AR-контента к GPS-координатам. ARKit 6 добавил 4K-видео с HDR, Plane Estimation с помощью LiDAR и улучшенную обработку окклюзии.

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)

Как работает ARKit

ARKit работает через цикл AR-сессии, которая запускается с конфигурацией и непрерывно анализирует видеопоток с камеры. Каждый кадр фреймворк вычисляет положение устройства (6 степеней свободы), обновляет карту распознанных плоскостей и корректирует положение виртуальных объектов — всё это с частотой 60 кадров в секунду.

Процесс VIO состоит из двух параллельных потоков: алгоритм визуальной одометрии отслеживает движение характерных точек (feature points) между кадрами, а инерциальные датчики Core Motion предсказывают движение на коротких интервалах, когда камера быстро перемещается или изображение размыто. Объединение двух методов даёт точность отслеживания до 1 сантиметра.

По данным Apple, ARKit обрабатывает до 500 характерных точек на кадр, а размер карты окружения (ARWorldMap) может достигать 100 метров в диаметре. Для сканирования окружения и построения карты требуется около 2–3 секунд после запуска сессии — всё это время ARKit накапливает данные с камеры и датчиков.

ARAnchor и размещение объектов

ARAnchor — ключевой объект для размещения контента. Когда ARKit распознаёт плоскость, он создаёт ARPlaneAnchor с указанием положения, размера и ориентации поверхности. Разработчик реагирует на делегат session(_:didAdd:) и размещает 3D-объект в месте обнаружения плоскости через SceneKit или RealityKit.

Для реализации перетаскивания объектов используется ARHitTestResult: при касании экрана выполняется hit-test через кадр ARKit, который возвращает точку пересечения луча с распознанными плоскостями. Найденная точка преобразуется в ARAnchor, и объект фиксируется в этом положении.

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

Ключевые возможности ARKit

ARKit предоставляет набор технологий, которые делают дополненную реальность реалистичной и функциональной: отслеживание движения с 6 степенями свободы, понимание сцены через распознавание плоскостей и границ, оценка освещения для корректного наложения теней, окклюзия людей и рефлексирующие поверхности на основе карт окружения.

Motion Capture (ARKit 3+) — технология отслеживания тела человека в реальном времени через камеру. Позволяет анимировать персонажей движениями пользователя без внешних датчиков: распознаётся 18 суставов с частотой 60 Гц. Используется в фитнес-приложениях и для прототипирования анимации.

Совместные AR-сессии (ARKit 2+) позволяют нескольким устройствам видеть одни и те же виртуальные объекты в общем пространстве. ARWorldMap сохраняет карту окружения, которая передаётся другим устройствам через сеть. Apple приводит пример точности синхронизации: два iPhone 12 Pro в одной комнате видят объект с расхождением не более 2 сантиметров.

Работа с LiDAR

LiDAR-сканер, установленный на iPhone 12 Pro и новее, кардинально меняет возможности ARKit. Вместо программного определения глубины через анализ изображений, LiDAR мгновенно выдаёт карту глубины с точностью до 3 сантиметров в диапазоне до 5 метров. Это позволяет ARKit распознавать плоскости мгновенно, без предварительного сканирования камерой.

С помощью LiDAR ARKit может определять непрозрачность объектов: виртуальный объект может скрываться за реальным креслом или столом. Кроме того, Scene Reconstruction строит 3D-сетку окружения в реальном времени — до 10 миллионов полигонов на комнату, что используется для симуляции физики столкновений и реалистичного освещения.

swift
// Конфигурация для LiDAR
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh

arView.session.run(lidarConfig)

// Детекция касания по плоскости
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
        )
}

Интеграция ARKit в приложение

Интеграция ARKit начинается с минимальных требований: Xcode 15+, iOS 17 SDK, устройство с чипом A12 Bionic и новее. В Info.plist необходимо добавить ключ NSCameraUsageDescription — ARKit использует камеру для отслеживания и отображения AR-сцены. Без этого ключа приложение завершится с ошибкой при запуске AR-сессии.

Для рендеринга контента iOS предлагает три фреймворка: SceneKit для 3D-графики среднего уровня сложности, RealityKit для фотореалистичного рендеринга с PBR-материалами и Metal для максимальной производительности. RealityKit — рекомендуемый выбор для новых проектов, так как он включает встроенную поддержку ARKit-функций, анимации и физики.

По данным Apple, среднее время интеграции базового AR-экрана в существующее приложение — около 2 часов для опытного iOS-разработчика. Основные сложности возникают при работе с наложением UI-элементов на AR-сцену и при обработке перерывов AR-сессии — звонков, переключения приложений или потери отслеживания при слабом освещении.

Обработка ошибок и сбоев

ARKit может терять отслеживание в ряде ситуаций: недостаточное освещение (менее 100 люкс), отсутствие характерных точек (однотонные стены), быстрые движения камеры или перекрытие объектива. Делегат ARSessionDelegate предоставляет методы для обработки этих состояний — рекомендуется показывать пользователю подсказки: "Перемещайте устройство медленнее" или "Включите освещение".

Для восстановления после сбоя ARKit автоматически запускает релокализацию — пытается сопоставить текущий видеопоток с сохранённой картой окружения. Если релокализация невозможна, сессия перезапускается с новой конфигурацией. Рекомендуется сохранять ARWorldMap при выходе из приложения для быстрого восстановления AR-сцены при возврате.

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("Сессия прервана")
    }
}

Часто задаваемые вопросы

На каких устройствах работает ARKit?

ARKit работает на устройствах Apple с чипом A12 Bionic и новее: iPhone XS, XR, 11, 12, 13, 14, 15, 16 и SE (2-го и 3-го поколения), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+. Для LiDAR-функций требуются iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max и iPad Pro 2020+.

Можно ли использовать ARKit без SceneKit или RealityKit?

Да, ARKit можно использовать с Metal напрямую, но это требует написания собственного шейдера и рендеринга. SceneKit и RealityKit предоставляют готовые решения с интеграцией ARKit на уровне фреймворка. Для новичков RealityKit — оптимальный выбор, так как он автоматически обрабатывает ARKit-функции.

Как ARKit обрабатывает изменение освещения?

ARKit автоматически оценивает освещение сцены через камеру и предоставляет данные о направлении, интенсивности и цветовой температуре источника света через AREnvironmentProbeAnchor. Это позволяет виртуальным объектам корректно отбрасывать тени и отражать окружение, создавая реалистичное слияние с реальным миром.

Чем ARKit отличается от ARCore?

ARKit работает только на iOS и использует Visual-Inertial Odometry для отслеживания, тогда как ARCore от Google работает на Android и использует собственный Motion Tracking на основе IMU и камеры. ARKit имеет преимущество благодаря аппаратной интеграции с чипами Apple, а ARCore — кроссплатформенность через Cloud Anchors.

Можно ли использовать ARKit для создания игр?

Да, ARKit идеально подходит для AR-игр. SceneKit и RealityKit поддерживают физику (SCNPhysicsBody, PhysicsSimulation), анимацию, звук и частицы. Известные примеры — Pokémon GO (использует собственный движок с ARKit), Angry Birds AR и Lego AR Studio. ARKit также поддерживает многопользовательские сессии через ARWorldMap.

Итоги

  • ARKit — фреймворк дополненной реальности Apple на базе Visual-Inertial Odometry от 2017 года.
  • 6 степеней свободы — точное отслеживание положения устройства в трёхмерном пространстве.
  • SceneKit и RealityKit — два фреймворка для рендеринга AR-контента с разным уровнем сложности.
  • LiDAR обеспечивает мгновенное определение глубины и реконструкцию окружения на Pro-устройствах.
  • Совместные сессии позволяют нескольким пользователям видеть одни и те же AR-объекты.
  • Motion Capture отслеживает 18 суставов тела для анимации персонажей в реальном времени.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

Читайте также