Framework ARKit — platform realitas tertambah dari Apple yang memungkinkan pengembang membuat aplikasi AR untuk iOS tanpa pengetahuan mendalam tentang visi komputer. Menurut Apple ARKit Documentation, 2025, framework ini menggunakan Visual-Inertial Odometry untuk melacak posisi perangkat di ruang secara akurat tanpa penanda eksternal. Pemahaman semantik adegan memungkinkan pengenalan bidang horizontal dan vertikal, menentukan pencahayaan dan menempatkan objek virtual di lingkungan nyata.
Poin utama
ARKit — framework realitas tertambah dari Apple, diumumkan di WWDC 2017 bersama dengan iOS 11. Ini menggabungkan kemampuan kamera, prosesor gerak seri M dan mesin neural chip A untuk menciptakan pengalaman AR imersif tanpa perlu perangkat keras khusus — hanya iPhone atau iPad.
ARKit menggunakan teknologi Visual-Inertial Odometry (VIO), yang menggabungkan data dari kamera dan sensor inersia Core Motion untuk melacak pergerakan perangkat di ruang secara akurat. VIO memungkinkan framework memahami di mana perangkat berada relatif terhadap lingkungan, tanpa menggunakan GPS atau penanda eksternal.
Menurut Apple WWDC 2024, ARKit 6 didukung pada perangkat dengan chip A12 dan lebih baru (iPhone XS, iPad Pro 2018+). Jumlah aplikasi AR di App Store telah melampaui 15 ribu, dan total luas bidang yang dikenali di semua sesi AR melampaui 100 miliar meter persegi.
Selama enam versi, ARKit telah menerima peningkatan signifikan: ARKit 1.0 (iOS 11) — pelacakan dasar dan pengenalan bidang; ARKit 2.0 — sesi AR bersama melalui ARWorldMap dan deteksi objek 3D; ARKit 3.0 — pelacakan tubuh manusia, segmentasi orang dan kamera depan dan belakang simultan.
ARKit 4.0 memperkenalkan LiDAR Scanner untuk menentukan kedalaman dan opasitas objek secara instan, serta Location Anchor untuk menautkan konten AR ke koordinat GPS. ARKit 6 menambahkan video 4K dengan HDR, Plane Estimation dengan LiDAR dan pemrosesan oklusi yang ditingkatkan.
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 bekerja melalui siklus sesi AR, yang dimulai dengan konfigurasi dan terus-menerus menganalisis aliran video dari kamera. Setiap frame, framework menghitung posisi perangkat (6 derajat kebebasan), memperbarui peta bidang yang dikenali dan mengoreksi posisi objek virtual — semua ini pada frekuensi 60 frame per detik.
Proses VIO terdiri dari dua aliran paralel: algoritma odometri visual melacak pergerakan titik fitur (feature points) antar frame, dan sensor inersia Core Motion memprediksi pergerakan pada interval pendek saat kamera bergerak cepat atau gambar buram. Kombinasi dua metode memberikan akurasi pelacakan hingga 1 sentimeter.
Menurut Apple, ARKit memproses hingga 500 titik fitur per frame, dan ukuran peta lingkungan (ARWorldMap) dapat mencapai diameter 100 meter. Memindai lingkungan dan membangun peta membutuhkan waktu sekitar 2-3 detik setelah memulai sesi — selama waktu ini ARKit mengumpulkan data dari kamera dan sensor.
ARAnchor — objek kunci untuk menempatkan konten. Ketika ARKit mengenali bidang, ia membuat ARPlaneAnchor dengan menentukan posisi, ukuran dan orientasi permukaan. Pengembang bereaksi terhadap delegasi session(_:didAdd:) dan menempatkan objek 3D di lokasi deteksi bidang melalui SceneKit atau RealityKit.
Untuk implementasi menyeret objek, ARHitTestResult digunakan: saat menyentuh layar, hit-test dilakukan melalui frame ARKit, yang mengembalikan titik persimpangan sinar dengan bidang yang dikenali. Titik yang ditemukan diubah menjadi ARAnchor, dan objek diperbaiki pada posisi ini.
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 menyediakan serangkaian teknologi yang membuat realitas tertambah realistis dan fungsional: pelacakan gerakan dengan 6 derajat kebebasan, pemahaman adegan melalui pengenalan bidang dan batas, estimasi pencahayaan untuk pembayangan yang benar, oklusi orang dan permukaan reflektif berdasarkan peta lingkungan.
Motion Capture (ARKit 3+) — teknologi pelacakan tubuh manusia secara real-time melalui kamera. Memungkinkan menganimasi karakter dengan gerakan pengguna tanpa sensor eksternal: 18 sendi dikenali pada frekuensi 60 Hz. Digunakan dalam aplikasi kebugaran dan untuk pembuatan prototipe animasi.
Sesi AR bersama (ARKit 2+) memungkinkan beberapa perangkat melihat objek virtual yang sama di ruang bersama. ARWorldMap menyimpan peta lingkungan, yang ditransmisikan ke perangkat lain melalui jaringan. Apple memberikan contoh akurasi sinkronisasi: dua iPhone 12 Pro di ruangan yang sama melihat objek dengan perbedaan tidak lebih dari 2 sentimeter.
Pemindai LiDAR, yang dipasang di iPhone 12 Pro dan lebih baru, secara radikal mengubah kemampuan ARKit. Alih-alih penentuan kedalaman perangkat lunak melalui analisis gambar, LiDAR segera memberikan peta kedalaman dengan akurasi hingga 3 sentimeter dalam jangkauan hingga 5 meter. Ini memungkinkan ARKit mengenali bidang secara instan, tanpa pemindaian awal dengan kamera.
Dengan LiDAR, ARKit dapat menentukan opasitas objek: objek virtual dapat bersembunyi di balik kursi atau meja nyata. Selain itu, Scene Reconstruction membangun jaring 3D lingkungan secara real-time — hingga 10 juta poligon per ruangan, digunakan untuk simulasi fisika tabrakan dan pencahayaan realistis.
// Konfigurasi untuk LiDAR
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh
arView.session.run(lidarConfig)
// Deteksi sentuhan pada bidang
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
)
}
Integrasi ARKit dimulai dengan persyaratan minimal: Xcode 15+, iOS 17 SDK, perangkat dengan chip A12 Bionic dan lebih baru. Di Info.plist perlu menambahkan kunci NSCameraUsageDescription — ARKit menggunakan kamera untuk melacak dan menampilkan adegan AR. Tanpa kunci ini, aplikasi akan berakhir dengan kesalahan saat memulai sesi AR.
Untuk merender konten, iOS menawarkan tiga framework: SceneKit untuk grafis 3D tingkat kompleksitas menengah, RealityKit untuk rendering fotorealistik dengan material PBR dan Metal untuk kinerja maksimal. RealityKit — pilihan yang direkomendasikan untuk proyek baru, karena mencakup dukungan bawaan untuk fungsi ARKit, animasi dan fisika.
Menurut Apple, waktu rata-rata integrasi layar AR dasar ke dalam aplikasi yang ada — sekitar 2 jam untuk pengembang iOS berpengalaman. Kesulitan utama muncul saat bekerja dengan menumpuk elemen UI pada adegan AR dan saat menangani gangguan sesi AR — panggilan, peralihan aplikasi atau kehilangan pelacakan dalam pencahayaan redup.
ARKit dapat kehilangan pelacakan dalam sejumlah situasi: pencahayaan tidak memadai (kurang dari 100 lux), tidak adanya titik fitur (dinding polos), gerakan kamera cepat atau penutupan lensa. Delegasi ARSessionDelegate menyediakan metode untuk menangani keadaan ini — disarankan untuk menampilkan petunjuk kepada pengguna: “Gerakkan perangkat lebih lambat” atau “Nyalakan pencahayaan”.
Untuk pemulihan setelah kegagalan, ARKit secara otomatis memulai relokalisasi — mencoba mencocokkan aliran video saat ini dengan peta lingkungan yang disimpan. Jika relokalisasi tidak memungkinkan, sesi dimulai ulang dengan konfigurasi baru. Disarankan untuk menyimpan ARWorldMap saat keluar dari aplikasi untuk pemulihan cepat adegan AR saat kembali.
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 terputus")
}
}
Pertanyaan yang sering diajukan
ARKit berfungsi pada perangkat Apple dengan chip A12 Bionic dan lebih baru: iPhone XS, XR, 11, 12, 13, 14, 15, 16 dan SE (generasi ke-2 dan ke-3), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+. Untuk fungsi LiDAR diperlukan iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max dan iPad Pro 2020+.
Ya, ARKit dapat digunakan langsung dengan Metal, tetapi ini memerlukan penulisan shader dan rendering sendiri. SceneKit dan RealityKit menyediakan solusi siap pakai dengan integrasi ARKit di tingkat framework. Untuk pemula, RealityKit adalah pilihan optimal, karena secara otomatis menangani fungsi ARKit.
ARKit secara otomatis mengevaluasi pencahayaan adegan melalui kamera dan memberikan data tentang arah, intensitas dan suhu warna sumber cahaya melalui AREnvironmentProbeAnchor. Ini memungkinkan objek virtual untuk membayang dengan benar dan memantulkan lingkungan, menciptakan perpaduan realistis dengan dunia nyata.
ARKit hanya berfungsi di iOS dan menggunakan Visual-Inertial Odometry untuk pelacakan, sedangkan ARCore dari Google berfungsi di Android dan menggunakan Motion Tracking sendiri berdasarkan IMU dan kamera. ARKit memiliki keunggulan berkat integrasi perangkat keras dengan chip Apple, dan ARCore — multi-platform melalui Cloud Anchors.
Ya, ARKit sangat ideal untuk game AR. SceneKit dan RealityKit mendukung fisika (SCNPhysicsBody, PhysicsSimulation), animasi, suara dan partikel. Contoh terkenal — Pokémon GO (menggunakan mesin sendiri dengan ARKit), Angry Birds AR dan Lego AR Studio. ARKit juga mendukung sesi multipemain melalui ARWorldMap.
Kesimpulan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga