Go to homepage

Reid Main

iOS developer

  1. Archives
  2. Tags
  3. About
  4. @reidmain
  5. Email
  6. GitHub

WWDC 2019: Thoughts on the Keynote

What was the last WWDC Keynote that had as many surprises as the the 2019 version? At first I thought the answer was WWDC 2013 (which is the only one I have ever attended) when Apple announced the iOS 7 redesign and the "garbage can" Mac Pro. But after thinking a bit harder I believe the WWDC 2014 Keynote where Swift 1.0 was announced takes the prize. How ironic that it took another major Swift announcement five years later to take the crown.

It is going to be impossible for me to cover everything that happened in the Keynote. It was that jam packed. Check out iMore, 9to5Mac, MacRumors, ArsTechnica or any number of other sites with extensive coverage. I am going to come at this not just from the perspective of a consumer but also as a developer who makes a living building things for Apple products. I am only going to mention things that really jumped out to me so don't expect any mention of HomePod or CarPlay.

I was planning on writing a separate article for the Platforms State of the Union but honestly 80% of it was just rehashing what the Keynote said but from an developer's perspective. I'll work some of the more interesting remarks into this article.

Oh, before I jump in, can I call out how Apple cannot have a single presentation where they don't jerk themselves off for the first 10 minutes with random marketing stuff? At a fucking developers convention we had to watch a trailer for one of Apple's TV shows. Granted For All Mankind does look like it could be interesting but this is neither the time nor the place to show it. We need to come up with a name for some sort of Wadsworth constant equivalent for Apple events. "Skip the first 10 minutes because they are guaranteed to be pointless."

tvOS

Apple started the Keynote out with a bang by giving everyone exactly what they wanted. Autoplaying fullscreen trailers on the Apple TV homescreen. This has been such a hit for Netflix and has generated absolutely no negative comments on social media. I am flabbergasted it took Apple this long to copy them. If by now you haven't realized that I am being sarcastic I cannot help you.

Thankfully Apple rebounded from this gaffe with two A+ features. First, they are rolling out multi-user support which is great for Elsie and I so I no longer have to be recommended tennis animes. Second, support for Xbox One and PlayStation 4 controllers are coming to tvOS which means the Apple TV just became one of the best bang for your buck gaming consoles on the market. The A10X Fusion SoC is even more powerful than the Nintendo Switch. The kicker to this is that Apple said they are also going to bring these controllers to the iPhone (possibly the iPad?) which means they have unlocked hundreds of millions of potential gamers. The value proposition of Apple Arcade just got a whole lot more interesting with the possibility of Switch, PlayStation 4 and Xbox One ports coming to the platform. What happens if Apple releases a $300 Apple TV with a A12X Bionic chip in it this fall? Suddenly consumers may not even have to buy a dedicated gaming console.

watchOS

watchOS very rarely gets massive announcements at WWDC because all of the new features are usually tied to hardware which gets announced in September. This WWDC was no exception. There were four things that stood out for me from the watchOS portion:

  1. No longer requiring a companion iPhone app. You can browse and install directly from the App Store on your watch.
  2. Automatic software updates. I assume this means you no longer have to use your iPhone to trigger an update of your watch.
  3. Activity trends. The Activity app on iPhone has received a tiny redesign and will do a much better job at showing trends in your data. The idea being you can start to see improvements and maintain better habits.
  4. Cycle tracking. While I am not directly affected by this it is amazing that Apple has taken this long. These apps have existed in the App Store for over a decade now and people have assumed it was going to be added to the Health app from the moment it was first released.

iOS adoption rates are insane!

I know Apple throws these numbers out just so they can insult Android but let's brush that to the side and focus on what this means for iOS developers. iOS 12 has been out less than eight months and it is on 85% of all devices. That is hundreds of millions of potential customers running the latest software. This is one of the reasons iOS developers get so excited when Apple announces all sorts of new APIs we can play with. We know it is worthwhile to adopt them because we will have a massive customer base that can use the things we build. There is stuff I will get to later on in this article that is only being released on iOS 13 but there is no hesitation in my mind that I should use it because I know there will be a large enough market for it.

Hair Force One

Before getting to the new iOS hotness I want to give a shoutout to Craig Federighi a.k.a Hair Force One. His stage presence gets better every year and he commanded the crowd perfectly this WWDC. He has come a long way from his 2010 presentations where his hands were shaking so hard he could barely use the magic mouse during his demos.

Dark Mode in iOS

I don't think anyone was truly surprised by this since Dark Mode was brought to macOS last year. It felt like it was only a matter of time. The high contrast looks great as one would expect and the OLED screens on the iPhone really do pop. But in my opinion the most important announcement from this section was a blink and you'll miss it type of moment where Apple revealed you can now type by swiping between keys on the keyboard. This functionality has been in Android for years and available via third-party keyboards but finally Apple has built it themselves under the moniker QuickPath.

