Publish React Native Applications Over The Air with Electrode RN OTA, an Open Source Release from @WalmartLabs

Alex Grigoryan
Oct 27, 2016 · 4 min read
Image for post
Image for post

At @WalmartLabs we’ve spent the past year transforming our application stack from Backbone/Java to React/Node.js, an effort that culminated last week in the open source release of our new platform, Electrode. We’ve received a lot of great feedback from the open source community, which will help us determine the next steps for expanding and improving Electrode.

One direction we’re particularly excited about, is expanding Electrode into the mobile app space. We’ve been experimenting with and investing in React Native, and we’ve had parts of the Walmart App running React Native in production.

React Native has several benefits, including code sharing across multiple platforms, ease of learning, and an up-and-coming ecosystem, but one of its most attractive features from our perspective is the ability to update apps over the air without going through the App Store approval process. It turns out, though, that there are multiple implementations of OTA Updates, falling into a few different camps. Some implementations are proprietary, while others open source some pieces of the platform.

Because we prefer open source solutions whenever possible, we really liked Microsoft’s Code Push Client SDK. However, there is a requirement of using Azure to manage app bundles. We think Azure is great, but we wanted an application with all the power of Code Push with the ability to use it on any cloud vendor, including our own internal cloud. So we built one.

Today we’re happy to announce Electrode Over The Air (Electrode OTA hence forth), an independent application that will manage your bundles, and is compatible with the Microsoft Code Push Client. Now you can use a 100% open source solution for enabling your React Native OTA updates, with Code Push on the client side and Electrode RN OTA on the back end.

With Electrode OTA Server, you can host, manage, and monitor your JavaScript bundles on your own server, so you’re in control of access and security. With a small adjustment to your Code Push Client application, pointing it to your own server instead of Microsoft’s, you can seamlessly deploy React Native bundles to client apps running on iOS and Android.

It takes a strong CI system to smoothly manage cross-platform apps. Because Electrode OTA Server is open source, you’re free to modify and adjust its behavior to suit the needs of your application, and its pluggable architecture (based on our own Electrode Server infrastructure) means the community can extend its capabilities into areas we haven’t thought of yet.

Deploying and updating your app is only half the battle, so we also built in the ability to query the Cassandra backend for advanced heuristics to give your data team plenty to analyze. You’ll get insight into questions like when to update, how effective your last update was, and more.

We didn’t stop there. We also developed Electrode OTA Desktop, a cross-platform Electron-based application (that’s right, Electrode on Electron) to ease the management of multiple deployment environments.

Image for post
Image for post
Electrode on Electron

Electrode OTA gives you complete control of rollout plans, and rollback in case of a misadventure in configuration management — because any rollout without a rollback plan is just tempting the deployment gods.

Image for post
Image for post

All of this is just the first step in our plans for the React Native ecosystem. We appreciate all the work the community has put into Code Push, and hope this contribution helps express our commitment to giving back.

“When companies embrace open source, everyone wins; the community gets a collection of production-ready tools that have already been tested and hardened, and the community of developers on GitHub can further refine and grow the tools,” said Brandon Keepers, Head of Open Source at GitHub. “By publishing Electrode OTA on GitHub, @WalmartLabs is helping further innovation for the React Native platform and increasing standardization of the technology in its stack.”

And we agree!

Check out Electrode React Native Over The Air here:

Read The Docs Here

https://github.com/electrode-io/electrode-ota-server

https://github.com/electrode-io/electrode-ota-desktop

https://github.com/electrode-io/electrode-ota-ui

Walmart Global Tech Blog

We’re powering the next great retail disruption.

Thanks to patricia_dugan and Dave Cadwallader

Alex Grigoryan

Written by

Building Application Platform @WalmartLabs. Focused on Customer Experience. Fan of Python, Node.js, and React

Walmart Global Tech Blog

We’re powering the next great retail disruption. Learn more about us — https://www.linkedin.com/company/walmartglobaltech/

Alex Grigoryan

Written by

Building Application Platform @WalmartLabs. Focused on Customer Experience. Fan of Python, Node.js, and React

Walmart Global Tech Blog

We’re powering the next great retail disruption. Learn more about us — https://www.linkedin.com/company/walmartglobaltech/

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store