Getting my app in the hands of testers


About 6 weeks ago I started playing around with an idea for a game.
It was not yet a very concrete idea, but more a collection of gameplay elements that I thought would go well together.
Therefore I decided to build a prototype app in which I would put these elements to the test and see if they're actually as fun as I imagined.
The first game-loop
About two weeks ago, I had finished my first full game-loop.
When the player starts the game, they have a nutrition count of 100%. The nutrition would lower by 3% every hour. When the nutrition reaches 0%, the game is over.
Players earn food by walking. Around every 1,000 steps, they are able to claim rewards, which for now would just be one of two types of food.
Consuming the food would refill part of the nutrition.
The goal is to stay alive as long as possible.
Because the 'game' was basically playable, I started testing myself.
I just started playing the game on a daily basis, and I thought it was already pretty fun.
Distributing to testers
I decided to go with the same approach I used for Scavenger Hunt Plus.
CodeMagic
I've been a long time fan of CodeMagic and for my pet projects they are my go-to for the CI/CD. They make it really easy to set it all up with incredible guides.
My distribution pipeline is triggered for every Pull-Request that gets merged into my develop branch. Every time I finish a feature, a new version is automatically distributed to the testers.
Specially if you're new to CI/CD, then you should definitely check them out!
Their free-tier has been more than enough for me and my pet projects over the years.
Firebase app distribution
For Android I use Firebase App Distribution. I prefer Firebase over using the Play Store Test Tracks for the following reasons:
Easier to switch between versions.
Easier to work with for testers.
No issues with having to increase build numbers for every release.
When you use build flavors for different environments (production, test), Google doesn't like it when you have two similar app entries in your Play Store account up to a point where they even remove your app (true story).
For iOS, Firebase is not really an option. While CodeMagic makes it easy for you to setup and deploy your iOS app, the experience for your testers to actually being able to access and download the apps is horrific.
I did try it for this current project, but non of my testers where able to complete the setup on their devices resulting in non of them being able to download the app.
TestFlight
Because Firebase didn't work out, I decided to go with TestFlight again. Unlike Google, does Apple not care about you having similar apps just for different environments.
TestFlight is pretty good and has similar functionality as Firebase. Users are able to download all the versions you've made available and they can easily download the app through the TestFlight app.
The mayor downside of TestFlight for me is that in order to make the builds available to external testers, is that it has to go to review.
Now the external testers review is often less strict than the review Apple does for production releases, but still you'll have to wait a bit until your testers get access to your latest build.
Google Play Test Tracks
While I'm still early in development, I am not using Test Tracks. But I will start using them again when I get closer to releases and I need tests to be done with the production environment.
Using Test Tracks just gives an experience closer to the production app, as it can be downloaded through the Play Store.
Conclusion
While I'm still just 'playin' around with my prototype, I'll keep using Firebase App Distribution and TestFlight to distribute the app to the testers.
Once I get close to a production release, I will start testing from Google Play Test Tracks as well.
To automate this process, I'm using CodeMagic which build and distribute a new version on every merge to my develop branch.
Subscribe to my newsletter
Read articles from Stephan E.G. Veenstra directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Stephan E.G. Veenstra
Stephan E.G. Veenstra
Stephan is a Flutter Developer from The Netherlands. By day he is working on serious apps for Pinch, by night he likes to play around by making games and writing about what he has learned.