Mobile build distribution is hard. There’s the provisioning and signing gauntlet, of course, but the challenges don’t end there. Getting the right builds in front of the right teammates takes constant effort and shepherding, and creating an install flow that’s pain-free is difficult. Unfortunately, existing tools for distribution tend to be clunky and incomplete in their approach.
The impact of not doing build distribution well is pretty significant. When you don’t have a clear separation of different build flavors and audiences, folks might waste time testing the wrong builds (best case) or you could mistakenly ship a pre-production build to prod (disaster case). And when there’s confusion around distribution and a less-than-seamless install flow, the natural tendency on a team is to simply avoid doing much with distributed builds — meaning there are fewer eyes on fewer builds throughout your dev and release cycles, with a domino effect on collaboration, transparency, and app quality.
This is the human factors side of build distribution — the challenge of getting the right builds to the right people, and making it easy for them to do something next (install and test). Existing tooling options seem to treat this aspect as secondary, or ignore it altogether. Very often, distributed builds all land in a single, jumbled pile and your team has to carefully pick specific build flavors out of it (from one-offs and nightlies to RCs and prod builds). Where certain tools do offer some kind of grouping, these tend to be groupings of testers, not builds — meaning there’s no clearly defined separation of different build flavors, and any flavor of build could make it in front of a particular group of testers (or, worst case, in front of users). Context is also often lacking for folks on the receiving end, with only build numbers to ping back and forth over Slack (maybe also a commit hash or message if you’re lucky).
Build Distro by Runway: Untangle your builds and get them where they need to go, without all the hassle
What’s missing is a way to clearly and concretely define the different types of builds your team distributes, and then group those distributed builds accordingly — from work-in-progress builds that engineers want to get into the hands of PMs and designers, to staging builds for QA to regression test, to production builds destined for end users. For a given grouping of builds, you should be able to target specific audiences and any viewer — technical or non-technical — should be able to understand at a glance what kinds of builds they’re looking at and grab a particular build without any hunting around. Plus, team members should be able to install seamlessly, and with full context alongside each build to avoid the whole build number back-and-forth.
With that goal of foolproof, more human-centric mobile distribution in mind, we set about building a better way.
Get the right builds into the right people’s hands
Build Distro introduces the idea of build buckets to allow you to clearly define and group different flavors of builds. Instead of having all distributed builds landing in that jumbled pile, you can now separate different kinds of builds using definitions based on branch, CI workflow, or some combination of both — or using more freeform, ad hoc buckets. Not only are build flavors logically separated into buckets, but you can set up targeted notifications and scope access per bucket to ensure the right people are aware of and able to seamlessly install new builds relevant to them.
Share one-offs & early test builds more easily
With branch-based and ad hoc, personal build buckets, Runway makes it much easier to share work-in-progress builds. You can create dedicated buckets for test builds and nightlies on your main development branch or any feature branches, and everyone on your team can also have their own personal buckets to drop updates into as they work. Product managers, QA, designers, and other engineers and stakeholders can now easily grab any WIP builds, earlier and more often during the development cycle, helping your mobile org improve quality and shift left.
Make it impossible to ship the wrong build to prod
One of the worst failure modes around build distribution has to do with test or staging builds getting accidentally shipped to production. It may be rare, but when it happens, it can be devastating. Confusion around distributed build flavors is often to blame, and Runway’s build buckets remove this risk. Clearly delineate prod and pre-prod builds, and scope access accordingly.
Install app builds with less hassle, and more context
Even once someone has tracked down a build they want to check out, actually getting it onto their device comes with its own hassles. Runway makes installation foolproof and seamless: with each build, you can install directly by scanning a QR code or sending yourself a link in Slack. Plus, alongside each build you can see full context on the build flavor and exactly what work it contains — no more guesswork, pinging build numbers back and forth and hoping you’re grabbing the right version of the app.
Integrate with your existing tools for zero extra overhead
Getting up and running is simple: connect your existing CI and… that’s it. Once you’re connected, Runway will get you started with a few default shared buckets for development and RC builds, and anyone on your team can easily create scoped personal buckets. To define a new shared bucket, simply select a workflow (from among any defined in your CI, automatically pulled in by Runway), a branch, or some combination of both.
Standalone or tightly integrated with the rest of Runway
Exactly how you leverage Build Distro is up to your team. You can spin up Build Distro by itself and use it as a standalone tool. Or, for a tightly integrated experience across the entire dev and release cycle, Build Distro plugs seamlessly into Runway’s end-to-end release management platform as a beta integration, allowing you to manage everything to do with pre-prod builds and testers alongside the rest of the release context.
With Build Distro, the Runway platform is unlocking yet another aspect of a more collaborative and streamlined mobile development experience for teams — not just for engineers, but for each and every role and stakeholder involved. We would love to hear your thoughts, and invite you to reach out for a personalized, guided tour!
And stay tuned for more: our roadmap includes Build Distro iterations that will tackle things like provisioning and signing, triggers and other bucket-level automations, and even more ways to create and share one-off dev builds.