Dub-dub 2019: my take on what’s new at WWDC

Azat Zulkarnyaev
Bumble Tech
15 min readJun 26, 2019

--

In this article I share my impressions of the conference: scroll down for, not just read about important updates and an overview of the sessions, but also something on my own personal feelings, having spent time with a happy crowd of people chanting, “Dub-dub! DC!” and dreaming of shaking Tim Cook’s hand.

A bit about the conference

Every year Apple holds the WWDC conference for developers, whether working with its platforms or others. Traditionally, events organised by the company always draw a big crowd. The main, new product releases — in most cases, software-related — are announced on the first day of the conference. Next are sessions run by staff at Apple with a view to assisting third-party developers in implementing these new products. Here, I not only talk about the technological innovations launched at the conference, but also give my overall impression of the conference itself.

Impressions

I think every developer working on Apple platforms dreams of attending WWDC at least once. And it is not just about the lab sessions where you can discuss your problems and ideas face-to-face, but also about the significance of the event itself.

The conference usually starts long before the first, or ‘keynote’ presentation, but with registration or, rather, in the queue to register. Queues are part-and-parcel of a conference, which is understandable, since there are thousands of delegates and all the events take place in one venue. Being at the front of the queue has certain advantages: those among the first people to register get to be greeted by Tim Cook in person.

After registration delegates get given a conference jacket and pins with the conference or the company symbols.

Giving attendees jackets was a great idea, because lots of attendees are fooled by the sunshine and arrive in San Jose without warm-enough clothing. The weather in California is very changeable and in the evening it can get pretty cold. What’s more, inside the buildings the air conditioning is merciless.

The pins become collectors’ items straightaway; people are constantly on the lookout for sought-after pins to add to their collection.

Keynote: what’s new

Queue for the keynote start to form long before the doors open. The thing is that this presentation announces some important new releases, and so it is not such much for developers, as for the wider audience watching world-wide via video-link. The company’s top people are on stage, and overall this is one of the most significant annual presentations in the mobile development world.

One of my colleagues decided to try to get the front row seat this time and started queuing 10 hours before the doors opened. Unfortunately, however, there was some kind of mix-up this year and people in another part of the queue were let in first. The upshot was that the best places had already been taken. So, front of the queue or not, it doesn’t guarantee you the best seat in the hall.

The overall atmosphere at the event is like a celebration: the organisers congratulate the delegates on having made it to the conference and people in the queues are chanting, “Dab-dab! DC!” Apple fans are on the lookout for new badges. It’s all pretty dynamic and fascinating. It is a nice feeling knowing that the most important things in iOS/MacOS development are happening right here and now. There is a big difference between how you feel watching the video at home or at work and actually being there in person. It is really inspiring, as is trying out all the new stuff and integrating it into your products. A brief brainstorm with Badoo colleagues at the conference resulting in a long list of things we would like to implement in our applications.

As always, long before the conference started rumours had already been circulating about the new stuff due to come out. This year at WWDC people were expecting announcements of the new version of iOS, tools for cross-platform development for iOS and MacOS, the demise of iTunes and a new Mac Pro. There was even speculation surrounding augmented reality (AR) goggles.

Lots of these rumours turned out to be true. But let’s take things one at a time.

Apple TV

First of all, tvOS. UI of tvOS has been heavily redesigned.

Apple is actively promoting its television platform TV+ and as a result we saw the trailer for a TV series at WWDC. However, despite the effort made, Apple is still catching up in this field. For the moment platforms such as Netflix are better in terms of both UX and content.

For most people the most welcome innovation for AppleTV is probably that it now supports Xbox and PlayStation joysticks.

iPadOS

It doesn’t look much different to iOS. The aim is probably to move the iPad closer to the Mac. As a result, developers have the option of porting applications for the iPad to MacOS. Apple tablets have become more functional. For example, they can now be used as a second screen, and you can connect up usb drives to them. The latter is possibly thanks to the updated Files application which allows to work with a file system.