Apple Maps

It is no secret that Apple Maps data pales in comparison to Google Maps but Apple is continuing to try and close the gap with iOS 13. They showcased maps that had a lot more detail and fidelity alongside the ability to create collections or favorite places. Their coolest demonstration was when they showcased their version of Street View which looked as buttery smooth as one would expect from an Apple product. Too bad it took them a decade to get there.

Unfortunately Apple didn't really say anything to address their real problem which is I don't trust them over Google Maps. Even in California (where the majority of Apple employees live) I have gotten incorrect directions far too many times. Maybe they actually have finally fixed this in iOS 13. I will give them a seventh (or is this eighth?) shot but they are really going to have to knock my socks off to get me to switch.

The weirdest thing about Apple Maps to me is how much better it was in Japan. I've spent 24 days in Japan in the last two and half years and I used Apple Maps exclusively during that time. Everything about it was better compared to Google Maps especially getting directions using the Tokyo subway.

Sign in with Apple

"Sign in with Facebook/Google" buttons are on nearly every website and app in existence. Almost no developer enjoys rolling their own log in system and if they go with in Facebook or Google they can also get all sorts of personal information like name, email, birthday, etc. In an ideal world this makes perfect sense. Easy on the developer, easy on the consumer. But unfortunately we don't live in an ideal world and that personal information usually gets warped and twisted so companies can maximize their profits using that knowledge.

Apple has finally decided to tackle this problem head-on and in iOS 13 they are rolling out their own "Sign in with Apple" feature. It looks like it will work nearly identical to the Facebook and Google variants so it is probably going to make developers happy. But by default Apple hides all of your personal information unless you explicitly choose to share it. Even if the app requires an email address Apple will randomly generate one for you and forward all communication.

I think this is going to be one of those features that flies under the radar but makes a huge splash when it is released. I predict the vast majority of apps will adopt it within the first six months. Like I said developers absolutely hate building log in screens so if they can just delegate to Apple and instead focus on building a great app they will make that choice. The only stumbling block would be if marketing came back and said we need all of that personal info so we can track the user. The great thing about that is Apple is going to force developers to use "Sign in with Apple" if they offer either "Sign in with Facebook/Google". If you want to offer the poison pill you also gotta offer a sweet treat as well. What do you think the consumer is going to choose?

HomeKit Secure Video

This is easily the thing I am most excited about from WWDC. While I have been using Nest cameras for years now I have always been leery about who the heck has access to this data. There is a voice in the back of my mind yelling at me that I shouldn't trust Google to store recordings of my personal space. But San Francisco being what it is I am willing to push those feelings aside because of the greater fear of being robbed or assaulted.

Now with HomeKit Secure Video I can have the best of both worlds. Security cameras that encrypt all of the video and upload it to my personal iCloud. Only devices that I have approved will ever be able to view the video. I am sure that there is going to be some friction when I migrate. Perhaps the live video streams won't be as seamless or maybe the hardware isn't as good but these are bullets I am willing to bite to get out from under Google.

Other iOS 13 Enhancements

There was also a plethora of other enhancements mentioned so I'll just rip them off rapid fire or we'll be here all day:

iPadOS

What was old is finally new again. I remember almost a decade ago developing for something called "iPhone OS". It had to be renamed to iOS because some uppity new device called an iPad couldn't be seen running an operating system called "iPhone OS". That would just cause mass hysteria! Now 10 years later that iPad has evolved so much that it can no longer be seen running an operating system called iOS. And so from here on out (or maybe just for the next 10 years) it will run iPadOS instead.

There is no longer any doubt as to what Apple's plans are for the iPad. They think that most Mac users could use an iPad instead and iPadOS is the first major step towards that future. Nearly every announcement was a direct shot against the Mac and the things it can do that the iPad can't, or at least not as well. iPadOS hasn't closed the gap (not by a long shot) but you can clearly see that Apple is skating towards where they think the puck will be in 5-10 years.

Multitasking was their first big demonstration. Slide Over, Split View, Spaces, App Exposé have either been enhanced or brought over to the iPad. You can tell that Apple wants to remove all of the barriers that are preventing developers from migrating professional apps that typically have multiple window workflows. Hell even the keyboard can be shrunk to be the size of an iPhone version so it doesn't get in the way of your multitasking.

The Files app got a major overhaul that makes it look almost identical to the columns mode in Finder. Browsing your files has always been a pain in the ass on iPad and now it will behave basically the same as macOS. Even browsing files on a network share has been added. Like I said previously Apple is trying to remove all barriers that would stop a professional from using an iPad as their daily work machine. They even added the ability to just plug a USB drive directly into your iPad and have it appear in the Files app!

