The first thing to consider before making your app is how augmented reality (AR) works and what you want from the technology.
For those of you who are maybe a little unfamiliar with the distinction between augmented reality and other forms of extended reality (XR), here's a quick primer on the differences.
With augmented reality, compared with virtual reality, the emphasis is placed on creating a virtual world on top of the real world. We're not looking to create a completely virtual environment cut off from reality, but a series of virtual characters, objects or elements superimposed on our everyday environment.
This can be done in two ways:
AR glasses are incredible pieces of kit – and they have a host of exciting applications for business and entertainment. But for the purposes of this blog, we'll focus on smartphone AR development. The simplest place to start is with a smartphone or tablet because the tech is readily available and developers can access a wealth of support.
When developing for AR, it's important to get to grips with a few fundamental tools and concepts that will help you understand how the technology interacts with reality. What do you need to develop an AR app – and how do you "teach" your technology to recognise objects in the real world?
Find the right SDK for your project
"What's an SDK?", we hear you ask. SDK stands for "software development kit" and is the developers' answer to a BLACK+DECKER toolkit.
Essentially, these kits come with useful tools to help you with your augmented reality app. These may include things like:
Many of the major tech companies have their own SDKs. For instance, Apple has ARkit and Android has ARCore.
Not surprisingly, ARkit is better suited to developing for Apple products and ARCore suits Android. But many of the SDKs perform the similar basic functions you need to get your app up and running.
Most SDKs also come with their own APIs ("app programming interface") that allow your app to interact with other platforms and software. For instance, if you see Twitter's "tweet" button and you're not on the Twitter website or app, that's an example of an API service. The API allows the third-party website to interact with Twitter and share your tweet.
Some SDKs like Unity's AR Foundation are better for AR game developers or apps with demanding physics. The Unity platform was used by Niantic for their gangbuster AR game Pokémon Go.
SDK features and tools
Getting familiar with a fresh toolset is the first step when learning anything new. AR app development can be made simple, but it does require some coding experience to tame the learning gradient.
That said, even if you're a complete novice you need to start somewhere. So let's break down some of the fundamentals of AR SDKs – what they do and how they're used.
Image recognition
Image recognition is the method by which AR apps learn to detect and recognise real-world 2D images that you want the app to interact with. By teaching it to recognise certain images you can program the app to overlay virtual content on aspects of the real world. An example of this may be a poster or a QR code, serving as a prompt to the AR app to produce digital content when it detects the image.
Image recognition is a great tool for introducing educational or promotional content into the user's AR experience. Digital content can be stored locally on the user's device or remotely on a cloud-based server and can be updated easily.
Object recognition
AR object recognition is slightly different to image recognition because it deals with 3D objects rather than 2D images. The benefit of object recognition is that it enables users to interact with real-world objects as if they were interacting with virtual objects.
Imagine that the software was taught to overlay a virtual image of a heart whenever it detected a tennis ball. In this scenario, medical students could interact with a 3D image of the heart and inspect it from all angles – when in reality they're just inspecting a tennis ball.
Plane detection
Plane detection is the process by which the app detects horizontal and vertical surfaces. With plane detection, developers can create a realistic connection between the virtual and the actual. For example, avatars can be seen walking on the floor and bumping into walls – or virtual mugs may appear on your kitchen table.
Visual SLAM
A simultaneous localisation and mapping system is how your device understands the environment around it. SLAM is not a particular software or algorithm – rather, it's a process that involves a series of steps.
The purpose of visual SLAM systems is to help the device locate its position relative to its surroundings. They use your device's camera to track and then triangulate set points in the environment to build a picture of the device's position and the world around it.
You can imagine why this might be helpful for AR applications with digital assets that need to be mapped to the external world.
Using the camera on your device is a quick and easy way to implement SLAM. Again, Pokémon Go is a great example of an app implementing SLAM to create an innovative AR experience.
Conclusion
Now that you understand the basic terms and inner workings of an augmented reality app, it's time to do your own research and learn more about this incredible technology.
To briefly summarise:
Building your augmented reality app? Looking to start testing on a pair of AR glasses? Head over to our online store to buy XR devices from leading manufacturers like Microsoft and Magic Leap.