How ConstructVR makes building and installing GearVR apps so fast

The focus of this blogpost is to go through why we really care about the user experience and how we achieve it on the engineering side.

Allowing your clients, customers, testers and teammates to easily build and install GearVR apps on the fly encompasses a few engineering challenges that we really think about on a day to day basis. From automating the Oculus Signature File process on the backend to installing a GearVR app that could be up to 10GB in size. We think about all cases in between and continue to relentlessly simplify for the benefit of the user.

User Experience First

When it comes to building features, our engineering team thinks about the user experience first. As a user of the ConstructVR android app, which lets you easily install private GearVR apps, you’re presented with a list of GearVR apps that users have invited you to use.

Since ConstructVR is not a marketplace, we only distribute private GearVR apps, we automatically invite a first-time user to a sample GearVR app that can be installed. This ensures that the first-time user doesn’t feel like its a ghost town and understand that they need to be invited to specific apps.

When a user gets a list of GearVR apps they can install, they can tap into the details, build, and install. We’ve given the app to several non-technical users to test out the experience and they’re incredibly happy that they don’t have to deal with OSigs anymore, as well as, they’re happy with how fast they can get into the GearVR and start testing. Productivity is one of the core aspects we strive for — if your clients and testers are more productive, the happier they are, the more they love your work!

High Level Systems Diagram

In the above diagram, we have our web application and Android app talking to an auto-scalable API server which delegates different commands. From there, we have several different queues that enable workloads for private builds, uploads, and revisions to different GearVR applications and we have Dockerized applications focused on doing all adding/removing OSigs from APKs, fetching all the meta information, signing the APKs (this is computationally expensive with more files inside your APK), verifying the APKs, as well as, uploading it to the S3 (which is served by our CDN over HTTPS). Once these APK Builder apps finish executing their commands, they call back to the API server to give a status update (this is how we’re able to give you real-time updates on the site and on mobile).

With our current setup, we’ve timed large APKs from 1.3GB to take up to 10 seconds to build. Smaller GearVR apps which are less than 500MB seem to only take a 2–4 seconds. Since we’re distributing the APKs over AWS CloudFront which is a content delivery network, we’re able to serve these files geographically closer to the user which ends up being a super fast download.

Although we just touched the surface on how our platform is evolving and how it scales to serve high workloads. Some of the things coming up on the roadmap are Android DayDream support, more simplifications on workflows, and better integrations (we currently support Slack, CircleCI, Jenkins) to keep your team in the loop with the latest versions of your GearVR applications.

ConstructVR provides simple and secure GearVR app distribution. We remove the pain of managing OSig files and automatically distribute new versions to your clients and testers. Get started today for free!

Cheers,
Jaime Bueza
Co-founder, ConstructVR

Jaime Bueza is a Canadian entrepreneur and Y Combinator alumni. He has delivered software globally for over a decade to clients including Nintendo, Starbucks, Bacardi, Nike, Electronic Arts, Ritchie Brothers, Kiwi Collections, Cox Communications, Microsoft, and DELL. When he’s not engaging with customers and clients, he’s helping technology communities grow through open source and tech events.