Safari should now work better, displaying the desktop layout instead of the mobile version.

The way the screen-splitting function works has improved. Now each application can have several windows open at once, all displaying on the screen at the same time. For example, within a single application, you can simultaneously work on two or more documents.

Watch OS

At the moment, when setting up an application on Apple Watch, you don’t have to use a paired iPhone. As a logical follow-on from that, an AppStore application for Apple Watch has been released. This means that you can now search for and install applications directly from the Watch. It isn’t clear how useful this will be for users as there are doubts as to how convenient it will be to install new applications in this way. A welcome bonus is the new design options for the Watch main screen.

Mac OS

The new version is called MacOS Catalina, named after an island off the coast of Los Angeles. This time there weren’t so many new things announced. All I can remember is that the iTunes application isn’t going to be around any longer, rather its constituent parts will be available as separate applications.

Somewhat ironically, they introduced Apple Music, Podcasts and TV which used to be part of iTunes. You’ll be able to work with plugin devices via Finder.

iOS 13

The main changes were probably regarding iOS. Lots of updates were updated but I’ll focus on the most important.

Performance

Improving productivity. Applications are now loading faster — this, it would seem, is due not least to Swift Runtime now being integrated inside the system. The binary file that gets downloaded when installing and updating applications has also been somewhat reduced in size. It is good to see that Apple is continuing to work on optimising its products. It would be interesting to compare the actual value of the improvements with respect to what was announced during the course of the presentation.

Dark Theme

The main innovation in terms of appearance long-awaited by many of us has at last appeared: the dark theme. System applications look very attractive in the new setting.

Sign in with Apple

There was a lot of interest in the registration/authorisation options in applications that use Apple Id. The company deserves respect for what it introduced in the presentation. Finally, there is now an easy way to get authorisation on third-party services without having to provide a real email. This might become a bit of a headache for some applications, because Apple is intent on making this form of authorisation obligatory for all applications, using OAuth.

Find my device

I would like to make special mention of improvements to the system in respect of how the Find My Mac application operates. Now, even if a laptop is on standby and/or doesn’t have access to the network, it can send and receive messages via Bluetooth to Apple devices located nearby, which, in turn can send information to Apple about the location of the computer. This is a simple, but very useful and effective idea which would be complicated for another company to implement, given both the lack of trust and of a single protocol for smartphones and computers to communicate with one another.

Keyboard

I also cannot fail to mention that the iOS system keyboard will actually support swiping between letters which means that those who prefer this form of entry no longer need to set up additional keyboards. And, the button for switching to an emoji keyboard is at last different from the button for switching keyboard language.

Of the other new releases we could mention Apple’s effort to catch up with Google Maps, introducing an equivalent of the Google Streets mode to its Map application, also smart sorting and photograph grouping, as well as custom Animoji-based sticker-packs. Several marginally significant improvements to standard applications were also introduced.

Mac Pro

The main and only new non-programming product introduced was the new Mac Pro. I am not going to name the possible sources which may have inspired the designer of the device’s new appearance. When I first saw the front of the system block, it made me laugh a little — something rare for this company’s products.

In general terms the designers opted for practicality over elegance. The new generation of computers differs a lot from the previous one, which was very much seen as just another household item. Mac Pro has gone back to its roots and in many ways it looks similar to the first generation of Mac Pro.

However, inside it is an entirely new machine. The potential output of the computer and the monitor shown are genuinely impressive, but the price makes you think twice about how essential these amazing devices actually are. Apparently, in order not to scare off customers, only the price of the most basic version of the system unit was announced, namely $6,000. A new 31.6-inch XDR 6K monitor will cost you at least $4,999. And add another $999 for the stand. So, you’re obviously not just going to prop the screen up against a wall!

Swift UI

