WWDC 2021 was a relatively low-key affair, thanks in large part to the reliance on online-only viewership and staged video rather than a keynote presentation in front thousands of eager developers. By and large, we got what we were expecting. Previews of iOS 15 and macOS Monterrey were at center stage; Safari has a new, Chrome-like interface; watchOS and tvOS continue to receive iterative updates. But a standout for Apple this year was Xcode.
Xcode's IDE is updated often, but rarely sneaks into the spotlight. This year, Apple added the ability to code in the cloud with Xcode 13; its iPad-first Swift Playgrounds app can now handle light code editing. (Funny, we predicted this back in May. Almost like we knew something was afoot.)
Charles Edge, CTO at Bootstrappers.mn, tells Dice that Xcode in the cloud will be useful for indie devs. “At first, cloud-based Xcode will be the most impactful to solo developers without a lot of dependencies,” he notes. “We don’t see the more complicated features DevOps and DevSecOps teams need just yet. But it’s huge for budding new developers to be able to publish straight to the App Store from an iPad and lowers the barrier of entry for new and innovative apps.”
Edge adds: “Some environments will be able to trim down their Xcode servers and everyone who has a more robust Jenkins or Bamboo environment hooked into xcodebuild flows should be looking at how those builds and testing environment can be simplified to fit into the new paradigm (we should be continually improving our build automation environments anyway). The development world in general is becoming a collection of interconnected API endpoints, so until we have a full complement of APIs for Xcode Cloud, larger shops still have lots of other aspects of automation infrastructure they’ll need to maintain.”
But Serhii Butenko, Software Engineer at CleanMyMac X, thinks that the Xcode updates will actually prove useful for developers with huge projects and complicated workflows: “It's almost perfect timing for our team to have Xcode Cloud. We think about moving from self-hosted Bamboo to something more flexible. From Xcode Cloud, I expect up-to-date software and flexibility. It's impossible to find non-self-hosted CI with macOS Monterey and Xcode 13 right now. Our project has a complicated pipeline: build Site/MAS versions, run tests, make a DMG, notarize, distribute. I believe it would be much easier with Xcode Cloud workflows. Xcode Cloud will also allow for building an app and uploading the build right to the App Store. As you remember, Apple bought Buddybuild in 2018, and now we see the result of the acquisition. That's excellent news for developers.”
The Walled Garden
Volodymyr Dudchak, Software Engineer at Gemini 2, underscores a key point: Apple is continuing to build its walled garden around developers. “Other clouds often have problems supporting macOS. For example, many actions for GitHub can’t be launched on macOS, as they work only on Linux devices. Also, not all clouds support M1 devices. With Xcode Cloud, we will avoid such issues as it is macOS-first. Another advantage is that developers won’t have to switch between Xcode and other apps or web pages. But again, it will depend on the convenience of work. For example, currently, I don’t use Xcode’s version control system because I find other tools such as SourceTree more convenient.”
Apple built a really great cloud-based Xcode environment that naturally plays well with macOS and M1 Macs. Whether this remains the case moving forward will be telling. If Apple relegates Xcode Cloud to an Apple-platforms-only environment without extensible plugins or workarounds, it may prove Edge’s point about the platform mainly being used by indie iOS devs looking to build simple apps while bored on vacation.
Butenko appreciates the changes made to SwiftUI. “SwiftUI 1 didn't have lazy lists; for example, you couldn't create a newsfeed without your app freezing,” he points out. “SwiftUI 2 didn't have pull-to-refresh and lazy images. Now we have almost all the basic stuff we used to have in UIKit, and I’d say now it's 70 percent production-ready. Weather.app on iOS 15 and Shortcuts.app on macOS Monterey are written in SwiftUI and that looks promising. A big downside is the deployment target — you cannot use <code>refreshable</code> in iOS 14.”
At Butenko’s company, most applicants for internships build apps in SwiftUI, a telling detail that highlights SwiftUI’s ease of use. This may also tell us a lot about what WWDC 2021 was really about.
Considered holistically, Xcode Cloud, Swift Playgrounds as a lightweight code editor, and SwiftUI improvements all tell us Apple is eyeing the next generation of developers who are just learning how to string code together to make an app do something clever. Swift Playgrounds requires iPadOS 15 (releasing this Fall), but Apple will support iPads as old as the iPad Air 2 with iOS 15. That opens up simple app creation to almost everyone.
Xcode Cloud is a continuous integration and delivery service that will require cloud-based tooling, and that strikes us as quite progressive. At the core of Xcode Cloud is a cloud-based build environment that Apple says is “eliminating the need for dedicated build infrastructure.” Of course, that means someday we could see Xcode proper on iPad.