Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
So you want to build an ARKit app - AppDevCon
Search
Namrata Bandekar
March 15, 2019
1
1.8k
So you want to build an ARKit app - AppDevCon
Namrata Bandekar
March 15, 2019
Tweet
Share
More Decks by Namrata Bandekar
See All by Namrata Bandekar
So you want to build an ARKit app- Swiftfest 2019
namrata
0
56
DevFest Florida - Video Processing on Android
namrata
1
130
Video Processing on Android
namrata
2
2.7k
Featured
See All Featured
For a Future-Friendly Web
brad_frost
180
10k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
29
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
400
Accessibility Awareness
sabderemane
0
14
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
[SF Ruby Conf 2025] Rails X
palkan
0
540
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
0
21
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
The Language of Interfaces
destraynor
162
25k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
60
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.3k
Building the Perfect Custom Keyboard
takai
1
660
Transcript
SO YOU WANT TO BUILD AN ARKIT APP NAMRATA BANDEKAR
ARKIT BY TUTORIALS
PORTAL ARSKETCH
AUGMENTED REALITY EXPERIENCE ▸ Detect and understand environment geometry ▸
Render virtual 3D content ▸ User guidance
ARKIT ▸ Tracking ▸ Scene Understanding ▸ Light Estimation
TRACKING ▸ World Tracking ▸ Visual Inertial Odometry CORE MOTION
AVFOUNDATION
ARKIT ▸ Tracking ▸ Scene Understanding ▸ Light Estimation
SCENE UNDERSTANDING ▸ Plane detection ▸ Hit testing
ARKIT ▸ Tracking ▸ Scene Understanding ▸ Light Estimation
LIGHT ESTIMATION ▸ Estimate scene lighting information ▸ Render graphics
that looks more realistic Video by Mark Dawson on Youtube
ARKIT ▸ Tracking ▸ Scene Understanding ▸ Light Estimation
SCENEKIT ▸ Rendering Engine ▸ 3D Content ▸ Provides basic
AR view
GETTING STARTED ▸ Device Compatibility ▸ A9 processor or later
▸ iOS 11 and up ▸ Handle unsupported devices and iOS versions AR Optional AR Required
GETTING STARTED ▸ Device permissions
GETTING STARTED ▸ Privacy and data handling
ARKIT BASICS ▸ AR session configuration ▸ AR session management
▸ Session error handling
ARKIT BASICS ▸ AR session configuration ▸ AR session management
▸ Session error handling
AR CONFIGURATION
ARKIT BASICS ▸ AR session configuration ▸ AR session management
▸ Session error handling
ARKIT BASICS ▸ AR session configuration ▸ AR session management
▸ Session error handling
RUN OPTIONS
AR SESSION MANAGEMENT
ARKIT BASICS ▸ AR session configuration ▸ AR session management
▸ Session error handling
ARKIT BASICS ▸ AR session configuration ▸ AR session management
▸ Session error handling
SESSION ERROR HANDLING
ARKIT BASICS ▸ AR session configuration ▸ AR session management
▸ Session error handling
SCENEKIT FOR AR ▸ Provides ARSCNView ▸ Owns AR session
object
SCENEKIT FOR AR ▸ Hit testing functionality
SCENEKIT FOR AR ⚠ Private Queue
BEST PRACTICES AND TIPS
USER GUIDANCE ▸ Guide the user ▸ Show feature points
▸ Display detected plane IKEA Place Portal
TRACKING ▸ ARWorldTrackingConfiguration ▸ ARAnchors fix position in real world
⚓ ▸ Don’t use feature points to place content ▸ ARAnchors adjust for drift
TRACKING QUALITY ▸ Ambient light ▸ Static environments ▸ Surface
texture ▸ Sensor data quality
TRACKING QUALITY
TRACKING FEEDBACK
CAPTURING THE ARWORLDMAP ▸ Dense feature points ▸ Multiple points
of view ▸ No motion - static environment ▸ Use WorldMappingStatus ▸ Don’t display UI until ready
MAPPING QUALITY
TESTING IN THE REAL WORLD ▸ Low lighting ▸ Smooth
surfaces ▸ Moving device fast while mapping ▸ Motion in environment
PERFORMANCE CONSIDERATIONS ▸ Initialization takes some time ▸ Battery drain
▸ Limit the number of anchors ⚓ ▸ Delegate callbacks on background threads ▸ Mapping from a distance doesn’t work ▸ Occlusion - no depth sensing
THANK YOU! @NAMRATACODES