Comparing Cloud Technologies enabling CI/CD process for Mobile Apps:

Introduction

In this article, we will look at the capabilities of three leading cloud platforms for mobile app development, specifically in regard to how they enable the CI/CD process (the combined practices of continuous integration and either continuous delivery or continuous deployment). 

App Center from Microsoft (appcenter.ms) allows users to continuously build, test on real devices, release, and monitor apps for every platform. App Center is advertised as a DevOps tool, paying particular attention to the build, test, distribution and feedback aspect of mobile development.

App Center enables these Build capabilities:

• Easy automated builds for specific templates

• React Native 

• Native iOS or Android

• Xamarin

• Builds can be triggered automatically on code check-ins

• Integration with Azure Pipelines

• Integration with GitHub

• Automatic app signing

• Requires initial configuration

App Center enables these UI Testing capabilities:

• More configurable than competitors, which also makes it more complex

• No remote manual testing support current, but is planned

• Test against a wide range of physical devices

• Has a good range of support UI testing frameworks

• Appium – Android and iOS testing

• Espresso – Android testing

• Calabash – Android and iOS testing

• Xamarin.UITest – Android and iOS testing

• XCUITest – iOS testing

App Center enables these Distribution capabilities:

• Can control multiple / custom channels (QA, UAT, beta)

• Internal distribution groups / access control (Testers, Stakeholders, Developers, etc.)

• Controlled public beta, via public links and distribution groups

• Integrations with app stores

• Publish build to TestFlight

• Public Direct to store

• Publish to Play Store beta channels

• Easy install of builds from portal and App Center app

• Distribute to groups without waiting for store approval

• Intune Integration to push changes automatically to specific devices via corporate policy

App Center enables these Feedback capabilities:

• Collect feedback on builds from within App Center

• Realtime analytics

• Simple analytics dashboards

• Integrate with Azure for even deeper analytics, reporting and custom dashboards

• Crash reports

• Simple dashboard for crashes

• Crashes provided using Crashlytics

• Integrates with Azure DevOps for raising bugs

Azure DevOps integration capabilities:

• Integrates with Work Item management for raising bugs

• Use Azure Pipelines to trigger builds and deployment / distribution of builds

• Custom builds can be done using Azure DevOps and pushed to App Center

• Existing App Center tasks in Azure Pipelines

Azure integration capabilities:

• Backend services that providers like AWS Mobile Hub give, have equivalents in Azure

• Advance analytics, reporting, monitoring and alerting by integrating with Azure

Google Analytics capabilities:

• Not supported in App Center

• Can still use in parallel with App Center analytics

Mobile Hub from AWS (aws.amazon.com/mobile-hub) offers a broad set of tools and services to support development workflows for native iOS/Android, React Native, and front-end web developers. It concentrates more on the backend as a service model, for features such as authentication and notifications.

Mobile Hub enables these Build capabilities:

• Build and signing, need to be done by third party platform, such as Azure DevOps

• Build needs to be published to Mobile Hub, via CLI

Mobile Hub enables these UI Testing capabilities:

• Provides remote devices for manual testing

• Test against a wide range of physical devices

• Good support for UI Testing Frameworks

• XCUITest – iOS testing

• Appium – Android and iOS testing

• Calabash – Android and iOS testing

• UI Automator – Android testing

• UI Automation – iOS testing

Mobile Hub enables these Distribution capabilities:

No distribution tools provided with AWS Mobile Hub

Mobile Hub enables these Feedback capabilities:

• Realtime analytics

• Export data to AWS S3 buckets for processing

• Easy to use dashboard

• No build in tester feedback loop

• Unable to find any crash reporting functionality

Azure DevOps integration capabilities:

No obvious use cases

Azure integration capabilities:

• Data can be exported from analytics and processed into Azure

• Complex task

Google Analytics capabilities:

No obvious use cases

Firebase App Distribution from Google (firebase.google.com) is built on Google infrastructure and scales automatically, allowing users to build apps fast, without needing to manage infrastructure. Firebase products work well individually but share data and insights, users can also benefit from functionality like analytics, databases, messaging and crash reporting.

Firebase enables these Build capabilities:

• Build and signing, need to be done by third party platform, such as Azure DevOps

• Build needs to be published to Firebase App Distribution, via CLI

Firebase enables these UI Testing capabilities:

• No remote manual testing support

• Poor UI Testing framework support

• Espresso – Android testing

• XCUITest – iOS testing

• UI Automator – Android testing

• Test against a wide range of physical devices

Firebase enables these Distribution capabilities:

• Distribution functionality provided by Fastlane

• Fastlane allows for scripted steps

• Internal distribution groups / access control (Testers, Stakeholders, Developers, etc.)

• Controlled public beta, via public links and distribution groups

• Integrations with app stores

• Publish build to TestFlight

• Publish to Play Store beta channels

• Public Direct to store

• Distribute to groups without waiting for store approval

• Can also distribute to other providers, such as App Center

Firebase enables these Feedback capabilities:

• Currently no option for tester feedback, except by email

• Rich real-time analytics

• Google Analytics at its heart

• Firebase analytics already in use

• Custom dashboards

• Integrates well with existing Google Analytics data

• Crash reports

• Simple dashboard for crashes

• Crashes provided using Crashlytics

Azure DevOps integration capabilities:

• Build and sign apps in Azure DevOps, then push for distribution to firebase app distribution

• Fastlane tasks are provided in Azure DevOps for better integration with Fastlane

Azure integration capabilities:

No obvious use cases

Google Analytics capabilities:

Analytics in Firebase App Distribution uses Google Analytics by default

Below is a quick-reference guide, comparing the software capabilities discussed in this article. In conclusion, Microsoft App Center currently provides the most functionality for mobile app development out of the three software we’ve looked at, with Firebase App Distribution providing most of the same features of Microsoft App Center, with the exception of being able to integrate certain tools from Microsoft and Azure.


Our partner Bruhati have a successful track record in helping organisations through their Architecture Maturity Journey. For more information and a FREE consultation please visit www.bruhati.com or contact sales@bruhati.com.

Feel free to comment and subscribe to be notified when a new article is published.

Follow the Author on LinkedIn

Manuel Di Toma

0 Comments
Inline Feedbacks
View all comments