We quickly became constrained by needing to add and provision new hardware, manage them and ensure they were all working properly, not to mention the cost of powering, cooling them, and so on.
Docker for mac android emulator android#
Initially we ran Android tests and builds on a bunch of Mac minis and hardware we had lying around-we had some prior experience here, and this worked really well initially to get us off the ground.Īs we grew the team and codebase, however, this approach threw up some tricky scalability issues. We achieved this by removing Docker, better utilising GCP hardware and Buildkite parallelisation, I wanted to share these techniques with other teams building mobile applications. We've seen a massive 65% reduction in overall Test job times Recently we've made some massive improvements to our Android build and testing speeds. Despite these downsides, we’ve also found that this style of testing has been invaluable time and time again to ensure that we’re shipping the best possible product to our users. The tooling is challenging, and can be unreliable with nasty, unexpected edge cases. Native on-device testing (of both Android and iOS applications) is inherently quite complex and resource intensive.
Of course, we’ve faced some challenges shipping updates to our mobile applications.
We’ve been making around 5 deployments a day since the first day we had a production environment to deploy to. One of our mottos is, “We’re in the business of shipping software updates often." From the start, we’ve always placed a lot of importance around being able to deploy code to production really efficiently - both server code, and our Android and iOS apps. We’re the fastest growing and best loved digital bank in Australia, and that success has a lot to do with our ability to quickly release new and useful features to our end users. I'm a Software Engineer at Up, a digital bank headquartered in Melbourne.