Publishing new app versions can be scary. Once a version is published, it’s out there for good, bugs and all, and any bug fixes need to go through a new app review process that may take days. Rolling out your app releases gradually will help you catch critical errors early and release with much more confidence. This is a guide for releasing apps with gradual rollout on iOS and Android.
Gradual rollout means initially rolling out your release to only a subset of users and then gradually rolling it out to everyone provided no critical issues were found.
In an ideal world, unit tests, e2e tests, and manual QA will catch all of the bugs, but let’s face it, a lot of issues are only found in production. So the gradual rollout may be a difference between having 10% of your users encounter a serious issue vs 100% of them. And you’ll certainly feel the difference in your app rating.
It will probably come as no surprise that the gradual rollout works completely differently on iOS and Android.
Here are the key differences:
In both stores you have the option to halt the rollout completely as well as convert to a full rollout at any point.
For App Store releases, you choose whether to opt into this feature before you submit your app for approval.
After your release has been reviewed and published, this section will switch to a view that shows which percentage of users the app has been rolled out to.
At any point during the seven-day rollout, you can choose to skip the phased release and immediately release to all users.
If any critical bugs are found and you want to stop the rollout, you can pause the phased release for up to 30 days. This should give you enough time to build, review and publish a new version instead.
For Android, you can choose a rollout percentage for the release when you submit it, and unlike iOS, you can choose the exact rollout percentage. If your app is available in multiple regions, you can also choose which regions to roll out to.
After your release is published, you can monitor its progress on Google Play, and either update the rollout to a higher %, or halt the rollout if you’ve found an issue. Halting a rollout will not downgrade existing users, but it will prevent new users from installing that version of the app.
Releasing your apps with gradual rollout is pointless if you don’t also monitor the release. It takes some time for the results of the release to come in. The 24-hour mark is a good time to check if things are looking fine for the new release:
The decision of when to roll out to everyone is usually up to you and the business.
One thing to note is that for iOS you don’t get to choose the rollout %, but since all new users always get the new app, you’ll usually see a higher percentage of actual users from iOS when it’s only rolled out to 1% than you do with Android at 10%.
Here’s an example of a rollout workflow:
But the actual workflow depends on your needs and the release. Did a lot of things change and you’re nervous about the changes? Release more gradually. Was it a small but critical bugfix? Then release faster.
Using a gradual rollout can be a huge help in preventing critical regressions or bugs from slipping into production. Considering how slow it can be to get new app versions reviewed and published, this can make a huge difference. We hope to never find issues at this stage, but if we do at least we can catch them early and minimise the effect on users.
For more info, check out the official documentation for phased releases on iOS and staged rollouts on Android.