TEAM LICENSES: Save money and learn new skills through a Hacking with Swift+ team license >>

Apple releases design guidelines for ARKit apps

New design and development tips for all developers working on augment reality apps

Paul Hudson       @twostraws

Apple has released a comprehensive set of guidelines to help developers make better ARKit apps, including thinking about safety, handling tracking problems, and some language suggestions to make technology seem less intimidating.

The highlights are:

  • Make your AR assets look convincing by using high-res models that are appropriately scaled, and try to use realistic lighting.
  • Remember that users may be in a constrained space, and too much movement may be impossible or even dangerous.
  • Don’t ask users to use AR for extended periods of time if it requires uncomfortable positions.
  • Remember to use audio and haptic feedback to make the experience more immersive.
  • Avoid saying things like “Insufficient features”, or “Excessive motion detected”, preferring “Try turning on more lights and moving around” and Try moving your phone slower” instead.
  • Don’t try to precisely align virtual objects with the edges of real objects, because surface boundaries are approximations that get refined as detection continues.
  • Allow users to reset the experience if they hit trouble.

Apple also provided some AR glyphs – an example of which can be seen at the top of this article – that can be used to trigger your AR experience. Using this icon is probably a good idea, at least in the early days of AR when both users and developers are still figuring out what works well.

Hacking with Swift is sponsored by Superwall.

SPONSORED Superwall lets you build & test paywalls without shipping updates. Run experiments, offer sales, segment users, update locked features and more at the click of button. Best part? It's FREE for up to 250 conversions / mo and the Superwall team builds out 100% custom paywalls – free of charge.

Learn More

Sponsor Hacking with Swift and reach the world's largest Swift community!

Buy Pro Swift Buy Pro SwiftUI Buy Swift Design Patterns Buy Testing Swift Buy Hacking with iOS Buy Swift Coding Challenges Buy Swift on Sundays Volume One Buy Server-Side Swift Buy Advanced iOS Volume One Buy Advanced iOS Volume Two Buy Advanced iOS Volume Three Buy Hacking with watchOS Buy Hacking with tvOS Buy Hacking with macOS Buy Dive Into SpriteKit Buy Swift in Sixty Seconds Buy Objective-C for Swift Developers Buy Beyond Code

Was this page useful? Let us know!

Unknown user

You are not logged in

Log in or create account

Link copied to your pasteboard.