ARKit vs ARCore: Comparison of Image Tracking Feature
Tags: arcore, arkit, ios, android
Published: 2020-05-27 18:33:21

In my [previous article](https://dev.to/mobidev/how-to-use-arkit-for-indoor-positioning-app-development-3p6e), I covered using ARKit to develop indoor navigation applications. By using visual markers or the ARReferenceImage function within ARKit and ARCore’s Augmented Images, it’s possible to create powerful and flexible indoor navigation apps.

Now, I’ll go over each of these AR SDKs - Comparing the two, discussing their relative accuracies of the image tracking functionality, and describing how to use them in contexts other than just indoor navigation.

Both ARCore's [Augmented Images](https://developers.google.com/ar/develop/java/augmented-images) and ARKit’s [ARReferenceImage](https://developer.apple.com/documentation/arkit/arreferenceimage)  can identify 2-dimensional images in reality and superimpose a virtual image over those real-world images. They’re also both capable of real-time tracking of the movement of images. 

As a developer, you can attach virtual images or other content to real-world surfaces, this opens a variety of [AR use cases in marketing](https://mobidev.biz/blog/augmented-reality-marketing-sales?utm_source=devto&utm_medium=devto-arkitarcore&utm_campaign=arkitarcore) from virtual branding materials and business cards to advertising displays and posters outdoors.

**What is better – ARKit or ARCore?**

Over the course of 2019, ARKit was considerably more popular than ARCore, with ARKit being used on around 600 million devices versus 400 million for ARCore. 

However, it’s worth noting that ARCore’s base of compatible Android devices [grew by around 150 million devices](https://developers.googleblog.com/2019/05/ARCore-IO19.html) from December of 2018 to May of 2019.

Github’s repository tells a similar tale, with more than 4,000 [ARKit results](https://github.com/search?q=ARKit) versus more than 1,500 [ARCore results](https://github.com/search?q=ARCore) as of May 2020. 

Each of these platforms offers roughly comparable tools for tapping into motion sensors, monitoring lighting changes, and understanding environments, and both are Unity framework compatible.

ARCore has an advantage in the field of mapping. It can gather, parse, and store information about a 3-dimensional environment in a manner that allows for easy and simple re-access. 

With ARKit, a relatively small quantity of similar information is retained, and a ‘sliding window’ of recent experience data is all that’s available to access. 

ARCore creates a bigger mapping dataset, allowing for the possibility of increased stability and speed.

The face detection/tracking feature for iOS devices is quicker and more accurate than the comparable facial detection feature for Android devices due to TrueDepth Camera in iOS devices.

When it comes to recognition and augmentation of images, ARKit is superior to a significant degree. The below video draws a comparison between how the two SDKs function.

{% youtube uVW40FtMOAY %}

The user examines the renowned Mona Lisa painting, and the app imposes a virtual picture over the real picture. Note that the Mona Lisa can blink her eyes as the user taps the virtual image via the app.

Here, ARKit can surpass ARCore when it comes to delivering an immersive experience to app users. ARKit delivers a higher-quality image and can maintain image stability far better as the user moves their device around, which allows for [using ARKit in non-obvious applications](https://mobidev.biz/blog/arkit-guide-augmented-reality-app-development-ios?utm_source=devto&utm_medium=devto-arkitarcore&utm_campaign=arkitarcore).

At this point, it seems far too early to choose a winner or loser  between ARKit and ARCore. While it will be fascinating to see how the two platforms will develop and work with their respective strengths and weaknesses, right now it’s too close to call. 

In all likelihood, businesses will have to develop solutions able to be used by devices running both platforms.

```
```