The main announcement for developers. Apple has released a declarative framework for developing UI on Swift. The consequences of this conceptual change cannot be overestimated: the presentation left an initial impression similar to the conference logo on the front of the building.

The speakers didn’t name their sources of inspiration. Normally when something new comes out it is presented as an innovation, tactfully avoiding reference to analogous solutions. Generally speaking, people who are familiar with other frameworks for declarative interface development recognised numerous familiar principles. At a guess React and maybe even Flutter ideas have had an influence. However, this remains speculation. It was stated on Twitter that work on this framework had been ongoing for at least three years which isn’t surprising bearing in mind how much everything has changed.

When the development concept for an interface changes this often leads to a change in the approach to working with data. This is because an approach which, instead of explicit assignments, claims functional dependence between values, is going to combine well with a declarative interface.

Probably the most widespread framework for implementing this kind of concept for iOS is RxSwift. Apple has introduced a new, alternative framework, Combine. At first glance, the framework’s classes appear similar to equivalent ones from Java.

WWDC sessions

The main part of the conference is always a series of sessions at which Apple staff talk about new technologies and explain how to use them correctly. Each session includes a presentation of changes and a worked example to demonstrate their use.

For a week the San Jose Convention Center turns into a mini university for developers and others. There are more than a hundred presentations, thousands of delegates and lively discussion and debate during the breaks.

Below I have listed what I consider to have been some of the most interesting sessions at WWDC.

Swift UI

These sessions gave basic information about Swift UI, talked about ideas and goals the framework developers wanted to achieve, and showed some simple examples of how it can be used. The examples were indeed impressive: sometimes you even got the feeling it was too good to be true.

Thanks to new language possibilities, description of the element hierarchy has become very expressive and declarative. So much so that there is no longer any need for XML Xib files in order to generate a code-based preview.

The main distinctives of the framework are value type displays, automatic setting of the difference between two statuses of displayed data and the fact that the object hierarchy described by the code does not necessarily coincide with the real hierarchy of rendered view elements.

Value-type objects allow you to create objects and remove them from the memory quickly. It isn’t yet clear how the thumbnail renderer and the component generating the difference between statuses have been implemented. Apple rarely releases the source code for tools it has created.

The opening sessions presented simple examples, while later on complicated cases were shown along with complex visualisation of a large quantity of data. It is nice to see that non-interactive elements which require a large quantity of resources for visualisation may be rendered via Metal and this increases productivity severalfold.

Combine

Here the audience was introduced to a new framework for working with Data Flow. For those who have already worked with Rx or similar tools, there won’t be much that seems new: other developers at the presentation were impressed by how expressive the new approach was. At the presentation examples were shown which are very much standard for reactive frameworks. There is an example with a search field and a query sent to a server with the relevant entered text, which has become a textbook case. Basically, the library is not that big and it is sufficient to have familiarised oneself with the documentation.

In Combine, as in the case of Swift UI, value types are used a lot with a view to increase productivity. However, it is still not entirely clear how resources can be freed up after having cancelled a subscription. I recommend the article by Michael Long on this subject; he describes possible problems you may encounter when using the framework.

To complement Combine Apple has created extensions to Foundation components for conveniently converting a standard data thread into a reactive one.

Swift Package Manager

Apple has now decided to perfect its tool for working with dependencies. It is now fully supported by Xcode 11 and integration with GitHub and other popular services for repositories has been implemented. In the session they talked about how to work with SPM in Xcode (which is quite easy) and how to resolve dependency conflicts.

Working with collections

For those not planning to transition to Swift UI, Apple has introduced new tools to make it easier to work with UI lists (Collection View and Table View) in UIKit. New data sources for collections on various platforms make it easier to update displays of lists without the risk of encountering a runtime error due to an inconsistent list status. A common theme running through lots of talks was the idea of a single truth source and new components are implementing this concept for UI lists.

