Firebase App Distribution: Improving our sharing process

Nick Holcombe Headshot on the firebase app distribution blog post

We wanted to make sharing our apps with testers easier, Nick explains how we went about it

Once upon a time..

In the olden days (no more than 2 years ago), if we wanted to distribute our Android apps for testing or for release, we’d have to hand-crank the process, creating apk files by hand and then uploading them to the Play Store or emailing to testers (and if we were on the ball, we’d also upload them to Fabric and use that to get them into the testers hands).

Those days are long gone, Google and the Play Store have made a number of improvements in recent years, to both the process of app distribution and the apk format itself.

The evolving process of distributing apps to testers

Most of the apps we produce are powered by APIs that perform product searches, take payment details and generally is the place where ‘the business stuff happens’. Normally we have Test and Live versions of these APIs - the apps that get released to the Play Store talk to the Live API whereas the Test API is used for developing and testing against (you don’t want to be spending real wonga each time you dev/test a payment flow!).

Recently we started to make use of a new Google Play Store tool called Internal App Sharing that lets you upload an app and it returns a link that you can share with QA testers.

https://www.brightec.co.uk/ideas/google-playstore-internal-app-sharing

However, we’ve recently started using Firebase App Distribution which is a relatively new way of distributing apps to testers and provides a unified approach across both our iOS and Android apps. It has a number of benefits over Internal App Sharing:

  • An App Distribution dashboard within your Firebase project gives you oversight of who has been invited to test which specific versions of your app; you can then drill into who has accepted the invitation and who has actually downloaded your release.
  • The ability to organise testers into groups that gives you control over who gets which version to test.
  • Installing your app is easy for testers - there is an app manager that testers can use which lets them choose specific versions of the app they want to install and test against. It also provides a mechanism for directing their feedback back to you.
  • As part of the Firebase family of developer tools, it has a solid pedigree and is easy to integrate into your build process

Integrating Firebase App Distribution

There are a number of ways of using App Distribution including manually uploading apks - but this is 2020 and we don’t want to go back to the 2010s! We already use Gradle in our build process and there are a few simple steps to get setup:

  1. Add the following to your app/build.gradle file
     dependencies {
     classpath 'com.google.firebase:firebase-appdistribution-gradle:1.3.0'
     }
  2. Update our CircleCI QA Distribution task to create a distribution which appears on the Firebase Dashboard
    ./gradlew assembleRelease appDistributionUploadDevApiRelease
  3. We have created different groups of testers (e.g. Brightec engineers, Client testers) and so when we have a build that we want to distribute, we go to that release and enter the Group to send it to.
  4. And that’s it - your testers will get a notification that the new version is ready, they’ll see any Release Notes you’ve added directing them to What’s New and they can go ahead and install and start testing.

Looking for something else?

Search over 400 blog posts from our team

Want to hear more?

Subscribe to our monthly digest of blogs to stay in the loop and come with us on our journey to make things better!