Mobile development moves fast, and it’s hard to stay on top of your game without losing productivity. From Machine Learning to Computer Vision to whatever else comes next, mobile developers are expected to learn and implement emerging technologies as they arrive, without missing a deadline. To make that work, you need to claw back time. In my years of experience as an enterprise mobile app developer, the best way I’ve found to do that is by automating CI/CD.
During my time at Xamarin and Microsoft, I’ve watched a myriad of companies reach the same conclusion. In this post, I’ll share some of those stories that highlight the value of mobile CI/CD and show how those companies are using some of my favorite Visual Studio App Center features to save money and time.
You can’t expect to succeed with bad code. If you want to maximize your ROI, step one is verifying quality and understanding the value of proper test coverage. I’m consistently surprised by the degree to which even large companies rely purely on manual testing and push code that has never been properly vetted.
After interviewing businesses in that situation, I’ve come to understand that perception is often the root of the issue. As developers, it’s easy to miss the bigger picture. On a recent customer visit, I asked some developers for their thoughts on mobile user trends, and their response was different from what the numbers tell us. For instance, I asked one development manager to guess at the market share for Android Oreo, Google’s most recent OS. His answer wasn’t even close. I showed him the latest figures from Google:
With a diverse ecosystem and a long shelf life for older devices, developers must be prepared to support several generations of Android operating systems.
The customer was speechless. There were as many users on the seven year-old Ice Cream Sandwich version of Android as the newest release, and the bulk of users were spread across five releases. With this knowledge in hand, he quickly realized they needed to go the extra mile and automate UI Tests across a wide range of devices and OS versions.
Conversely, a large segment of iOS users quickly adopts the latest OS version, and there are far fewer physical device models to consider, dramatically reducing the OS / device combinations required for coverage. Still, with an increasing variety of form factors (like the iPhone X), the work provisioning and maintaining those devices is substantial—and distracting.
iOS adoption is more uniform, but developers still need to test multiple OSes and devices.
We built App Center’s Test service to help that client, and millions of other developers like them, automate away that problem by enabling UI tests on thousands of real mobile devices (not emulators or simulators) and hundreds of configurations, completely in the cloud (with no provisioning beyond checking a box), using the same test frameworks they already know.
App Center's Test service tests against hundreds of device configurations and returns intuitive, visual results.
While customers are often drawn to the immediate savings of a cloud-based service over procuring and managing physical devices themselves, the real value of the services is regaining development cycles. Developers can execute UI Tests at any time, with zero impact on their work and 100% consistent automated feedback. Moreover, App Center creates gorgeous, easy to read dashboards that can easily be shared with other teams within the organization. By testing religiously and sharing the results often, the developer gets a clear sense of direction on what features to fix and what features to depreciate, saving time and valuable resources that will increase ROI exponentially over time.
Automated testing on real devices is as close as you’ll get to the real world before release, but you can only test what you know. Once an app is in the wild, you’re going to encounter new devices and unexpected use cases, and you need to collect and analyze data from those events in a systematic, data-driven way to inform your next steps, whether that means fixing bugs, editing test cases, or even changing product direction.
I’ve also met clients whose apps haven’t take off, despite having an absolutely gorgeous UI and teams of superhero coders. More often than not, it boils down to reliability. In one example, a team used crash monitoring for development builds, but didn’t monitor production builds to track crashes in the wild. It’s hard to predict what will happen in the real world, and, even with the most rigorous testing, crashes happen. Without tracking that data, the client’s feedback loop suffered, and even the customer’s team of fantastic developers was coding blindly.
To strengthen that loop, I suggested App Center’s Test, Analytics, and Crashes services. Since App Center was built to be API-first, the customer was able to integrate the services into their existing workflow. Immediately, they were able to access crash reporting and user analytics to drive their backlog priority, and they could build those use cases into an automated test suite to insure against regressions. As an additional benefit, the Product group was able to use Analytics data to determine where the app’s UI was failing. As it turns out, the interface was beautiful but cumbersome, and as the designers evolved a more fluid, intuitive UI, the audience embraced it.
Visual Studio App Center creates rich dashboards that can be shared with others to iterate.
Time and again, I’ve found that organizations are most effective when everyone involved has access to app and user analytics, so the team can collectively decide what works best. One of my favorite Analytics features that can be used by the entire team is Event Tracking. This feature gives the developer superpowers to peer into what elements in the app are being used most often.
Events are distinct user interactions that can be monitored, allow developers to learn more about feature adoption, user behavior, new usage trends, and more. This kind of feedback supports data-driven decisions about what elements to spruce up and what elements to phase out, optimizing your most important and expensive asset, your development team.
Get Started for Free
Whether you’re new to CI/CD or you’ve already built a pipeline, App Center’s modular, API-first architecture means you can still use as many or as few of our services as you want, and everything works with your existing workflow.
We only explored a few App Center services in this post, so I encourage you to connect your repo and try some of the other services, including cloud-based Builds, Distribution, and Push Notifications. Get started today for free to give it a try!