ARKit (Apple's iOS AR framework) and ARCore (Google's Android AR platform) are the two dominant mobile AR SDKs that enable developers to create immersive augmented reality experiences by blending digital content with the physical world. Both use Visual-Inertial Odometry (VIO), combining camera feeds with motion sensor data (accelerometer/gyroscope) to track device position and orientation in 3D space. The key mental model: AR is not "adding objects to a camera feed"—it's building a persistent spatial understanding of the real world where virtual content can interact with surfaces, lighting, and depth. This distinction separates compelling AR from novelty filters.
What This Cheat Sheet Covers
This topic spans 15 focused tables and 113 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: Plane Detection and Surface Tracking
| Feature | Example | Description |
|---|---|---|
config.planeDetection = .horizontal// Detects floors, tables | • Identifies flat horizontal surfaces like floors, tables, or desks • both platforms support this as the most fundamental AR tracking mode for placing objects on surfaces | |
config.planeDetection = [.horizontal, .vertical]// Detects walls, doors | • Tracks vertical surfaces such as walls, doors, or windows • enables content placement on vertical structures for applications like artwork visualization or wall anchors | |
// ARKit 3.5+ only// Detects ramps, stairs | • Detects angled surfaces like ramps or staircases • ARKit-exclusive feature added in ARKit 3.5, not available in ARCore as of 2026. | |
if plane.parentPlane != nil { // This plane was merged | • ARCore automatically merges smaller detected planes into larger parent planes to reduce fragmentation • ARKit uses similar logic to unify adjacent surfaces into single trackables |