How to Stage Rollout Features using Firebase Remote Config (Android & iOS)

The Google Play Store has a great feature called “Staged Rollout“. It allows you to slowly release your app to a percentage of your user base. This feature is not available on the iTunes App Store. Using Firebase Remote Config, we can do much more than just stage rollout an entire app – we can stage rollout individual features within an iOS or Android app. 

By using the Google Play Store staged rollout feature, we can see how well a new version of our app is performing in the field without impacting our entire user base.

This is how it works: When uploading an APK on the Google Play Console, selecting the dropdown caret next to the giant Publish Now button allows publishing your app as a staged rollout. You can then choose a percentage of your user base that will receive the update. Random users will be chosen from this percentage and will have the update available to them for download.Staged Rollout in Google Play Store

The staged rollout feature on the Google Play Store has helped my team detect issues that weren’t found during the testing or development phase.

After using the staged rollout feature for a while, I assumed this was a standard feature and when asking iOS developers, it became clear to me that this isn’t available on iTunes.

When I was using Firebase Remote Config, I found something extremely handy. By leveraging the User in Random Percentile conditional, you can easily achieve a similar type of staged rollout in your iOS and Android apps without relying on the app stores to do it for you.

In this blog post, we will cover how to implement a staged rollout feature in your apps, focusing on the Android implementation (but iOS is very similar). If you are interested, check out my previous post on “A/B Testing your app using Firebase Remote Config“.[adwords_square]

Create feature flag and staged rollout conditional

  1. To set up your Firebase Project – follow the instructions here for Android and here for iOS.
  2. Navigate to Remote Config on the Firebase Dashboard. Create a conditional and use the “User in Random Percentile” to target 0 – 10% of your users. Name this conditional relative to the  parameter that you are going to define next.Staged Rollout percentage in Firebase Conditional
  3.  Create a new parameter called “feature_add_friends“, set the default value to false and the value for the above created conditional to true. Staged Rollout conditional

Use the feature flag

Within your app, you can now consume the parameter as you would any other variable from Firebase Remote Config and the server will decide if you should see the feature or not.

The part you should be interested in, is line 38 – 45, where we fetch the parameter and use it in the app. [adwords_square]

Rollout to more users

Once your feature has been released onto the app stores and users start to download it, you will be able to gauge how well it is performing. When you gain more confidence with your feature, you can slowly increase the percentage to more users.Increase staged rollout percentage.

When you are happy for all your users to use the new feature, you can simply remove the conditional altogether.

That is all you need to do in order to stage rollout a feature using Firebase Remote Config! Let me know what you think on Twitter – @riggaroo.

If you enjoyed this blog post, please consider buying me a cupcake!