Meet Visual Studio App Center - the future of HockeyApp

2017-11-15

App Center dashboard and mobile apps

In June 2010, Apple released iOS 4. Until then, developers and end-users had to connect their iPhones, iPads, and iPods via USB to side-load apps to their devices. The USB connection had to be on the Mac or PC on which the user had their main iTunes library, otherwise existing apps, music, and videos would be erased during the sync process. Unnoticed by most WWDC participants, Apple added a new feature to iOS 4 called Over-the-Air Delivery, which solved all this and ultimately enabled the founding of two startups: HockeyApp and TestFlight. With just a few clicks, developers could send new builds to their team and testers, who could then install them directly via the device’s browser. We didn’t call it DevOps back then, but ultimately HockeyApp and TestFlight created the Mobile DevOps space.

Today, TestFlight is a feature of Apple’s iTunes Connect and HockeyApp is owned by Microsoft. A lot has changed for iOS and Android since then, but the fundamentals are the same: As soon as the app’s developer - you - has a prototype of a new app, a new feature, or just a critical bugfix, you can take your .ipa or .apk file, upload it to HockeyApp and each tester gets an email notification just seconds later. And, with HockeySDK, testers can update right from the previous version of the app. You can also collect usage data, custom events, and fully symbolicated crash reports almost in real-time. A few iterations later, your app is ready to go live. By keeping the SDK in the app, the same data will be collected from the production release, enabling a continuous monitoring stream over the whole lifecycle of the app.

In addition to this workflow, Microsoft started offering other services for mobile developers: Xamarin Test Cloud to run automated tests on real devices, Xamarin Insights to collect crashes and exceptions specifically from Xamarin apps, CodePush to allow the live update of React Native apps without submitting to the store, and various Azure features to implement and expand your app’s backend, like Azure Notification Hubs. Each of these products has a different account system and different user interface, and developers cannot easily compose the services into one workflow. To solve this, we at Microsoft decided last year to merge our mobile offerings into a new, next generation product: Visual Studio App Center1

The Next Generation of Mobile DevOps

Visual Studio App Center builds on the strong foundation laid by HockeyApp. You can still manually upload your builds for easy distribution, but with our new Build service, you can link your repository and App Center will compile your app automatically with every push. The setup process is easy: connect your GitHub, BitBucket, or Visual Studio Team Services account, select your branch, then upload your signing certificate and profile via drag & drop. Everything else is done automatically - no need for a build server or to provision a Mac in your data center.

Once you ship the first build, you should expand your testing efforts with automated testing on real devices. App Center’s Test service offers more than 400 unique device configurations to validate your app’s behavior. Tests can be written in C# (Xamarin.UITest), Ruby (Calabash), Java (Appium), and native testing frameworks like XCUITest for iOS apps and Espresso for Android apps. If you don’t have any tests yet, you can also go back to your build configuration and enable the ‘Launch Test’. This will launch your app on a real device right after the build process and take a screenshot for validation.

App Center Build service set up flow

If you are using HockeyApp today, you likely use our open-source SDK, which enables in-app updates, analytics, and crash reporting. The new App Center SDK takes this to the next level with a new modular design. Here is an example in Swift:

import MobileCenter
import MobileCenterAnalytics
import MobileCenterCrashes
import MobileCenterPush

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
  MSMobileCenter.start("4329054b-6141-40d5-8d5d-189f023a282d", withServices:[
    MSAnalytics.self,
    MSCrashes.self,
    MSPush.self
  ])
}

Note how there are separate imports for each service - Analytics, Crashes, and Push - and how the start method references each base class. If you don’t want to use some of the services, you can remove the import, the class reference, and the respective framework reference, for example from your pod file. This reduces the list of dependencies and ultimately the size of your app.

Transitioning to Visual Studio App Center

You might be wondering what will happen to today’s HockeyApp portal in the future, and the answer is a seamless transition process. Starting today, all your HockeyApp apps are available to use in Visual Studio App Center with the 'Side-by-Side’ mode. Simply sign in with your existing HockeyApp credentials. Distribute, Crashes, and Analytics are available in App Center at no additional cost, and the new Build service offers 4 hours of build time per month for free. Over the next few weeks, the App Center team will be hard at work getting to feature parity for all HockeyApp features in App Center. Read more on where we’re at with feature parity on our roadmap page.

In the last 7 years, a core part of our journey with HockeyApp was the close relationship with you, our customers and fellow developers. We would love to hear your feedback. Tell us what you think by sending an email to transition@hockeyapp.net. We hope you share our excitement and join us for the next phase of this journey.


1During the preview phase, App Center was called Mobile Center, which raised questions from some of you whether we will continue to support desktop platforms like macOS. We launched Windows support earlier this year and added macOS today, and are committed to support all app developers.