ARKit — co to jest, kluczowe pojęcia i technologia AR

Autor: IT Sectr Opublikowano: 2026-03-25 Czas czytania: 8 min

Framework ARKit — platforma rzeczywistości rozszerzonej od Apple, która pozwala programistom tworzyć aplikacje AR dla iOS bez głębokiej wiedzy o wizji komputerowej. Według danych Apple ARKit Documentation, 2025, framework wykorzystuje Visual-Inertial Odometry do precyzyjnego śledzenia pozycji urządzenia w przestrzeni bez zewnętrznych markerów. Semantyczne rozumienie sceny pozwala rozpoznawać poziome i pionowe płaszczyzny, określać oświetlenie i umieszczać wirtualne obiekty w rzeczywistym otoczeniu.

Najważniejsze

  • ARKit — framework Apple dla rzeczywistości rozszerzonej na iOS, zaprezentowany w 2017 roku z iOS 11.
  • Motion Tracking — technologia śledzenia pozycji urządzenia w przestrzeni bez zewnętrznych beaconów.
  • Scene Understanding — rozpoznawanie płaszczyzn, granic i obiektów w rzeczywistym otoczeniu użytkownika.
  • ARAnchor — obiekt, który ustala pozycję wirtualnej treści w rzeczywistej scenie.
  • ARSCNView — główna klasa do renderowania 3D w oparciu o SceneKit.

Co to jest ARKit?

ARKit — framework rzeczywistości rozszerzonej od Apple, ogłoszony na WWDC 2017 wraz z iOS 11. Łączy możliwości kamery, procesora ruchu M-series i silnika neuronowego A-chipów, aby tworzyć immersyjne doświadczenia AR bez potrzeby specjalistycznego sprzętu — wystarczy iPhone lub iPad.

ARKit wykorzystuje technologię Visual-Inertial Odometry (VIO), która łączy dane z kamery i czujników inercyjnych Core Motion do precyzyjnego śledzenia ruchu urządzenia w przestrzeni. VIO pozwala frameworkowi rozumieć, gdzie znajduje się urządzenie względem otoczenia, bez użycia GPS lub zewnętrznych markerów.

Według danych Apple WWDC 2024, ARKit 6 jest obsługiwany na urządzeniach z chipem A12 i nowszych (iPhone XS, iPad Pro 2018+). Liczba aplikacji AR w App Store przekroczyła 15 tysięcy, a całkowita powierzchnia rozpoznanych płaszczyzn we wszystkich sesjach AR przekracza 100 miliardów metrów kwadratowych.

Ewolucja ARKit

W ciągu sześciu wersji ARKit otrzymał znaczące ulepszenia: ARKit 1.0 (iOS 11) — podstawowe śledzenie i rozpoznawanie płaszczyzn; ARKit 2.0 — wspólne sesje AR poprzez ARWorldMap i wykrywanie obiektów 3D; ARKit 3.0 — śledzenie ciała człowieka, segmentacja osób i jednoczesne kamery przednie i tylne.

ARKit 4.0 wprowadził LiDAR Scanner do natychmiastowego określania głębokości i nieprzezroczystości obiektów, a także Location Anchor do przypisywania treści AR do współrzędnych GPS. ARKit 6 dodał wideo 4K z HDR, Plane Estimation z wykorzystaniem LiDAR i ulepszone przetwarzanie okluzji.

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)

Jak działa ARKit

ARKit działa poprzez cykl sesji AR, która uruchamiana jest z konfiguracją i nieprzerwanie analizuje strumień wideo z kamery. Każdą klatkę framework oblicza pozycję urządzenia (6 stopni swobody), aktualizuje mapę rozpoznanych płaszczyzn i koryguje pozycję wirtualnych obiektów — wszystko to z częstotliwością 60 klatek na sekundę.

Proces VIO składa się z dwóch równoległych strumieni: algorytm wizualnej odometrii śledzi ruch charakterystycznych punktów (feature points) między klatkami, a czujniki inercyjne Core Motion przewidują ruch w krótkich odstępach czasu, gdy kamera szybko się porusza lub obraz jest rozmyty. Połączenie dwóch metod daje dokładność śledzenia do 1 centymetra.

