Posted yesteryear Peter Armitage, Software Engineer, Google Play
Releasing a novel version of your app is an exciting minute when your team's difficult operate in conclusion gets into the hands of your users. However, releasing tin also hold upward challenging - you lot desire to overstep away along your existing users happy without introducing functioning regressions or bugs. At Google I/O this year, nosotros talked nearly staged releases every bit an essential purpose of how Google does app releases, allowing you lot to create out the inherent risks of a novel release yesteryear making a novel version of your app available to only a fraction of your users. You tin together with therefore growth this fraction every bit you lot attain confidence that your novel version plant every bit expected. We are excited that starting today staged releases volition hold upward possible on testing tracks, every bit good every bit the production track.
We volition have got a closer facial expression at how staged releases work, together with how you lot tin exercise them every bit purpose of your release process.
Advantages of a staged release
The start produce goodness of a staged release is that it solely exposes a fraction of your users to the novel version. If the novel version contains a bug, solely a pocket-sized number of people volition hold upward inconvenienced yesteryear it. This is much safer than releasing a novel version to all of your users at once.
Another produce goodness is that if you lot discovery a bug, you lot tin halt the rollout, preventing whatever novel users from downloading that version. Instead, they volition have the previous version.
These capabilities should salve a lot of the dubiety of rolling out a novel version. And that volition let you lot to produce it to a greater extent than often. We encourage releasing versions of a server to a greater extent than often because it reduces the number of changes betwixt each release, allowing you lot to to a greater extent than easily exam together with troubleshoot. The same regulation applies to apps, though at that topographic point volition hold upward a delay earlier most of your users upgrade to the latest version.
Staged releases every bit purpose of your normal release process
Let's facial expression at a typical release procedure for an app alongside 100,000 users.
- Every Mon the developer builds a novel version of the app from the latest version of the code that passes the automatic tests. They force the novel release to Google Play's internal exam track, together with their QA squad straightaway starts testing it manually. Any bugs they discovery tin hold upward fixed together with a novel version tin hold upward built together with pushed for them to re-check.
- On Tuesday, if the QA squad have got approved the latest release, it tin hold upward promoted to the app's alpha track. All the employees at the companionship have got opted inward to testing. Once the novel release is pushed to the alpha track, the employees tin download the novel version. They tin produce this manually, or they may have got auto-updates enabled, inward which illustration they volition in all probability update inside a few hours.
- On Wednesday, if at that topographic point are no reported issues alongside the release, they tin promote the release to the production rails together with start a rollout at 10%. This agency 10,000 users volition have got the chance to upgrade. Some volition upgrade immediately, others volition wait. The 10% of users that have the app start are randomly selected, together with the users volition hold upward randomly chosen each week.
- On Thursday, the developer checks the Play Console to come across their crash reports, Android vitals, together with feedback. If these all facial expression expert they tin growth the rollout to 100%. All users volition hold upward able to upgrade to the novel version.
- On Friday, the developer doesn't modify anything, to ensure a stress-free weekend!
For large apps together with pocket-sized apps
Some apps are only starting out, together with although there's no QA team, it's nonetheless worth testing the app on a few dissimilar devices earlier releasing it. Instead of having a rails for employees, the developer has added their friends together with family, who tin contact them if they come across an issue.
When an app gets larger together with uses the opened upward testing track, it may have got 5,000 testers. These testers won't give populace feedback on the Play store, but volition hold upward able to give feedback to the developer directly. If this app has 1 1 grand 1000 users, they may start release to 1%, earlier going to 10%, together with therefore 100%.
Once an app becomes really popular, it could have got over 100,000 testers. In that illustration the developer is at nowadays able to produce a staged release on their testing track.
How to bounce dorsum from issues
Bugs happen, together with if you lot discovery a employment alongside your novel version you lot may desire to halt the release. This volition halt users from getting the novel version, either yesteryear upgrading or installing for the start time. However, those who have got already got the novel version volition non downgrade.
If the number was non inward the app itself, but on a server that the app communicates with, it may hold upward best to create the number inward the server, together with therefore resume the release. Resuming it allows roughly fraction of your users to access the novel version again. This is the same laid of users that were able to download the release earlier it was halted.
If the number was inward the app, you lot volition have got to create it together with release a novel version. Or alternatively, you lot may conduct to rebuild the previous version alongside a higher version code. Then you lot tin start a staged release to the same laid of users that the previous release went to.
API support
Staged releases are supported inward v3 of the Play Console API on all tracks. Mark a release every bit "inProgress" together with laid a fraction of the population to target. For instance, to start a staged release to 5%:
{ "releases": [{ "versionCodes": ["99"], "userFraction": 0.05, "status": "inProgress" }] }
Alternatively, if you lot release using the UI, it volition propose a fraction.
What next?
We promise you lot discovery these features useful together with have got wages of them for successful updates alongside Google Play. If you're interested inward roughly of the other smashing tools for distributing your apps, check out the I/O 2018 sessions, together with learn to a greater extent than nearly exam tracks together with staged updates.
How useful did you lot discovery this blogpost?