Apple’s new Xcode Cloud announced at WWDC on June 7th is a big deal. It add Continuous Integration / Continuous Delivery (CI/CD) features built right into Xcode. Adding these DevOps capabilities directly into Xcode, is similar to the capabilities in Microsoft’s Azure DevOps and Atlassian’s product line. And, in typical Apple style, they innovated in ways that make using Apple’s tools a better solution for app development for Apple platforms, than using third party or open source options.
Let’s do a quick tool comparison with Microsoft and Atlassian. And be sure to check out the Learn More links section for lots of links to Apple WWDC session videos, details on Apple, Microsoft, Atlassian products, and some essential background details if you’re new to DevOps and CI/CD.
What Is Xcode Cloud ?
Apple says it best on their Introducing Xcode Cloud page:
Xcode Cloud is a continuous integration and delivery service built into Xcode and designed expressly for Apple developers. It accelerates the development and delivery of high-quality apps by bringing together cloud-based tools that help you build apps, run automated tests in parallel, deliver apps to testers, and view and manage user feedback.
Introducing Xcode Cloud page
The thing that is really big here is the integrated User eXperience (UX). In classic Apple style the UX is really awesome. That is what will make it the best choice of development tools for app developers building apps for Apple platforms.
Here are just some of things features that really stand out to me.
- Software builds happen in the Xcode Cloud and can be fully automated.
- The automated workflows are really impressive.
- Automated testing on all Apple platforms. Including on device specific and OS version specific testing platforms. This includes all of Apple’s devices – Mac, iPhone, iPad, Watch, TV. No more need to build your own farm of devices or pay another cloud service provider. And no concern with simulators or emulators not reliably reproducing the device environments, because these were built by Apple themselves.
- Automated deployment of apps to testers through TestFlight.
- Collaboration and feedback from developers and testers is integrated into the UX and the entire development lifecycle.
Check out the Learn More links below for more Apple links to pages and WWDC session videos.
Compared To Microsoft
Microsoft’s Azure DevOps was Formally Known As (FKA) Visual Studio Team Services (VSTS) and before that was Team Foundation Server (TFS). It has long had integrated features like these:
- Azure Pipelines to build, test, and deploy with CI/CD.
- Azure Repos to support private and cloud-hosted code repositories, like Git repos.
- Azure Test Plans to test and ship tools.
- Azure Boards is the feature set that competes with Atlassian’s Jira and provides Agile tools to plan and track your work.
- Visual Studio is Microsoft’s Integrated Development Environment (IDE), which is equivalent to what Xcode alone is. As IDEs, they can both work with lots of different third party and open source tools and are not tied to Microsoft nor Apple.
While Azure and Visual Studio has supported macOS and mobile development, Xcode Cloud and Xcode will very likely provide a much better experience and the integrated development lifecycle will save time and offer capabilities that Microsoft tools cannot.
Compared To Atlassian
Atlassian Product page listed several products that provide similar functionality to Xcode Cloud, including:
- Bamboo provides Continuous Integration (CI), deployment (CD), and release management.
- Bitbucket supports improved management of code including collaboration on code with inline comments and pull requests.
- Atlassian’s other Code, Build, & Ship category of tools add even more capabilities
- All of these tools integrate very well with Jira.
My Experience With These Tools
I’ve built and managed development teams using all of these tool sets. Working at Apple we of course used Xcode. We also used them developing e-commerce for other retailers and for internal enterprise iOS development.
I’ve used Atlassian products in many companies including Apple, Adobe, VMware and Boeing and many more. I’ve designed, deployed and trained many people on Atlassian tools like Jira and Confluence.
And I’ve used Microsoft products like Azure services and Azure DevOps at Heat Software/Ivanti where I assembled and led a DevOps team that built the CI/CD infrastructure using Azure Pipelines, Repos and Test Plans and Azure services, and taught and supporting other development teams to use them. We used Azure Boards for managing and planning our SAFe and Scrum activities at scale. And I designed, deployed and trained almost 200 engineers, product managers and others. We are also using Azure DevOps at Boeing.
In all of these environments we used Agile practices including SAFe, Scrum and Kanban.
Learn More
Apple
- Introducing Xcode Cloud page.
- Xcode page.
- Meet Xcode Cloud – Apple WWDC session video.
- Customize your advanced Xcode Cloud workflows – Apple WWDC session video.
- Explore Xcode Cloud workflows – Apple WWDC session video.
- Distribute apps in Xcode with cloud signing – Apple WWDC session video.
Atlassian
- Atlassian Product page.
- Bamboo provides Continuous Integration (CI), deployment (CD), and release management.
- Bitbucket supports improved management of code including collaboration on code with inline comments and pull requests.
Microsoft
- Microsoft’s Azure DevOps.
- Azure Pipelines to build, test, and deploy with CI/CD.
- Azure Repos to support private and cloud-hosted code repositories, like Git repos.
- Azure Test Plans to test and ship tools.
- Azure Boards is the feature set that competes with Atlassian’s Jira and provides Agile tools to plan and track your work.
- Visual Studio is Microsoft’s Integrated Development Environment (IDE).
Essential Background
- DevOps page on Wikipedia.
- Continuous Integration (CI) page on Wikipedia – the CI part of CI/CD.
- Continuous Delivery (CD) page on Wikipedia – the CD part of CI/CD.
- Continuous deployment page on Wikipedia – the CD in CI/CD can also be used to mean Continuous Deployment.