September 26, 2017

Augmented Reality 101: development tools and extensions for beginners

Wikitude is well known for supporting a wide range of development frameworks. This characteristic allows our SDK to meet the demands, needs and wants of a greater number of software developers worldwide. When creating an AR app, however, knowing which programming language and framework better suit your platform requirements, performance goals and development abilities can often be overwhelming.

With this in mind, we decided to shed some light on the matter hoping to clarify a few basic AR concepts and tools, and give insights about the available development frameworks compatible with the Wikitude SDK.

First things first:

Software Development Kit (SDK)

An SDK is a set of tools, software, code samples, guides, technical documentation, libraries, processes and everything else that is needed to develop software applications for specific platforms.

Computer Vision Engine (CV Engine)

The computer vision engine provides the core functionalities of the features available in the Wikitude SDK and is used by all platforms. It includes three major parts in its own: SLAM Engine, Image Recognition Engine, and the Cloud Recognition Engine. Wikitude’s CV engine is not directly accessible but rather wrapped either by the Native API (Java, Obj-C) or the JavaScript API.

Application Programming Interface (API)

Simply put, an API is an interface that allows two programs to communicate with each other following a set of commands, functions, objects, and protocols that developers can use to create software.

Wikitude’s SDK allows developers to choose between using Native API, JavaScript API or any of the supported extensions and plugins available and detailed below.

Native API

The Native API is used to create apps that are developed specifically for their respective platforms, therefore not able to make cross-platform AR experiences like the JavaScript API (see below). This means that the code base of native apps needs to be written in the programming language of their corresponding operating system: Obj-C for iOS or Java for Android.

The Native API does not integrate a separate rendering engine, developers have full control and, therefore, maximum flexibility to use the rendering engine of your choice. This “tailor-made” characteristic, consequently, requires a more advanced programming knowledge.

JavaScript API

Wikitude’s JavaScript (JS) API is the most used SDK among our developer community. Using simple web technologies, this API lets developers create augmented reality content defined in HTML and JavaScript. This means developers and apps that enjoy simple cross-platform development can benefit from Wikitude’s JavaScript SDK.

Unlike the Native one, with this API the entire experience is controlled and defined in JavaScript. It incorporates a fully functional rendering engine with broad support for augmented reality content such as 3D models, videos, images, etc.

Since JavaScript is typically known to be easier to learn, edit, implement and debug, this API has not only been able to hold its ground over the years but its usage is actually still increasing.

For a quick and easy overview of the main differences between JavaScript and Native SDKs check out our comparison page. You can have a complete overview of which features are included in each of the Wikitude SDKs with this feature list.

Wikitude extensions and plugins

Wikitude offers different extensions and plugins to combine the available SDK features with other development frameworks. Among the extensions based on Wikitude’s JavaScript API are Cordova (PhoneGap), Xamarin and Titanium. These extensions include the same features available in the JS API, such as location-based AR, image recognition and tracking and SLAM.

Unity is the sole plugin based on the Wikitude Native SDK and includes image recognition and tracking, SLAM, as well as a plugin API, which allows you to connect the Wikitude SDK to third-party libraries.

Unity Plugin

Unity is a cross-platform game engine and one of the world’s most popular platforms for mobile game development. In 2015 Wikitude expanded its SDK to support Unity and it quickly became very popular among our developer community.

On top of the Native API, the Unity plugin allows developers to integrate Wikitude’s computer vision engine into a game or application fully based on Unity.

This extension provides a very easy to use interface which allows developers to preview content (soon to be available with the Wikitude SDK) and run their apps on both iOS and Android using the same code base. It is also the preferred choice for games (and apps) with advanced graphics, which enables the development of highly realist AR experiences on mobile.

Unity has a very strong online developer community with several tutorials, forums, support channels and rich documentation which makes it an appealing option for developers interested in building AR experiences.

Cordova Plugin

Using Javascript API in the background, the Cordova plugin allows developers to work cross-platform using HTML or CSS. Apart from being attractive for the “write once, run anywhere” aspect, this API also results in lower development and maintenance costs. Apache Cordova stands out for its simplicity, empowering web developers to create AR apps.

Other supported development frameworks based on Wikitude’s Cordova extension are PhoneGap, Intel® XDK HTML5, SAP Mobile Platform and Telerik appbuilder.

Titanium Module

Based on a JavaScript API, the Titanium plugin allows you to use JavaScript programming language to be deployed across multiple platforms. Standing out for having its very own user interface API, Titanium is also open source, therefore accessible for the wide public looking to build apps.

In 2016, Appcelerator was acquired by Axway.

Xamarin Component

Xamarin is for the lovers of C#. Acquired by Microsoft in 2016, this app development framework is particularly popular for its runtime environment, ease of use and good performance.

The Wikitude Xamarin Component enables C# developers to embed an augmented reality view into their Xamarin project. One can create a fully featured app with advanced augmented reality features, including image recognition and tracking.

To better understand the architecture of the basic components which comprise Wikitude`s SDK please refer to the overview below:

As shown above, Wikitude provides a wide selection of programming possibilities for our developers. If you found this article helpful and are thinking about including an awesome AR feature into your project, get inspired by the second part of our Augmented Reality 101 series where we share an extensive list of real-world AR use cases.

If you are curious about the technical side of the most common types of AR technologies in use today we recommend navigating through the first part of our Augmented Reality 101 series.

To cut straight to the chase and get some hands-on action, download a free trial of our powerful award-winning SDK right now to put it to the test!

Questions, comments? Let us know!

If you have questions, suggestions or feedback on this, please don’t hesitate to reach out to us via Facebook, Twitter or send us an email at!

Contact us

More Blog Posts

July 29, 2020

4 ways AR transforms the customer journey

July 13, 2020

Augmented play: how to pitch AR to the toy industry

Subscribe to our Newsletter

Stay up to date with the latest Wikitude news.

Subscribe now

July 9, 2020

Now available: 3D Model Object Tracking

June 23, 2020

How to promote your digital agency on a low budget

June 2, 2020

How to get started with AR as a digital agency

May 19, 2020

Introducing the next generation of CLOUD and SDK 9.1