WWDC21: Exciting news for iOS developers

Nicolas Fontaine
Ideas by Idean
Published in
6 min readJun 15, 2021

It’s that time of the year again! Every iOS developer is expecting June like kids expect Christmas. Here’s a summary of what we are excited about and wanted to share with you!

First stop, Xcode Cloud !

This is a big one! Apple surprised us with something we really have been needing for a long time. An easy solution for continuous integration. We all know CI for Apple platforms development is often painful to set up and even more to maintain and scale up.

We, for example, have been making our own CI system for years, struggling with macOS and Xcode Updates every now and then, using good old virtualization to try and mimic what android developers can do with Docker.

Source: Apple

With all this in mind, Apple announcing a real solution to ease our pain is something we immediately welcomed with open arms.

What’s really interesting with Xcode Cloud is that it is completely integrated within Xcode. Creating a continuous integration for a project is made as easy as filling two to three quick forms directly on the IDE.

And… We’re good to go ! The demo made by Apple was definitely promising.

As for what it can do, here’s a list of some of the features available in the first version of Xcode Cloud:

  • Building Apps
  • Launching unit tests and UI tests on various test devices
  • Analysing coverage and test success rate (by being able to run tests repeatedly)
  • Signing apps for Testflight and Appstore and deploying them easily
  • Connecting with popular git providers like Github or Gitlab
  • Following customizable workflows (ex: building on every change made to a pull request)
  • Adding post-build actions like notifying a slack channel or launching scripts
Source: Apple

This paid solution is presented as highly secured since Apple has only access to the source code while building, and this on a dedicated, secured and ephemeral environnement. Apple seems to be aware that a lot of companies can’t afford to have security breaches on their source code, a good point for our clients!

The release is expected in early 2022 and a beta is already available on subscription through Apple’s dedicated webpage. We can’t wait to get our own access…

An interesting update to Swift

As mature as Swift is now becoming, it is lacking features to handle concurrency easily. Designed to be simple and powerful, this is a big loophole in its current form.

This year, Apple is therefore introducing Swift Concurrency, providing keywords well known on other languages like « async » and « await » and the notion of Actors. We will not dig into the details in this article but this is a really good news, as code complexity is about to be more than halved… pretty much anywhere.

Whit that being said, the downside is that Apple refrained from developing backward compatibility, only providing these features for the latest OS to be released in September. This means we will not be able to use them for a few years on our most critical projects.

Adding up to this major breakthrough on Swift, SwiftUI is also growing even stronger this year with many new features, and bug fixes that we won’t enumerate here but… We can still observe that a lot of effort has been put into giving more tools to developers in order for them to handle accessibility efficiently. A good point for this part of development that is often overlooked.

There seems to be a consensus about the fact that SwiftUI, in this new 3.0 version, is now mature enough to create apps for production.

Creating apps from start to finish on an iPad

This one we kinda have seen coming. We can now prototype, build and deploy apps directly on an iPad with the Swift Playground application.

We are more than doubtful about the idea of creating an entire app on this device, although, we can see a lot of usage for this tool. The most important one being: fast prototyping on the go, especially at a client’s offices. Unfortunately we cannot test this feature just yet as it is yet to be released, but we’ll definitely keep an eye on this.

Source: Apple

The Focus API

With iOS and iPadOS 15 comes an interesting feature called “Focus”. It helps prioritize the apps, notifications, widgets that you want to see at certain times.

For example, you can setup a “work” Focus. When enabled, only the apps you need for work will be able to send you noisy notifications, and only these will appear on your dashboard. It’s entirely customizable by the customer but Apple provides an API to better interact with your users regarding the Focus they are currently on. It also comes up with ways to break through the current Focus for urgent communications.

Source: Apple

Screentime API

ScreenTime has been on our Apple devices for quite some time now and it is a massive source of information about our daily habits. For Apple, the challenge was providing an API for developers without compromising data privacy, and that is what they did. With this new API, you can now create your own parental control system for your app empowered with the tools from Apple. For example, you can create a set of restrictions for your app like preventing password change or limiting usage.

Changes to Widgets

Last year, Apple gave us the ability to create beautiful widgets that can be integrated directly on the user’s dashboard of our iPhones. This year, the iPad now has the same ability and with that comes a new Widget size to better use the space provided by this device. But this are just minor details.

The most important change about widgets this year is that they can be intelligently displayed to the user at the best time even if he didn’t know this widget existed. By providing intents for your widgets, Siri can now add your widget into intelligent stacks at the right moment, improving visibility for your App and making widgets a very nice entryway for your product.

Source: Apple

A nice addition to ARKit

ARKit is amazing, but we often can’t use it the way we would like to because we lack knowledge about 3D modeling. That is why we are more than happy to see that Apple is bringing us an easy to use API in RealityKit 2 to help scan real life objects into high fidelity 3D models. No more excuses not to use AR now!

SharePlay: or how to make FaceTime a part of your product’s experience

FaceTime received an amazing update with the newest operating systems of Apple. It now comes bundled with “SharePlay”, providing a way to interact with call participants by sharing photos, videos, canvas to draw on, etc… When using SharePlay, everything is synchronized between all the call members, meaning that pausing a video on one device, pauses the video on the others. Drawing on a canvas will draw on everybody’s live, and so on.

By adding the SharePlay API to the set of tools for developers, we can build SharePlay experiences ourselves… Time to think of possible usage for our Apps.

Source: Apple

Wrapping it all up

This year’s WWDC was surprising, most of the features announced were unexpected. There are no breakthrough changes in there but this whole set of improvements and small new features is enjoyable while waiting for the plat de résistance next year. Let’s hope we are right about that ;)

Special thanks to Clément Cardonnel and Lionel Caillis for their contribution to this article.

--

--

Nicolas Fontaine
Ideas by Idean

iOS technical leader at Idean, living in Montpellier, South of France