A new layout was presented for Collection View. Using the new group concept, you can describe a totally different arrangement of elements within a single section. In this way, the various sections within a single collection can scroll in different directions. To me this seems one of the most useful innovations, which facilitates a significant improvement in the process of creating composite lists.

Swift

The new version of Swift allows you to make what are called ‘property wrappers’. Essentially, these are generic classes which add some behaviour to the object property. This sounds very abstract but actually this is a very big change to the language, adding to Swift the equivalent of annotations for object properties.

It is also now quite easy to create one’s own typed DSL. Judging from what the speaker said in the session, one of the Apple developers created DSL for HTML tags in a couple of hours. This function is still at the beta version stage and, possibly, as it evolves, it will get even more interesting.

In order to avoid problems with protocols using associate type or Self requirement, opaque types have been introduced. Adding the keyword ‘some’ in front of the type allows you to use the type of these protocols as more than just a generic limitation.

All of these innovations are actively used by SwiftUI, so I recommend you familiarise yourselves with the principles of these new language possibilities.

Foundation

Some welcome new things have made their appearance in Foundation, such as a time formatter for a particular date and for localisation of the collection content, elements of which may, in turn, be exported in a localised format.

Changes to iOS

There are lots of changes here, so I will just mention the main ones.

If your system supports authorisation via third-party services such as Google or Facebook, then soon Apple is going to require support for authorisation via Apple ID. Possibly in some cases this will be an authorisation special case, so don’t delay integrating this functionality.

A new type of geodata provision by users of the application is now available. Now users can grant access for their location only for the single application session. The authorisation status transitions are not that self-evident, so you do watch the video.

Lots of applications use background tasks, so a session on changes to API vis-a-vis working with background tasks might be relevant. In brief, you can now postpone a task until the user plugs their device into a power source.

Oh, and now you can no longer use VoIP push notifications to activate an application without notifying CallKit. I also advise you to make sure that the server sends the necessary parameters in the push notification content with the necessary values mentioned in the video.

The dark theme available in iOS 13 may also represent a challenge for lots of applications. If a third-party application ignores the style set by the system, this can lead to users being dissatisfied with the application overall. So, it would be best to support dynamic style in one’s application, providing this is acceptable in terms of design.

Resources such as colours or images can be dynamic and their specific value depends on the context. Information on style is stored in Traits Collections and, based on its current value, one and the same dynamic colour may have differing values. It is easy to make your colours or resources dynamic via an asset catalogue in Xcode or in code, accepting a trait collection as an initialiser parameter.

You can obtain a theme change in the traitCollectionDidChange method, but you need to bear in mind that UIView is now created straightaway with the collection specified. That is to say, before being added to the display hierarchy UIKit itself assigns the object the most likely future traits collection.

You can obtain more detailed information about the dark theme in this video.

Machine Learning

Main innovation: you can now configure trained models for a given user, carrying out training directly on the device. For this you need to gather data for training based on the user’s actions, and run the training, which may use graphic adaptors for calculations. In the case of neural networks, it is best to do this as a background task and while the device is charging.

Apple has also opened new APIs for photograph analysis, sound analysis, and text recognition for text the image.

Is it worth going to WWDC? Yes!

I have only highlighted what I consider to be the main points. There were loads more new things introduced at the conference and I recommend you watch the main sessions for yourself.

Overall, you can spot a trend: the Apple ecosystem is developing in the direction of privacy and user data protection. From a technical point of view, you can see attempts to bring the company’s platforms closer to one another, transition to a functional programming style and the active use of machine learning for adapting application behaviour to user needs.

It is wonderful that Apple is willing to devote so much time to people involved in development and that it organises events of this kind at the highest level. The ticket prices may seem too high, but, in my view, the spent is worth it. If you are a student, I recommend that you next submit an application to attend WWDC next year as part of their scholarship programme. It’s not as complicated as it seems and this time there was quite a large contingent of student delegates.

--

--