Według Apple, ARKit przetwarza do 500 charakterystycznych punktów na klatkę, a rozmiar mapy otoczenia (ARWorldMap) może osiągać 100 metrów średnicy. Skanowanie otoczenia i budowa mapy zajmuje około 2–3 sekund po uruchomieniu sesji — przez cały ten czas ARKit gromadzi dane z kamery i czujników.

ARAnchor i umieszczanie obiektów

ARAnchor — kluczowy obiekt do umieszczania treści. Kiedy ARKit rozpozna płaszczyznę, tworzy ARPlaneAnchor z określeniem pozycji, rozmiaru i orientacji powierzchni. Programista reaguje na delegat session(_:didAdd:) i umieszcza obiekt 3D w miejscu wykrycia płaszczyzny poprzez SceneKit lub RealityKit.

Do realizacji przeciągania obiektów używany jest ARHitTestResult: przy dotknięciu ekranu wykonywany jest hit-test przez klatkę ARKit, który zwraca punkt przecięcia promienia z rozpoznanymi płaszczyznami. Znaleziony punkt jest przekształcany w ARAnchor, a obiekt jest ustalany w tej pozycji.

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

Kluczowe możliwości ARKit

ARKit zapewnia zestaw technologii, które czynią rzeczywistość rozszerzoną realistyczną i funkcjonalną: śledzenie ruchu z 6 stopniami swobody, rozumienie sceny poprzez rozpoznawanie płaszczyzn i granic, ocena oświetlenia do poprawnego nakładania cieni, okluzja osób i odblaskowe powierzchnie na podstawie map otoczenia.

Motion Capture (ARKit 3+) — technologia śledzenia ciała człowieka w czasie rzeczywistym przez kamerę. Pozwala animować postacie ruchami użytkownika bez zewnętrznych czujników: rozpoznawanych jest 18 stawów z częstotliwością 60 Hz. Wykorzystywane w aplikacjach fitness i do prototypowania animacji.

Wspólne sesje AR (ARKit 2+) pozwalają wielu urządzeniom widzieć te same wirtualne obiekty we wspólnej przestrzeni. ARWorldMap zapisuje mapę otoczenia, która jest przekazywana innym urządzeniom przez sieć. Apple podaje przykład dokładności synchronizacji: dwa iPhone 12 Pro w jednym pomieszczeniu widzą obiekt z rozbieżnością nie większą niż 2 centymetry.

Praca z LiDAR

LiDAR-skaner, zainstalowany na iPhone 12 Pro i nowszych, radykalnie zmienia możliwości ARKit. Zamiast programowego określania głębokości poprzez analizę obrazów, LiDAR natychmiast dostarcza mapę głębokości z dokładnością do 3 centymetrów w zakresie do 5 metrów. Pozwala to ARKit rozpoznawać płaszczyzny natychmiastowo, bez wstępnego skanowania kamerą.

Za pomocą LiDAR ARKit może określać nieprzezroczystość obiektów: wirtualny obiekt może chować się za rzeczywistym fotelem lub stołem. Ponadto Scene Reconstruction buduje siatkę 3D otoczenia w czasie rzeczywistym — do 10 milionów poligonów na pomieszczenie, co jest wykorzystywane do symulacji fizyki kolizji i realistycznego oświetlenia.

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

arView.session.run(lidarConfig)

// Wykrywanie dotknięcia na płaszczyźnie
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
        )
}

Integracja ARKit w aplikacji

Integracja ARKit rozpoczyna się od minimalnych wymagań: Xcode 15+, iOS 17 SDK, urządzenie z chipem A12 Bionic i nowszym. W Info.plist należy dodać klucz NSCameraUsageDescription — ARKit używa kamery do śledzenia i wyświetlania sceny AR. Bez tego klucza aplikacja zakończy się błędem przy uruchamianiu sesji AR.

Do renderowania treści iOS oferuje trzy frameworki: SceneKit do grafiki 3D średniego poziomu złożoności, RealityKit do fotorealistycznego renderowania z materiałami PBR oraz Metal do maksymalnej wydajności. RealityKit — zalecany wybór dla nowych projektów, ponieważ zawiera wbudowane wsparcie dla funkcji ARKit, animacji i fizyki.

