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.