We recently began bundling CodePush with the mobile apps we develop in React Native. Doing so meant adding the library to our app code, configuring the settings, and waiting for an actual use case. When the time came to use this tool for several bug fixes, we were excited to be able to push out those changes quickly without waiting on the normal app approval process or requiring users to update the app.
So what exactly is CodePush, and how does it impact the app development process? We’re glad you asked… 🙂
The challenge of app development
With traditional mobile app development, releases are deployed through the public app stores (Apple App Store, Google Play, etc). Even though we develop our apps using a single code base that deploys to both Apple and Google Play, each app store has its own process for submitting app updates and waiting for approval. And for Apple, in particular, it can take 24 hours or more for approval.
That means when we’re trying to release a critical fix, whether it’s for content or functionality, the approval process can delay the release, leaving users and our clients frustrated.
What CodePush does
CodePush is a framework you bundle inside an app that checks for updates to the code. So when a user launches the app, it will automatically look for updates without requiring them to do anything. If it finds an update, it will download and install it. Because CodePush checks for updates every time the app launches, it bypasses the waiting period that bigger updates require.
What it doesn’t do
CodePush is meant to be used for certain tweaks and minor adjustments, not for major feature releases. Those still need to go through the regular approval processes. For example, if an update requires changes to its native code, it will need to be updated through the regular channels.
The benefits of CodePush
CodePush offers a way to quickly push app updates when there’s a bug or a minor adjustment that needs to be made. This allows us to be more nimble as developers and quickly respond to user reports or issues we’ve identified.
Without CodePush, updates are at the mercy of both the app store approval process and the user’s decision to update their app. This makes it hard to control bug fixes and critical updates. CodePush offers a seamless experience for users, reducing the number of app updates they need to perform.
Limitations and challenges
CodePush does add complexity on the project management side. It’s a little trickier to track which version of the code users are running and which version has been deployed in the app store. With CodePush in place, there will be times when we have different CodePush and app store versions. This adds a layer of complexity and potential confusion, but it’s not insurmountable; it’s just something we need to keep in mind and add to our internal processes.
In addition, CodePush is only available for apps created in React Native or Apache Cordova, although there may be similar options for other frameworks.
We’re pleased with what we’ve been able to do with CodePush so far and look forward to refining our processes even further with time and use.
Have an idea for a mobile app but not sure where to start?
We’d love to brainstorm and strategize with you! Contact us today to learn more about our processes.
Brian works with clients to capture and organize their priorities and budgets and then coordinates our development team to get the work done. In addition, he plays an important role in the system administration for our hosting environment.