In recent times Firebase has improved a lot and has added so many weapons to its arsenal. Every tool it has helps to build in a better way, improve, and grow. From the new additions, I want to discuss the Firebase App Distribution.
As the name suggests, app distribution, you can distribute your apps to the group of people or say QAs. You can share your pre-release versions to the testers, which can be easily accessed from their mobile devices. It actually has many advantages.
The biggest advantage I see is that if you use Crashlytics and App Distribution together, you will have full insights into your app versions from the single Firebase dashboard itself. For the current discussion, I will stick to the App Distribution only.
Firebase App Distribution provides many ways to distribute your apps to your testers.
I am covering the Android app distribution Gradle plugin here. So let’s quickly jump to the implementation part and see the results.
The very first and obvious thing is to integrate Firebase to your project (if not done already).
Once done with the Firebase integration now, let’s set up the App Distribution part.
1. Add the App Distribution plugin to the build. Gradle files.
Add the below plugin to the app/build, Gradle file. apply plugin: ‘com.google.firebase.appdistribution’
Add below classpath dependency to the project level/build. Gradle file. classpath ‘com.google.firebase:firebase-appdistribution-gradle:1.4.1’
2. Once synced the Gradle dependencies now it’s time to authenticate with Firebase. This is a very interesting step as it has 3 ways to authenticate.
– Using Google account via Gradle Plugin
– Using Firebase service account credentials
– Using the Firebase CLI
For this learning, I will go with the sweet and short way via Gradle Plugin. Open your terminal and run the following command gradlew appDistributionLogin For Mac or Linux ./gradlew can be used
This will give you an authentication link. Use that link to sign in to your Google account. Once you give permission to access your Firebase project, the Gradle will generate a refresh token, which will be used by the plugin to authenticate with Firebase.
Now you need to set up the environment variable FIREBASE_TOKEN to the refresh token generated. Use the below command for setting up the variable. set FIREBASE_TOKEN= refresh-token For Mac or Linux, export can be used.
The following image has all the commands used for the authentication process.
3. Now you need to configure your distribution properties. If you want you can set this for build types and flavors both. Make those changes in the app’s build. Gradle file.
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' firebaseAppDistribution { releaseNotesFile="app/releaseNotes.txt" testers="tester1@gmail.com, tester2@gmail.com" } debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' firebaseAppDistribution { releaseNotesFile="app/releaseNotes.txt" testers="tester1@gmail.com, tester2@gmail.com" } } } } flavorDimensions "version" productFlavors { demo { dimension "version" firebaseAppDistribution { releaseNotes="Demo version with limited features" testers="tester1@gmail.com, tester2@gmail.com" } } paid{ dimension "version" firebaseAppDistribution { releaseNotes="Paid version has more features" testers="tester1@gmail.com, tester2@gmail.com" } } }
There are other parameters available for configuration like custom apkPath, testersFile and etc.
4. Time for the result. Let’s distribute the build to our listed testers. For this run the command. gradlew assembleRelease appDistributionUploadRelease It actually builds the selected variant and distributes it with testers. The above command is for the release version, you can try others as well, for that just replace Release to your version. For e.g. for debug you use gradlew assembleDebug appDistributionUploadDebug. Basically it’s a build variant you want to distribute.
Once you are able to upload APK successfully. Your testers will get an invite or new build notifications. The new testers will get an email invite from the email itself they can set up the app manager and start testing the builds.
You can check the tester’s build status on the Firebase dashboard itself.
I personally believe that this tool is very much helpful in increasing the productivity of the team and of an individual as well. It saves so much effort and time of the team and ultimately helps to deliver builds fast to your customers and get their valuable feedback in time.
How to Effectively Hire and Manage a Remote Team of Developers.
Download NowMindbowser played a crucial role in helping us bring everything together into a unified, cohesive product. Their commitment to industry-standard coding practices made an enormous difference, allowing developers to seamlessly transition in and out of the project without any confusion....
CEO, MarketsAI
I'm thrilled to be partnering with Mindbowser on our journey with TravelRite. The collaboration has been exceptional, and I’m truly grateful for the dedication and expertise the team has brought to the development process. Their commitment to our mission is...
Founder & CEO, TravelRite
The Mindbowser team's professionalism consistently impressed me. Their commitment to quality shone through in every aspect of the project. They truly went the extra mile, ensuring they understood our needs perfectly and were always willing to invest the time to...
CTO, New Day Therapeutics
I collaborated with Mindbowser for several years on a complex SaaS platform project. They took over a partially completed project and successfully transformed it into a fully functional and robust platform. Throughout the entire process, the quality of their work...
President, E.B. Carlson
Mindbowser and team are professional, talented and very responsive. They got us through a challenging situation with our IOT product successfully. They will be our go to dev team going forward.
Founder, Cascada
Amazing team to work with. Very responsive and very skilled in both front and backend engineering. Looking forward to our next project together.
Co-Founder, Emerge
The team is great to work with. Very professional, on task, and efficient.
Founder, PeriopMD
I can not express enough how pleased we are with the whole team. From the first call and meeting, they took our vision and ran with it. Communication was easy and everyone was flexible to our schedule. I’m excited to...
Founder, Seeke
Mindbowser has truly been foundational in my journey from concept to design and onto that final launch phase.
CEO, KickSnap
We had very close go live timeline and Mindbowser team got us live a month before.
CEO, BuyNow WorldWide
If you want a team of great developers, I recommend them for the next project.
Founder, Teach Reach
Mindbowser built both iOS and Android apps for Mindworks, that have stood the test of time. 5 years later they still function quite beautifully. Their team always met their objectives and I'm very happy with the end result. Thank you!
Founder, Mindworks
Mindbowser has delivered a much better quality product than our previous tech vendors. Our product is stable and passed Well Architected Framework Review from AWS.
CEO, PurpleAnt
I am happy to share that we got USD 10k in cloud credits courtesy of our friends at Mindbowser. Thank you Pravin and Ayush, this means a lot to us.
CTO, Shortlist
Mindbowser is one of the reasons that our app is successful. These guys have been a great team.
Founder & CEO, MangoMirror
Kudos for all your hard work and diligence on the Telehealth platform project. You made it possible.
CEO, ThriveHealth
Mindbowser helped us build an awesome iOS app to bring balance to people’s lives.
CEO, SMILINGMIND
They were a very responsive team! Extremely easy to communicate and work with!
Founder & CEO, TotTech
We’ve had very little-to-no hiccups at all—it’s been a really pleasurable experience.
Co-Founder, TEAM8s
Mindbowser was very helpful with explaining the development process and started quickly on the project.
Executive Director of Product Development, Innovation Lab
The greatest benefit we got from Mindbowser is the expertise. Their team has developed apps in all different industries with all types of social proofs.
Co-Founder, Vesica
Mindbowser is professional, efficient and thorough.
Consultant, XPRIZE
Very committed, they create beautiful apps and are very benevolent. They have brilliant Ideas.
Founder, S.T.A.R.S of Wellness
Mindbowser was great; they listened to us a lot and helped us hone in on the actual idea of the app. They had put together fantastic wireframes for us.
Co-Founder, Flat Earth
Ayush was responsive and paired me with the best team member possible, to complete my complex vision and project. Could not be happier.
Founder, Child Life On Call
The team from Mindbowser stayed on task, asked the right questions, and completed the required tasks in a timely fashion! Strong work team!
CEO, SDOH2Health LLC
Mindbowser was easy to work with and hit the ground running, immediately feeling like part of our team.
CEO, Stealth Startup
Mindbowser was an excellent partner in developing my fitness app. They were patient, attentive, & understood my business needs. The end product exceeded my expectations. Thrilled to share it globally.
Owner, Phalanx
Mindbowser's expertise in tech, process & mobile development made them our choice for our app. The team was dedicated to the process & delivered high-quality features on time. They also gave valuable industry advice. Highly recommend them for app development...
Co-Founder, Fox&Fork