Według Apple, średni czas integracji podstawowego ekranu AR w istniejącej aplikacji — około 2 godzin dla doświadczonego programisty iOS. Główne trudności pojawiają się przy pracy z nakładaniem elementów UI na scenę AR oraz przy obsłudze przerw w sesji AR — połączeń, przełączania aplikacji lub utraty śledzenia przy słabym oświetleniu.

Obsługa błędów i awarii

ARKit może tracić śledzenie w szeregu sytuacji: niewystarczające oświetlenie (poniżej 100 luksów), brak charakterystycznych punktów (jednolite ściany), szybkie ruchy kamery lub zasłonięcie obiektywu. Delegat ARSessionDelegate udostępnia metody do obsługi tych stanów — zaleca się wyświetlanie użytkownikowi podpowiedzi: „Przesuwaj urządzenie wolniej” lub „Włącz oświetlenie”.

Do odzyskiwania po awarii ARKit automatycznie uruchamia relokalizację — próbuje dopasować bieżący strumień wideo do zapisanej mapy otoczenia. Jeśli relokalizacja nie jest możliwa, sesja jest restartowana z nową konfiguracją. Zaleca się zapisywanie ARWorldMap przy wyjściu z aplikacji w celu szybkiego odtworzenia sceny AR po powrocie.

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("Sesja przerwana")
    }
}

Często zadawane pytania

Na jakich urządzeniach działa ARKit?

ARKit działa na urządzeniach Apple z chipem A12 Bionic i nowszych: iPhone XS, XR, 11, 12, 13, 14, 15, 16 i SE (2. i 3. generacji), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+. Do funkcji LiDAR wymagane są iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max oraz iPad Pro 2020+.

Czy można używać ARKit bez SceneKit lub RealityKit?

Tak, ARKit można używać z Metal bezpośrednio, ale wymaga to napisania własnego shadera i renderowania. SceneKit i RealityKit dostarczają gotowych rozwiązań z integracją ARKit na poziomie frameworka. Dla początkujących RealityKit — optymalny wybór, ponieważ automatycznie obsługuje funkcje ARKit.

Jak ARKit obsługuje zmianę oświetlenia?

ARKit automatycznie ocenia oświetlenie sceny przez kamerę i dostarcza dane o kierunku, intensywności i temperaturze barwowej źródła światła przez AREnvironmentProbeAnchor. Pozwala to wirtualnym obiektom poprawnie rzucać cienie i odbijać otoczenie, tworząc realistyczne połączenie z rzeczywistym światem.

Czym ARKit różni się od ARCore?

ARKit działa tylko na iOS i wykorzystuje Visual-Inertial Odometry do śledzenia, podczas gdy ARCore od Google działa na Androidzie i używa własnego Motion Tracking opartego na IMU i kamerze. ARKit ma przewagę dzięki integracji sprzętowej z chipami Apple, a ARCore — wieloplatformowość przez Cloud Anchors.

Czy można używać ARKit do tworzenia gier?

Tak, ARKit idealnie nadaje się do gier AR. SceneKit i RealityKit obsługują fizykę (SCNPhysicsBody, PhysicsSimulation), animację, dźwięk i cząsteczki. Znane przykłady — Pokémon GO (używa własnego silnika z ARKit), Angry Birds AR i Lego AR Studio. ARKit obsługuje również sesje wieloosobowe poprzez ARWorldMap.

Podsumowanie

  • ARKit — framework rzeczywistości rozszerzonej Apple oparty na Visual-Inertial Odometry z 2017 roku.
  • 6 stopni swobody — precyzyjne śledzenie pozycji urządzenia w przestrzeni trójwymiarowej.
  • SceneKit i RealityKit — dwa frameworki do renderowania treści AR o różnym poziomie złożoności.
  • LiDAR zapewnia natychmiastowe określanie głębokości i rekonstrukcję otoczenia na urządzeniach Pro.
  • Wspólne sesje pozwalają wielu użytkownikom widzieć te same obiekty AR.
  • Motion Capture śledzi 18 stawów ciała do animacji postaci w czasie rzeczywistym.

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również