September 15th, 2017

Guest Blog | Fixing Disasters ASAP with Instant Updates

Visual Studio Mobile Center is now Visual Studio App Center. Learn more here.   This is a special guest post from Michael Hayes, co-founder of Add Jam and Pocket Leap.

Web developers have one big advantage over mobile developers: when users report a bug in the latest update, if we react fast we can push out a fix in no time, and on the next page refresh users will instantly see the fix. For mobile developers, shipping a bug has much larger implications, forcing us to play the waiting game with store review processes. Approval turnaround times have gotten better, but it still means getting fixes to our users doesn’t happen in seconds, it takes days or weeks.

Like many developers, we build mobile and web experiences, and we know this struggle all too well. Bugs happen. It’s not a matter of if, but when, and most importantly, how bad. We know that one negative mobile experience can mean the difference between a loyal user and an uninstall. As one of a two-man founding and development team, launching for a time-sensitive, paying customer is always stressful—but if we encounter a bug or an issue? Historically, this would equal one thing: disaster, from calling the customer to apologize to junk food-fueled late night coding sessions, to countless pleading emails requesting an expedited store review.

Now, though, the app store review waiting game is a thing of the past for us, thanks to the power of CodePush. We ship continuous updates behind-the-scenes, fixing issues before our customers or users even know there’s an issue; they just see an amazing user experience.

Going from Disaster to Rave Reviews: Turing Fest 2017

Scotland’s biggest tech conference, Turing Fest 2017, selected our CMS for native mobile apps, Pocket Leap, for its official conference app to provide anytime, anywhere access to conference sessions and agendas for 1,000+ international attendees and 50+ notable speakers.

We built and submitted the app to the iOS App Store and Google Play Store for approval with an extremely useful feature missing: we failed to display conference speakers’ presentation times. Not a critical bug, but not the experience we wanted.

Pre-CodePush, adding this minor, yet essential, change would require rebuilding and resubmitting to each store for review. Since the two-day conference had already started, we would have had no hope of an update in time.

With CodePush and React Native, it was a five minute fix-and-deploy, and users immediately saw presentation times across platforms. Conference attendees didn’t realize the initial mistake, due to one fundamental difference:

CodePush updates are silent and take place in the background, automatically displaying on our users’ devices without prompts or app updates required.

Instead of waking up to negative user—and paying client—feedback, we saw conference attendees sharing their love for the app on Twitter.

Before and after pushing our instant fix.

Summary: CodePush = Less Stress, Instant App Updates, and Happier Users

Traditional release processes — building a binary and submitting to the stores — force us to rely on users downloading updates. Automatic app updates are great, but we rarely find 100% of our users with the latest versions of our apps. Given this reality, CodePush is quickly becoming critical to our development process.

We had a proof of concept up in running in 30 minutes. Our first step was to add the react-native-code-push dependency to our project. Running react-native link react-native-code-push asked us some simple questions to guide us through set up (asking us for API keys, for example). After that, it automatically created the necessary files, and all we needed to do was add a couple of lines of code to our Root.js.

import codePush from 'react-native-code-push' @codePush export default class Root extends Component { ...

Really simple to get up and running and, after a day’s work, we had fully integrated the CLI with our CMS platform. That means going forward, every app we create is a distinct CodePush project, and we can push the same instantaneous updates to our users at any time.

Our Turing Fest 2017 app in action.

As a co-founder and a developer, I can’t recommend CodePush enough. If you’re working on a React Native project, you’ll find it essential too; it’s simple to set up and use, and it removes a ton of stress.

More about CodePush

CodePush is a service in Visual Studio Mobile Center that allows developers to deploy React Native app updates directly to users’ devices, bypassing the public app store review process. Developers can easily fix bugs or add small features to JavaScript code, eliminating the need to rebuild and resubmit apps for review.

If you haven’t already, create your Visual Studio Mobile Center account, connect your first app, and start shipping better apps now.

Have an account? Log in and let us know what you’re working on!

About the Author

Michael is co-founder of Add Jam, working from the heart of Glasgow to turn ideas into iOS and Android apps. Add Jam makes mobile more affordable and accessible to tourism businesses with Pocket Leap, a CMS for fully native apps. If you’re ever in Scotland, Michael is always keen to meet for a beer. Find Michael on Twitter and GitHub.

0 comments

Discussion are closed.