What is the best way to build and deliver the app? Which service will handle code signing? How will usage and crashes be monitored? How will users be authenticated? The list goes on and on. And because of all of these complexities, we create a lot of assumptions and conflicting thoughts on what DevOps really is. We can relate this to the picture below of a twist on the classic parable of The Blind Men and an Elephant:
The Blind Scientists and the Elephant
This is a story where a group of blindfolded scientists come across an elephant. They start feeling the object in front of them but each only feels one part of the elephant. They then describe the elephant based on their partial experience and they disagree on what an elephant is. One says it is like a rope; another says it is like a tree. Because they are scientists, they become experts on their partial experiences with the elephant. So the moral here is that people become experts on their partial experiences, sometimes forgetting the big picture. We can relate this to DevOps, in that there are so many processes we have to do to achieve automation that we forget to see the whole picture. So in the current DevOps landscape, each process depends on an expert that handles it. For example, someone creates a HockeyApp account and is in charge of monitoring and distribution since he owns the account. What if the person goes on leave? An iOS developer will take care of the build server for iOS – But what if the build server goes down and the iOS guy is not around?
In reality, DevOps is just the sum of these different processes where the main goal is to deliver products faster. Microsoft realises this and combines all these processes into one platform called Visual Studio App Center.
Visual Studio App Center: A One-Stop Shop for DevOps
Visual Studio App Center has everything one needs to manage the life cycle of mobile apps, from creating automated builds, to testing on devices in the cloud, to distributing to beta testers and uploading to app stores, as well as monitoring of your user’s usage through crash and analytics data. Visual Studio App Center is available for iOS, Android, Windows and even macOS apps. Xamarin, Objective-C, Swift, Java, and React Native are supported across all of the features.
To start using Visual Studio App Center, you can use your Github, Microsoft, or even your Facebook or Gmail account. After logging in, you can immediately see that the web-based portal is very straightforward and easy to use.
Using App Center, you can connect to your Github, Visual Studio Team Services or Bitbucket repo, configure fields, upload the necessary keystore files and start building. All of this is done in the cloud, so you don’t have to think about setting up a server for your apps. You can enable your builds to “launch test” your apps to verify whether the app builds in real-world iOS and Android devices (albeit with longer build times). You can even add post-clone, pre-build, and post-build scripts to further customise your builds
There are a ton of benefits in catching bugs in your app before distributing it to your users. The Test feature will let you run automated UI tests for your iOS and Android apps on real devices on the cloud. You can create tests using various test frameworks like Xamarin UI Test, Appium, Espresso, and XCUITest for iOS. You can set the tests to run on every commit or manually. There are also screenshots of every test step as well as logs and stacktraces so you can identify bugs and failures quickly.
For distributing your builds, you can create different groups so you can send the right builds to the right users at the right time. App Center uses the distribution technology behind HockeyApp so you can also release your apps to internal users, public beta testers, and even to Apple’s App Store, Google Play or Microsoft Intune.
App Center has integrated Analytics in their platform so developers can easily analyse their apps once it they have been distributed to their users. This helps us further understand our audience whenever they use our app. In this section, you can see active users, daily sessions per user, session duration, top devices used, and even the countries where the app was installed.
Crash reporting is also included in App Center and is a very useful feature that makes it easier for developers to monitor the health of their apps. Whenever your app crashes, App Center will guide you to exactly where in the code the error occurred, with full symbolication, which is a huge timesaver in debugging. Crash reporting also lets you create tickets in your bug tracker whenever a crash in your app happens.
Visual Studio App Center is currently being used as the DevOps tool of choice in several mobile app projects in EPH. App Center not only helps us to easily set up and keep builds and releases streamlined and distributed to testers and customers but also provides services for automated testing and monitoring of multiple mobile applications across different platforms.