How (and Why) We Built Our New Visual Studio App Center Tester Apps: Preview Now Available!

Jessica Yeh

We’re excited to announce that HockeyApp for App Center, our native iOS and Android apps, are now available! HockeyApp for App Center brings the functionality of the App Center install website to a native app experience, making it even easier for you and your beta testers to get the latest and greatest builds as soon as they’re available. We call the app “HockeyApp” because we want to welcome our HockeyApp users to using this app; all the apps you distribute through HockeyApp are also visible and downloadable with this app!

Why You, Your Team, and Your Users Will Love HockeyApp for App Center

The native apps give you all of the features of the App Center install website, plus:

  1. Download and install apps (and app updates!) faster, and with fewer clicks, so you and your testers can focus on testing and improving user experience.
  2. Find apps with ease, searching by name or filtering by organization. We know a lot of developers and beta users are in several distribution groups or multiple organizations; now, it’s easier to sort and find the apps you’re looking for.
  3. Snappier and faster load times. We use data caching, so you get prompt, performant, and responsive apps.
  4. A better iOS experience by allowing iOS users to register devices via a dedicated profile page. If you’re distributing iOS builds, this makes it easy to add your testers’ UDID to your provisioning profile, so users can install new builds. As a tester, you’ll be able access your device details. If you’re not provisioned for a build you’d like to install, you’ll see a notification that the developer needs to add your device, so you can contact the team to request access.

Get Started in a Few Easy Steps

We’ll submit both apps to the public app stores in the coming weeks, but we wanted to share this public preview with you immediately to give you and your testers more choice in how you distribute and download releases. As always, we’re also looking forward to hearing and incorporating your feedback.

If you’re an Android user, visit the App Center public distribution group page from your Android device to download and install the app.

If you’re an iOS user, visit our TestFlight sign up list, and we’ll respond and give you access ASAP. One to two business days after you sign up, you’ll receive an email invite from us with TestFlight.

After you’ve downloaded the app on your device, sign in with your existing App Center or HockeyApp account credentials. You’ll see all of your apps, both your releases and apps you’ve been added to as a tester or collaborator, and can start searching and downloading the latest or previous releases at the tap of a button.

Don’t have an App Center account? Create your free account today.

Important tip for developers: To allow testers to enable in-app updates to your builds straight from HockeyApp for App Center, make sure you have the latest App Center iOS and Android SDKs installed in your apps. Get the latest: iOS | Android | Xamarin.

How We (the App Center Team) Use App Center

We believe in using our own products and services to help us understand what’s working well and where we can improve the experience for all users, from developers and product managers to QA and designers.

To build both HockeyApp for App Center apps, we used Xamarin.Forms and set up automated CI/CD with App Center, including Build, Test, Distribute, Crashes, and Analytics services.

Build

We host our project on GitHub, and we’ve configured our repo to compile with App Center Build service with every git push. We’ve created two separate apps in App Center to have two separate app secrets (one for iOS and Android), connected to the same GitHub repo, and the Build service automatically picks up the correct project solution in the repo based on the platform we’re pushing.

Like many teams, we have multiple developers working on the native tester apps at any given time, so seeing success/failure status for each build is extremely useful. As we collaborate, we run into instances where the project will build locally for one person, but fails to build via the Build service (and for other collaborators). Clearly seeing a “built” v. “failed” status makes is easy for everyone to spot issues and fix them quickly, before they snowball and become more difficult to correct.

Everyone on the team also receives emails for successful distribution of builds. Usually, the first person who notices the “success!” email is missing investigates and notifies the developer whose commit failed.    

Test

Using App Center Test service, we automate the majority of our quality control. We have hundreds of real Android and iOS device models, with different screen sizes and operating system versions, at our disposal. This allows us to author and run automated tests across various configurations to verify both functionality and that visual elements look and behave as expected.     Automated testing helps us catch important issues that we might easily miss with manual testing, so we’re more confident in our releases.

For example, we include an “in-app rating / feedback” modal, inviting users to tell us how we’re doing on a scale of 1-10. On devices with smaller screens (like Nexus 5), the “5” and “10” were cut off (see below). Not only is this an obvious UI error for users, we also could have missed critical user feedback.     We’re committed to continuing to improve and to providing high-quality UX for all users, regardless of device or operating system, and we want to make sure we’re making this an easy and clear process, so we seek out as much feedback as possible. For more info, read Glenn Wester’s blog post on how to Ship Better Apps Faster with App Center Test).

Distribution

We automatically distribute successful builds to our App Center internal testing group, so everyone always has the latest version, can dogfood the app, and provide feedback. We save time, since we don’t need to manually archive releases, distribute new builds, or send update notification emails, and our testers receive an in-app update prompt and click to update with no other action required.

For the iOS version, we’ve configured two specific branches: the development branch (master) and the TestFlight branch (for distributing to external users, as noted in the “get started” section).

  • We sign the development branch builds with Microsoft’s enterprise provisioning profile, so all internal teams have access and can install the app immediately.
  • TestFlight submissions require a different provisioning profile, so whenever we’re ready to submit a new build, we merge changes from the development branch to the TestFlight branch, automatically creating a build that we can download and publish to TestFlight.

Crashes

Crashes are unavoidable. Just like all teams, we want to know what, when, where, how, and why crashes occur. We’ve integrated HockeyApp for App Center with the App Center Crashes SDK to automatically collect crash reports to identify and fix crashes.

App Center Crashes service groups crashes, which allows us to get a quick view and drill into groups to get specifics, from the method and class the crash occurs on to exception types, error messages and full stack traces. This level of detail helps us see exactly what’s going wrong and implement a solution.

After fixing an issue, we simply close the crash group to ensure we’re only focusing on active crashes.

To learn more about getting started with the Crashes service, check out our guest post from Payit’s CTO on Solving “What the Bug?” with the Visual Studio App Center Crashes Service.    

Analytics

After we ship or release to testers, we need to know how our apps behave in the wild, so we can identify trends, prioritize improvements, and continually improve users’ experience.

The App Center Analytics SDK automatically collects session information, and we also record custom events for more detailed analytics. For example, we track how many times various release versions are installed, so we can nudge users to get the latest versions and/or identify if we need to recruit more testers.

Since we want our apps to be as performant as possible, page load times are another important metric for us. We use App Center Analytics to collect page load times, tracking custom events with the duration as a property, and export the data to Application Insights, where we can do more robust analysis and generate Power BI charts. Read our blog post on Better Decisions Through Better Analytics: Visual Studio App Center with Azure Application Insights to learn how to get in-depth insights and make data-driven decisions.

After you use HockeyApp for App Center a few times, you may notice a pop-up asking you to rate the app and share your feedback (the 1-10 rating modal mentioned earlier). We use App Center Analytics custom events here, too. After you submit your feedback, we send a custom event with properties containing the rating and comment to the Analytics service, and use the Application Insights export feature to query the data set and do more detailed analysis.

What’s Next

In addition to submitting the public app stores and making the source code publicly available so everyone can contribute, we’ll continue to improve the apps to give you and your testers the best experience possible.

Your feedback and suggestions for what we work on next are important to us, and we’re available on all channels. We invite you to share your thoughts with us in the app feedback modal, by tweeting @VSAppCenter, or from your App Center portal by clicking on the blue chat icon.     Get started now button    

Feedback usabilla icon