Azure Mobile Center
The Azure Mobile Center (available at mobile.azure.com) is a brand new platform that combines features from Azure and Visual Studio Team Services to provide a single platform for mobile developers.
The features it aims to provide are:
- Automatic builds (by linking repositories from Github, VSTS or Bitbucket) - no build hardware is required, their service will provision Mac/Windows build agents as needed
- Tests - Integrates with the Xamarin Test Cloud to allow testing on a multitude of unique device configurations
- Distribution - Create distribution groups and allow specific users to download your app (e.g. alpha, beta, stable channels)
- Crashes - automatic app crash collection
- Analytics - allow in app analytics
- Push notifications - Send push notifications to specific user groups
It’s currently in preview and as such not all features are fully implemented (e.g. crash reports don’t yet work on the UWP platform).
However while in preview it is completely free (so you can build your apps automatically without e.g. using build minutes from VSTS).
I have tested most features and they do work quite well:
The build page allows linking to a git repository hosted on Github, Bitbucket or VSTS.
After connecting and selecting the repository it will automatically detect the project to build.
You need to create one app project for each platform and it will automatically detect the project (*iOS.csproj for iOS and *Droid.csproj). Unfortunately it doesn’t detect UWP .csproj yet (only detects the entire solution).
While in preview the builds are limited to 30 minutes each and don’t yet support custom build steps.
If you need custom build steps you either have to wait until they implement it or use an external build agent (such as VSTS).
I need a couple of extra build steps for my Xamarin projects (such as generating icons using an external tool).
Luckily VSTS supports a “Publish to Mobile Center” build step so after setting up the build I just had to add that step and had it work instantly.
Distribution groups are an easy way to set up different groups of people (e.g. beta testers) that will get an email notification once an update is available.
Unfortunately the feature is too unpolished for me so I am not using it.
Current limitations include:
In app update notifications only work for private groups. Private groups require every person to sign up with an email address.
Public groups require users to download the app by visiting a website, however for some reason the website is doing some shifty user agent detection. E.g. when I tested the public group feature for my android app the website refused to serve me the apk and kept telling me “your browser is not supported. please switch to chrome on android”. This happend to me on Firefox desktop (fair enough, although they should totally allow me to download the apk on a desktop), Firefox Android (both regular and “Firefox Focus” versions) and even on Chrome on android (possible because it isn’t the latest version).
All in all this limits the target audience for public distribution groups too much for me to use it.
The crash report feature works perfectly (apart from UWP platform not yet being supported).
After the app crashes it uploads the crash dump (stacktrace, exception details, app version and device info) the next time it is launched.
Over time this allows you to quickly determine the most common exceptions and which versions (app and OS) are most affected.
In combination with distribution groups this feature allows you to notice new exceptions that happen to e.g. the early-beta testers and fix them before rolling out to a wider audience.
Analytics make it very easy to aggregate statistics on app usage.
This allows you to easily determine most used app features to improve on:
Push notifications allow you to manually compose a push notification and to send it to either all users are selected users.
This allows sending promotional messages (e.g. “50% off on feature X”) easily.
So far I really enjoy the features they provide (esp. build, analytics and crash reports) and am looking forward to also using the test feature.