AR Experience App AR application for Android

  • Client:
    Software development agency, Austria
  • Request:
    Develop an app for Android with AR functionality to introduce changes to the company key software product.
  • Result:
    Sales growth, technical debt decrease, and optimization of product scaling.
  • Technologies:
    • Java
    • Kotlin
    • JavaScript
    • CI/CD
    • Wikitude SDK
    • WebView
    • Retrofit
    • Google Cloud VisionAPI
    • Dagger 2
    • RxJava 2

Challenge

About the client

The customer was an Austrian digital agency specializing in creating AR and VR solutions for businesses from different spheres.

The client has proprietary software product that is used to create AR-based apps for their customers. The apps have common code base. However, some functionalities can be customized based on customers’ requests.
The tasks for Cogniteq

The Android app that we developed was intended for one of our client’s customers. This company produces and sells hub terminals for different organizations. The main goal of the app was to promote these products with the help of AR capabilities.

The idea behind assignment was to allow users view a virtual 3D model of a hub terminal from different sides in AR, get acquainted with its functionality and read the description.

Another task for us was related to the key product of the company. Our specialists had to develop and integrate new functionality, fix legacy issues and strengthen the entire technical infrastructure.
Why Cogniteq

Cogniteq was selected as the supplier because they were looking for seasoned Android specialists for their projects. The tasks were technically challenging and there was only one week to deliver the solution.

Our developers perfectly met all the requirements. They managed to understand the underlying code quickly, introduced many changes to the SDK and could provide professional consultations related to Android development.

Solution

    • Start of the project
      The first challenge was to understand the infrastructure of the client. Cogniteq specialists studied the SDK of the Product and the new application requirements.
    • Methodology
      We worked in the office of the client and communicated with their team directly. We chose Extreme programming methodology for the project. We had a very short cycle of feedback and a continuous development process with the everyday releases. 
  • The functionality of the app

    • Taking screenshots of AR content
      We used several Android API for working with Bitmap, applied third-party solutions and conducted integration with the server-side.
    • QR code reading
      This function was developed based on its integration with third-party solutions by means of an intermediate plugin written with C++.
    • Tools
      We created this feature to present the app to different target groups and ensure flexibility in providing access to specific functionality.
  • Peculiarities of the development process

    • CI/CD (Continuous Integration and Continuous Delivery) implementation
      These practices and tools help minimize errors, reduce the time needed for building an app and increase app quality.
    • App template
      We created a template for the AR Experience app to facilitate its further support and provide the client’s team with the possibility to re-use the code in similar projects easily.
    • Test scenarios
      Testing was a crucial part of the project. Our specialists created unit tests and integration tests for content.
Design of 3D models for AR content

The creation of 3D models was a complicated solution from the technical perspective. Our specialists built the backend that stores the entire content. This can be seen in the AR as well as a part of the app’s business logic.

For content management we opted for Wikitude SDK that is written with C++. It turned out to be the most appropriate solution as it offers Java API and several integrations with other tools. Since AR content is shown in WebView we didn’t need to write any additional code.

However, despite the benefits of the Wikitude SDK it also has some limitations. Due to the fact that the technical support team needs a lot of time for reaction to the requests of users our specialists had to examine the entire functionality on their own. As a result they also had to conduct numerous tests to determine whether they made the right decisions.

The work with AR content requires a good understanding of how WebView functions. To ensure the stable work of all the features, our developers wrote the code in JavaScript for Android. It’s vital to keep in mind that if you work with WebView that knowledge in Maths is essential to build matrices and optimize rendering.

Enhancement of the Product

We also had to refactor the code of the Product - the company’s primary application. We developed new features, fixed bugs, conducted refactoring and strengthened the entire technical infrastructure.

The main challenge for us was to understand the legacy code which had a high level of technical debt.

It was necessary to study the business processes of the company and to adapt to complete this project successfully.

Result

  • image
    The AR Experience app. Thanks to the integration of the AR features into communication with clients the company experienced the sales growth.
  • image
    The Product. Technical debt is now significantly lower. The app performance has increased 3 times compared to the period before we started the work.
  • image
    The results of the reduced technical debt can be already seen - no problems were identified during the last 6 months after the updates were introduced