Augmented Reality 101: development tools and extensions for beginners

Paula

Wikitude is well known for supporting a wide range of development frameworks. Our SDK is constantly updated to meet the demands, needs, and wants of software developers worldwide. But for beginners, learning Augmented Reality 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. AR has never been more accessible, thanks to our Augmented Reality 101 guide for beginners.

First things first:

Software Development Kit (SDK)

An SDK is a set of tools, software, code samples, guides, technical documentation, libraries, processes, and everything needed to develop software applications for specific platforms. A go-to tool for Augmented Reality beginners and developers.

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.

One of the most popular AR features, which has been highly adopted by the market, is Image Recognition:

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, Java for Android, and C++ for Windows.

The Native API does not integrate a separate rendering engine, developers have full control and, therefore, maximum flexibility to use the rendering engine of their choice. This “tailor-made” characteristic, consequently, requires 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.

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 Flutter. 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. 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 that allows developers to preview content and run their apps on both iOS, Android, and Windows using the same code base.

Since 2020, Wikitude is offering two Unity Editions: SDK Expert Edition (EE) and SDK Professional Edition (PE). Developers can use ARkit/ARCore’s positional tracking via SMART in PE and via AR Bridge feature in EE. The list covering the differences between EE and PE can be found here.

Unity is also a popular choice for games (and apps) with advanced graphics, which enables the development of highly realistic AR experiences on mobile. It 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, such as the one below:

Cordova Plugin

Using the 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 app builder.

Flutter Plugin

Flutter is Google’s open-source UI SDK. Launched in 2017, this framework has gained significant momentum among developers looking to build cross-platform apps. For Wikitude, this plugin runs on our JavaScript API and enables the full feature set of the Wikitude SDK, powering Flutter projects with AR. It includes ARKit & ARCore (SMART) on supporting devices.

Xamarin Plugin

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.

Architecture of the Wikitude SDK

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, including augmented reality for beginners. If you found this article helpful and are thinking about including an AR feature in your project, get inspired by the second part of our Augmented Reality 101 series for beginners, 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 for beginners series.

More posts from the AR 101 series:


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

Download and start testing with the free trial
Previous Article
3D Model Tracking: Leveraging CAD Models for Augmented Reality
Next Article
3D Model Tracking: Leveraging CAD Models for Augmented Reality