The most important feature in my mind, and it is something that Apple quickly glossed over, is vastly improved support for external keyboards and mice/trackpads. In iOS 12 external keyboards still feel like an afterthought and you can't even connect a mouse. In iPadOS external keyboards now have access to dozens of new shortcuts to help you quickly navigate and for the first time ever you can connect mice/trackpads. They still aren't first party citizens but I have faith that in future versions of iPadOS Apple is going to improve their capabilities.

And finally I'd like to ask a quick question. What percentage of their day in front of a computer do you think white-collar workers spend using a web browser? Maybe 10 years ago it would be pretty low because everyone was using apps like Microsoft Word that only saved documents to your hard drive. But I'd posit that most work nowadays is done in the cloud or at least to a network share right? I would bet that white-collar workers spend 70-80% of their time in a browser. Reading mail, managing their calendar, writing or reviewing documents, searching Google and let's be honest, spending way too much time on Facebook or Twitter. So if Apple brought desktop-class browsing to Safari in iPadOS that would be a pretty big deal right? Why couldn't most white-collar workers use an iPad for their daily machine? Hell even some developers could. With desktop-class browsing your iPad could become a dumb terminal while you use an AWS instance to do all of your real work. I've seen this done at previous companies with a Chromebook so how could an iPad not be better?

Oh and just so you don't think Apple completely forgot what makes the iPad different from the Mac, they talked about the Apple Pencil and it's latency. Currently it is 20 ms on the new iPad Pros but with iPadOS they have managed to get that down to 9 ms. Now I know that won't sound like a lot but trust me in practice you will notice the difference. It's just another barrier to help you forget you are not writing on a piece of paper.

Mac Pro and Pro Display XDR

Let's just get this out of the way. I should not buy either of these products. As an iOS developer I have absolutely no need for this much power or a display with that color range. But just watch this sizzle video and tell me you don't want one as well.

It may have taken Apple a long ass time but this is a huge 🖕🏻 to everyone that was complaining about the old Mac Pro. Apple took every complaint and just cranked their response to 11. You want modularity? How about a case that comes apart by hand and gives you complete access to both sides of the logic board with 8 PCIe slots? You want power? How about a Xeon W processor that ranges from 8 cores / 16 threads to 28 cores / 56 threads? The old Mac Pro didn't have enough memory? Have 12 DIMM slots that can hold up to 1.5 FUCKING TERABYTES of memory. The GPU wasn't good enough? Fine this one can handle up to 4 GPUs for a total of 128GB of HBM2 memory. This machine truly is bonkers and the maxed out version of it will probably cost upwards of $60,000. You may think that is crazy but there are tens of thousands of professionals that will actually purchase it and not blink because it truly will improve their daily work life.

Then we come to the Pro Display XDR monitor which absolutely no one was asking for but again is out of this world. 32 inches. 6K Retina resolution at 218 pixels per square inch. 1000 nits of constant brightness that can peak at 1600. 1,000,000:1 contrast ratio. HDR with P3 wide color gamut. True 10-bit color. Reference modes to match the requirements of HDR, HD, SD video, digital cinema, and photography or print. OK yes it "only" has a refresh rate of 60 hertz so you're not going to play video games on it but if you were sane you'd realize you don't need these monitors specs to do that. This is a product meant for a select few people who work on things like film, TV, print design, etc. It is not for us normies. And even though it is $5000 that actually makes it cheaper than all of its competitors so to the people who truly need this monitor it is a steal.

macOS Catalina and the death of iTunes

Catalina is the name of the next macOS release and it will be the first one ever (going all the way back to Mac OS X 10.0) without iTunes. It is honestly insane to think about how much functionality has crept into iTunes over the years. Think about it. "Rip. Mix. Burn." that was the purpose of the original iTunes back when you wanted CDs to play in your Discman or for long trips in the car. Then they added the iTunes Music Store, then podcasts, then video and when the iPhone showed up iTunes was literally the only way you could update iOS on your phone.

To replace iTunes macOS Catalina is going to come with Apple Music, Apple Podcasts, and Apple TV while syncing your devices (if you have to do that for whatever reason) will be handled through Finder. I am 100% onboard with this change and while I love what iTunes has done over the years it is obvious that Apple is looking to coalesce all of their platforms. There is becoming less and less reason to have completely unique apps and instead slightly tweak a universal app for the platform it is being run on.

Speaking of which...

Goodbye Marzipan. Hello Project Calalyst.

