Choosing which platform to use to pursue exploratory work in augmented reality (AR) visualization techniques is critical. As many mobile developers only specialize on one platform, few cross-platform analyses exist for the relatively recent technological advancements like AR. In the following paragraphs, we present some of our own experiences with the investigation of these AR tools as part of a recently-awarded grant from the National Science Foundation to the American Modeling Teachers Association and to Vieyra Software. We present a primer on ARKit and ARCore compatibilities with Apple and Android products. In future entries we’ll take a closer look at some of our own development on each platform, as well as inherent benefits and disadvantages in terms of performance and functionality of each as we work to use AR and real data to display magnetic fields.

In summer 2017, public AR frameworks were released openly to developers: ARKit for iOS on 5 June, 2017, and ARCore for Android on 29 August 2017. Linking the smartphone’s internal motion sensors and camera algorithms, these new frameworks allow developers to create AR worlds in which the smartphone has a 3-D environmental awareness. This allows users to not only display images on a 2-D background, but to interact with them in a 3-D environment without the use of cumbersome, pre-made visual targets. However, these bare-bones technology frameworks were released with extremely limited public documentation or sample applications off of which developers could base their work. Nearly a year following their release, these frameworks continue to be very poorly understood and underutilized by developers.

The yellow dots are anchor points for spacial awareness. The two red dots (on the mug and on the stack of napkin) are situated in space, with the distance between them noted in blue (in centimeters).

As the phone is rotated, the red dots continue to be situated in approximately the same place, with a bit of positional lag.

Who is developing with ARKit and ARCore?

A simple search on commit repositories shows that strong preference for ARKit by today’s developers. Despite the fact that both platforms were announced within a few months of each other, there is about five times more development and three times greater frequency of discussion on ARKit than ARCore.

Our grant work initially focused on Android ARCore as platform of choice because of a desire to create something that was as accessible as possible to users. However, seeing these numbers caused us to question why more developers weren’t investing in Android for AR.

Which devices are compatible with ARKit and ARCore?

As of 2018, nearly 85% of smartphones around the world use Android, a percentage that is expected to only grow in the coming years. However, consistent with a 2014 study of U.S. city maps that showed socioeconomic differences between the owners of Android versus iOS users, a huge portion of the billions of Android users are purchasing low-end devices that have significantly different capabilities than their higher cost counterparts. Unlike Apple, which has control over all models that use iOS, Android phones are manufactured by at least ten major companies, each of which can select for unique features and acquire disparate hardware components of their choice.

Portion of Android devices compatible with ARCore. Source: Google Developers

What does this mean for compatibility? Because of the hardware uniformity for iOS, all devices back to the iPhone SE and the iPad 5th generation are compatible with ARKit. Two notable estimates were made of the number of ARKit-compatible devices by the end of 2017–195 Million, which did not account for the release of the iPhone 8 or iPhone X, and 434 Million, an estimate released after the iPhone 8 had been revealed. Compare this with Google’s December 2017 estimate of ARCore-compatible devices of 100 Million, a comparative drop in the bucket with respect to Android’s massive global market share.

What variables influence the compatibility of devices with AR platforms?

Sensor Hardware: While all Apple devices have included the same basic sensor systems for years, Android devices are notoriously variable when it comes to hardware and sensors. ARCore requires a device with a back-facing camera, an accelerometer, and a gyroscope. While nearly all phones have the required camera and accelerometer, the gyroscope requirement removes compatibility with a large portion of low-end Android devices typically purchased by cost-conscious consumers and especially those in the developing world. Of all Android tablets, only the Galaxy Tab S4 is currently compatible. (Click here to see an expanded version of the table to the right for a complete list of ARCore-compatible Android devices).

Operating System: Compared to ARKit’s complete compatibility with devices released since September 2015 that are running iOS 11.0, ARCore supports only a limited subset of Android devices running Android 7 or newer, and users must download the app ARCore by Google, unlike Apple devices, which already include the app embedded within the operating system. Even these requirements for Android, however, aren’t hard-and-fast rules. Several devices require Android 8.0, and another subset of those require a specific patch (in addition to the download of the ARCore App), as is the case for the Sony Xperia XZ2.

App Requirements: For any ARCore-compatible device whose user has not already downloaded the ARCore by Google app, an attempt to download an app that uses ARCore capabilities, such as the popular IKEA Place app, notifies the user that ARCore by Google will also be downloaded.

Device Release: While all new iOS devices are ready for compatibility with ARKit, the same is not true for even the newest Android products. While this year’s Google smartphones, Pixel 2 and Pixel XL were released with ARCore fully installed, they only account for a minimal portion of the market share. Because Google does not control the manufacture of devices produced by other companies, most companies seek Android certification before release. In doing so, manufacturers work with Google to make sure that their hardware is compatible with Google Play apps, allowing for Google to modify their apps in advance to ensure that they work seamlessly once downloaded. Unfortunately, the ARCore by Google app appears to be excluded from this certification process, because a number of Android Certified devices have been released that are not compatible with ARCore, and cannot even be downloaded on them for testing by the user–Google effectively only permits the download of its ARCore app on devices that it has approved.

This inability to download the ARCore by Google app onto some of the newest and most popular Android devices as proven frustrating. For instance, the Galaxy S9 and Galaxy S9+ are one of Samsung’s most popular devices. Despite its release on March 16, 2018, Google did not permit the download of ARCore until early May, nearly two months after its release. Similarly, Sony’s XPERIA XZ2 was released on April 5, 2018, and wasn’t fully compatible until August 8, 2018, and even then only with the additionally required security patch.

How should one decide which platform to use to pursue development?

The answer depends upon your goals.

Functionality: While we haven’t yet explicitly identified the benefits and limitations to each AR software framework, our initial experimentation suggests that ARKit experiences significantly less positional lag than ARCore. (For example, when “placing” an inanimate AR object in the middle of a room, walking around the house, and returning with the expectation of finding the AR object at the same coordinates as it was placed, ARKit significantly outperformed our tests of ARCore on two different Android devices). The reasoning behind this might be that while all Apple-manufactured devices have sensors that have been calibrated in the same way, even the same Android manufacturers often pull from different sensor manufacturers with varying levels of sensor precision and accuracy. Indeed, the reason there have been delayed responses from Google in creating compatible ARCore software for new devices might be exactly because it is making adjustments to meet the hardware specs.

Accessibility: The goal of our recently-awarded National Science Foundation grant is to use modern 3-D mapping capabilities of phones, sensor data, and AR to build novel software for teaching and learning about fields that are highly accessible to device owners. Advancement in merging AR capabilities with sensor data has the potential to change the way educators, learners, and members of the workforce interact with their mobile devices, and, in turn, impact the way developers support the needs of education and workforce. We want to build on a platform that would eventually allow for wide-scale implementation of whatever we produced, especially educational resources for teachers and learners in underfunded schools and underdeveloped areas. However, the reality is that because so many Android devices are low-end, their users simply won’t have access to ARCore at this time. In terms of shear numbers, iOS and ARKit are much more likely to result in greater access to novel AR developments.

Although sensor-based software developers have long demonstrated a preference for Android because of the ease of access to sensor data and because of the multitude of sensor options available across devices, in the case of augmented reality, ARKit and Apple seem to win the day.

Contact the authors: Write to support@vieyrasoftware.net

This work is funded by NSF Grant #1822728. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.