We have seen plenty of really interesting augmented reality (AR) apps and experiences, but we have to wonder where the line is drawn when it comes to developer best practices and guidelines. With its new Human Interface Guidelines for ARKit, Apple has finally done just that.
The essence of the guidelines is pretty simple: AR is best experienced in open space, but that’s not always possible. Apple wants developers to appreciate that people might not always be in big, bright, open rooms where a full-fledged augmented reality experience is optimal.
Instead, it asks developers to “try to anticipate scenarios that might present challenges, and clearly communicate requirements or expectations to people up front,” and “consider offering varying sets of features for use in different environments.” Additionally, long-form experiences are a non-starter:
Holding a device at a certain distance or angle for a prolonged period of time can be fatiguing. Consider how people must hold their device when using your app, and strive for an enjoyable experience that doesn’t cause discomfort. For example, by default, you could place objects at distance that reduces the need to move closer. A game could keep levels short and intermixed with brief periods of downtime.
The learning curve is also going to play a role when ARKit launches this Fall. Apple says developers should introduce movement slowly; rather than asking someone to sprint through an open field while using AR, it’s best to get them used to walking between two shorter points, first (they’re still holding their phone up, after all; that can be disorienting).
Developers should also contemplate how users think and communicate. Apple suggests we “avoid referring to technical, developer-oriented terms like ARKit, world detection, and tracking.” That’s fair. Many users may have no idea what an X or Y axis is, and an ARKit-produced app probably isn’t the right time to teach them.
The on-screen experience is also key, as is how users interact with items in augmented reality. Apple gives developers a bit of leeway in letting users know the app is searching for a flat surface to place an item on, and even encourages developers to create their own graphics for letting users know where an item can be placed. Avoiding the edge of a surface is also important, as surfaces may change. If an item is placed on the edge of a table that is bumped or removed, having your virtual mini-city float in mid-air may seem silly.
That issue frames a shortcoming with ARKit. So far, it can only detect flat surfaces, not walls or other vertical columns. ARKit also can’t re-position items automatically.
Interacting with augmented reality items is best realized via gestures, not on-screen buttons, says Apple: “It’s more immersive and intuitive when a user can touch an object onscreen and interact with it directly, rather than interact with separate controls on a different part of the screen. Bear in mind, however, that direct manipulation can sometimes be confusing or difficult when the user is moving around.” Developers should also think about conflicts: for example, a swipe gesture to open a menu is too similar to rotating an object.
If problems arise, apps shouldn’t throw in the proverbial towel. Instead, pop-ups letting users know to do things such as turn on the lights or stop moving a device are a better fit. Targeting devices is also key. Rather than make AR integral to an app’s functionality, Apple suggests making it complimentary – at least for now. With time, AR will become ubiquitous for all hardware, but that’ll take a few years.
At the moment, Apple’s guidelines serve as the first best-practices table for AR. If nothing else, developers should remember to be a bit more thoughtful and considerate with how people will actually use AR in apps. Adding a beta program to your app might also be helpful, as internal testing might not always provide the best results. Data tells us reviews are important in a user’s decision to download an app, and avoiding angry one-star screeds because you missed something in an AR feature is well worth the time it takes to test and perfect.