Last year an AR game Pokémon Go broke into our lives and became an essential part of our daily routine. You could see Pokémon Go players everywhere: on buses, on streets, in cafes, in galleries, even in churches. Pokémon Go opened the door of AR games for people who played it. Today you can rarely find a person with a smartphone who does not know what Augmented Reality is.
AR popularity is due both to games and to the popularity of Google Cardboards, Oculus Rift, and Gear VR. Herein lies some confusion. Cardboards and Gear VR are for virtual reality, an artificial computer simulation of a real situation. VR “transports” you into a whole new environment; whereas, Augmented Reality provides additional elements to an already existing environment. The best example is provided by Microsoft’s Hololens. However, smartphone applications provide as good an AR experience as Hololens. A great variety of applications with Augmented Reality functionality can be found in App Store or Play Store. The most popular apps are not limited to games, but include apps for tattoos, furniture retail, education, and tourism.
Customer demand for ground-breaking technology keeps increasing. Obviously, anything that can bring your business to a new level is a must have. Whether you have a picture gallery or a real-estate agency, you will certainly benefit from AR. The next question is to create a relevant app. The most important criterion on which your choice will be based is to balance quality and price. For this, you must choose a partner or team best suited for your project then choose the technology to develop.
Now it’s time to decide how your app will function. Determine your business needs then decide on which platform you want to start—iOS or Android—or choose both. Then plan your budget and timeline. After your development team considers your requirements but before they suggest possible solutions, they will ask if you want a native or a cross-platform app.
Native vs Cross-Platform Application Development
Native app development means an application will be created for one platform only—iOS or Android or Windows—because it will be developed with native languages (Swift or Objective-C for iOS, Java for Android, and C# for Windows mobile). Native languages bring numerous advantages for apps, such as:
- Native look and feel. While choosing a smartphone, users choose an OS with its unique interface. For example, iPhone users appreciate the UI and UX of iOS, and with Swift or Objective-C, it is achievable for an application.
- Code is robust—runs better and faster.
- Integration with device’s functionalities is smoother. If your app uses a camera, compass, gyroscope or accelerometer—necessary for most AR apps—native development ensures these functionalities work better than a cross-platform one.
- Changes and new features can be done simpler and faster.
- Synergy of hardware and software, such as multitouch, geolocation tracking, swipe gestures, are much easier to implement.
Still, there are some drawbacks:
- Native apps are more expensive to develop.
- Native apps take more time to develop.
The main pros of cross-platform development include:
- A cheaper solution: one developer writes a single code and simply optimizes it to various platforms.
- Libraries, such as AngularJS, React, Ember, etc., can be leveraged for web development.
- Using native modules allows creating native experience.
But, there are several cons:
- Less accessibility of hardware, including camera, GPS, accelerometer, and push notifications.
- Plain interface.
- Performance is not as good as native.
- Poor performance of apps with media components (audio, video functionalities).
- It is more difficult to make changes and add new features (once you decide to implement new features, your app might perform less smoothly).
If your app is simple (seldom refers to Augmented Reality apps) and does not require a complex functionality set—or you just want to create a prototype—there is no need to spend a large amount of money. In this case, cross-platform apps are your best option. Conversely, a very complex app is best suited for native.
Unity and Vuforia
Delivery of Augmented Reality apps usually requires Unity, a cross-platform engine (in this case cross-platform means it can be used for any OS, no matter whether a native or cross-platform type of app development). Thirty-four percent of top games are made with Unity; it is essential for AR and VR games. With Unity, it becomes possible to gain access to many additional functionalities, such as animation and 3D, it empowers graphic with shading and various effects, enriches 2D, brings audio to a new level, etc. Unity also provides pre-designed game components such as characters or game props.
One of the most commonly used Unity extensions is Vuforia. Vuforia provides code necessary to create AR applications within the Unity game engine. Some of the most useable Vuforia features include recognition and tracking of a broader set of objects, ad and magazines image recognition, user-defined images, recognition of cylinders (such as bottles, cans, cups, and mugs) and boxes, English word recognition, VuMarks, and mapping additional elements via OpenGL.
3D models bring the most advanced Augmented Reality experience to users. Games begin to look more realistic, galleries and museums can avoid paperwork and create digital signs for art objects, a real estate agent has greater chances of selling a house when showing customers where they can place furniture or how they can change the interior, and a student can better memorize dinosaur species while looking at it in 3D.
Obviously, 3D modeling should include texturing, shading and rendering to make the graphics look real.
How all this Influences AR apps
There is no doubt that the process of creating Augmented Reality apps is intricate. Such apps need constant real-time information and access to low-level handset capabilities such as geolocation, gyroscope, accelerometer, camera, and motion sensors. 3D modeling requires working with third-party frameworks, libraries, and numerous extensions.
It all becomes possible when choosing to go with native app development. Of course, there are AR apps developed with PhoneGap or React Native, but their functionalities are fist-bitingly limited. For example, Wikitude AR SDK works as a plugin for PhoneGap, a module for Titanium and a component for Xamarin. But the question is, “Will your app’s performance be good enough to present it to customers?”
You decide: native or cross-platform? First of all, you should consider your business purposes and study the topic.
I do hope this article is a great information resource for researching a subject matter. Augmented Reality is changing the way we see our world. You can bring something new and useful if you analyze all the arguments wisely.