Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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.9k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
So you want to build an ARKit app - AppDevCon
Namrata Bandekar
March 15, 2019
More Decks by Namrata Bandekar
See All by Namrata Bandekar
So you want to build an ARKit app- Swiftfest 2019
namrata
0
78
DevFest Florida - Video Processing on Android
namrata
1
150
Video Processing on Android
namrata
2
2.9k
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
The SEO Collaboration Effect
kristinabergwall1
1
500
Game over? The fight for quality and originality in the time of robots
wayneb77
1
220
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.3k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
220
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
550
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
200
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
260
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Skip the Path - Find Your Career Trail
mkilby
1
170
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Crafting Experiences
bethany
1
210
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