Last WWDC Apple showcased something they had codenamed Marizpan which allowed developers to port iPad apps to the Mac. It was the technology they used to bring the News, Stocks, Voice Memos and Home apps from iOS to the Mac but they did not make the technology public. This year they finally pulled back the curtain and let us have a look. The name of the project has been changed to Catalyst and will allow every developer to port their iPad apps to macOS Catalina.

From what they showed at the Platforms State of the Union (and from what I've seen on Twitter) it is relative simple to get your iPad app running on macOS. There will be a non-trivial amount of work to get your app to feel truly at home however. Regardless I am super looking forward to this. Anything to stop the flow of low quality Electron apps that eat up all my memory and ignore standard macOS shortcuts.

Sidecar

With Sidecar in macOS Catalina you can now share your Mac screen to your iPad. RIP Duet Display. I bought this app over three years ago and it worked great. But not only has Apple built it directly into macOS, you can also build your Mac apps so that they can behave more like an iPad app when they are shared. Being able to have something like Pixelmator Pro running on your Mac but using your Apple Pencil on your iPad to make edits is just awesome.

Find My

Back in November 2018 my iPhone was stolen and I was unable to track it because the thief powered off my phone. This new "Find My" app sounds like a perfect solution to that problem. Your Apple devices will broadcast a Bluetooth signal that can only be understood by your other Apple devices. There is no fear of random strangers being able to identify you from these Bluetooth signals. What these random strangers can do is take these Bluetooth signals and package it up with their location and send it to Apple. If one of your devices is lost you can simply mark it as such in this new "Find My" app. Your other devices will be able to look through all of this encrypted data Apple has and identify where other random strangers' Apple devices have seen your stolen one. We are crowdsourcing the finding of lost of stolen Apple devices!

Continuing their AR push

It has been two years since Apple released ARKit and they are showing no signs of slowing down. I'm not going to go into detail to all of the augmented reality technology they demonstrated but it is obvious that they are trying to build to something bigger in the future. There has been a lot of rumors about standalone AR devices that will work in tandem with your iPhone and after this WWDC I'm starting to believe them. Maybe we won't see it released this year but I can't imagine how some new hardware focused on AR won't be released by the end of 2020.

SwiftUI

It only took two hours and seven minutes but we finally got to something that was unequivocally for developers. Last year I wrote

We finally got the answer to UXKit and it is simply that we will be able to port iOS apps to macOS. This really was the most obvious solution to the immediate problem. Maybe 5-6 years from now we'll have some titanic shift but it was foolish to think that something drastic was going to happen.

Well we only had to wait one year to see that titanic shift with the release of SwiftUI. The crazy bastards did it and Apple has released a brand new UI framework, written in Swift that is the sole UI framework you need to develop across all Apple devices. That alone would be enough to make this the most massive shift in Apple development since Swift was introduced in 2014. But Apple decided to take this one step further. They ditched the MVC pattern and completely embraced declarative and reactive programming.

While you probably don't have to jump directly into SwiftUI for a year or so, Apple has thrown their cards down on the table face up and shown that this is going to be the way to build apps for all Apple devices in the future. They will undoubtedly support UIKit and AppKit for several more years but sooner rather than later you're going to see some cool new features that you will only be able to build in SwiftUI.

At a high level I absolutely love the idea of SwiftUI. The way we build apps nowadays no longer scales with our old architectures and the move towards declarative and reactive programming has been written on the wall for a couple years now. My major fear is that this is going to be similar to the release of Swift 1.0 in that it is more of a beta than a true 1.0 release. I'm sure there are going to be not only bugs but lots of shortcomings when compared to how developers can currently build things using UIKit. I am afraid of being burned again and having to watch things change drastically underneath me for these first couple years. But who knows maybe I am just some jaded old kook yelling at change. Maybe I just need to sit back and let the youngins bang their head against the wall and then I can poke my head in when they are done.

Conclusion

This really was the biggest WWDC since 2014 and I know this not just because there was a metric boatload of announcements. It is because it took me over 10 hours to finish writing this god damn article. I deleted entire sections after I wrote their outlines because there was just too much already written. After five hours this draft looked similar to Charlie's insane notes about Pepe Silvia.

Joking aside, this really was a massive WWDC Keynote because I would say Apple did more to lay out their plans for the future than any previous time in history. It has been almost 12 years since the iPhone was released and in the interim we've gotten the iPad, Apple Watch, and Apple TV. Combine those with the Mac and we have five fairly distinct platforms that have been fighting one another for attention. There was always a sense that Apple was trying to bring everything together but a byproduct of how Apple invents products is their development environments can vary wildly. Now they want developers to build for the Apple ecosystem as a whole and not have to work so hard to support each and every platform. You can see how even internally they are trying to synchronize across all of their platforms and we are finally getting to see the fruits of that labour.

#WWDC

🎮