Rollouts and Updates
Staged releases and updates.
Rollouts and Updates is a free Android Academy lesson on CoddyKit — lesson 4 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Android Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Releasing Without the Risk
Pushing a new version to every user at once is risky — a hidden crash hits your whole audience instantly. Google Play gives you safer paths: testing tracks and staged rollouts.
In this lesson you will learn the release tracks, how to roll out to a small percentage first, how updates reach users, and how to react when something goes wrong.
Release Tracks
Play organizes releases into tracks, from least to most exposed:
- Internal testing — up to 100 testers, available within minutes, for your team.
- Closed testing — invited testers via email lists or groups.
- Open testing — anyone can join a public beta.
- Production — all users on the store.
The healthy flow is to promote a build up the ladder: internal → closed → open → production.
Creating a Release
For any track you click Create new release, upload your .aab (or pick one from the App Bundle Explorer), and add release notes.
Release notes use language tags so each locale gets its own text. Keep them short and user-focused.
<!-- Release notes, one block per language -->
<en-US>
- New dark mode
- Faster startup
- Fixed a crash when opening profiles
</en-US>
<tr-TR>
- Yeni karanlık mod
- Daha hızlı açılış
- Profil açılırken oluşan çökme düzeltildi
</tr-TR>Staged (Percentage) Rollouts
For a production release you can do a staged rollout: ship to a small slice of users first — say 10% — then grow it.
Play randomly picks which users get the update. You watch crash and ANR rates, then bump the percentage: 10% → 25% → 50% → 100%.
If metrics look bad, you increase nothing or halt before most users are affected.
Halting and Resuming a Rollout
If a staged rollout reveals a problem, you can halt it from the Console. Halting stops new users from receiving the update; those who already updated keep it.
After shipping a fix in a new version, you resume or start a fresh rollout. Halting buys time without a full recall — which Play does not really offer for already-installed users.
This is exactly why you start at a low percentage.
How Updates Reach Users
By default, the Play Store app auto-updates apps in the background (often on Wi-Fi). Users may also tap "Update" manually.
Remember the versionCode rule: each release must have a higher integer than the last, or Play rejects it. The versionName is just the label users see.
android {
defaultConfig {
// Must be strictly greater than the previous release
versionCode = 13
// Friendly label shown in the store and settings
versionName = "1.5.0"
}
}In-App Updates
Sometimes you want to nudge users inside the app. The In-App Updates API offers two modes:
- Flexible — downloads in the background while the user keeps using the app.
- Immediate — a full-screen blocking flow for critical updates.
You check availability and, if an update is ready, start the chosen flow.
val manager = AppUpdateManagerFactory.create(context)
manager.appUpdateInfo.addOnSuccessListener { info ->
val available = info.updateAvailability() ==
UpdateAvailability.UPDATE_AVAILABLE
if (available && info.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {
manager.startUpdateFlowForResult(
info,
AppUpdateType.FLEXIBLE,
activity,
REQUEST_CODE_UPDATE
)
}
}Completing a Flexible Update
A flexible update downloads silently. When it finishes you must call completeUpdate() to install it — usually after prompting the user with a snackbar.
Listen for the DOWNLOADED state and then offer to restart.
manager.registerListener { state ->
if (state.installStatus() == InstallStatus.DOWNLOADED) {
// Tell the user, then finish the install
showRestartSnackbar {
manager.completeUpdate()
}
}
}Monitoring After Release
Shipping is not the end. The Play Console's Android vitals dashboard tracks the health metrics Play also uses to rank you:
- Crash rate and ANR rate (Application Not Responding).
- Excessive wakeups, slow rendering and battery issues.
Watch these closely during a staged rollout. A spike is your signal to halt before going wider.
Responding to Reviews & Issues
After launch, two ongoing habits matter:
- Reply to reviews in the Console — it improves ratings and surfaces real bugs.
- Triage crashes from vitals or your crash reporter, fix, bump
versionCode, and ship a new staged rollout.
Releasing is a loop: ship small, measure, fix, ship again.
A Safe Release Workflow
Putting the whole lesson together, a robust workflow is:
- Upload to internal testing, smoke-test with the team.
- Promote to closed/open testing for wider feedback.
- Start production as a staged rollout at 10%.
- Watch Android vitals; grow the percentage if healthy.
- Halt and fix if metrics spike, then resume with a new build.
Small steps and good monitoring turn releasing from scary into routine.
Quick Check
You shipped a production release to 10% of users and the crash rate spiked. You want to stop additional users from getting the bad version while you prepare a fix. What do you do?
Recap: Rollouts and Updates
You can now ship confidently:
- Use tracks — internal, closed, open, production — to expose builds gradually.
- Do staged rollouts, starting small and growing as metrics stay healthy.
- Halt a rollout if vitals spike, then fix and ship a new build with a higher
versionCode. - Optionally prompt users with the In-App Updates API (flexible or immediate).
- Monitor Android vitals and reviews, then iterate.
That completes Publishing to Google Play — from a signed release build all the way to safe, monitored rollouts.
Frequently asked questions
Is the “Rollouts and Updates” lesson free?
Yes — the full text of “Rollouts and Updates” is free to read here on the web, and the Android Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Android Academy course, upgrade to CoddyKit PRO.
What will I learn in “Rollouts and Updates”?
Staged releases and updates. You practise Android Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Android Academy?
No prior experience is required. Android Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 4 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Rollouts and Updates” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Android Academy lesson?
Yes. Every Android Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Preparing a Release Build
- App Signing
- The Play Console & Listing
- Rollouts and Updates