tl;dr: SwiftUI 🤯
This is the most interesting WWDC in recent memory. 2018 brought some really cool stuff (Shortcuts and Siri Suggestions most of all), but this year’s new arrivals signal important shifts at Apple that I think will resound for the next decade.
Right off the bat, iPadOS is where the iPad should have been 9 years ago. It took Apple a long time to get here, but they’re finally recognizing that the iPad is its own category of device, worthy of its own platform.
They’re also continuing to experiment with ways of making it easier to do real work on the iPad. It’s certainly true that plenty of people are using iPad for “work”, but realistically, a lot of those people are graphical artists using the pencil. The improvements to text editing (gestures for cut, copy, paste, and — thank god — undo) should be a significant improvement in this respect. Text editing on the iPad is still one of the most frustrating experiences on the platform, and has hardly improved since 2010. I’m guessing someone at Apple actually tried shake-to-undo on a 12.9” iPad Pro for the first time and flipped shit.
Improvements to slide over are welcome, as is the new permanent widget pane, which will hopefully finally make widgets on an iPad useful.
I haven’t had a chance to dive deeper into the iOS 13 changes, but I would have liked to see more improvements around Siri Shortcuts. I really think Siri shortcuts and suggestions – i.e. chopping an app up into individual views/actions that can be surfaced and invoked from anywhere in the OS – have the potential to really change how people use their devices. I would have liked to see better recommendations, more places for surfacing those recommendations, and allowing developer-provided suggestion criteria (i.e. “this shortcut is probably most useful on Mondays”, with appropriate limitations/fuzziness to prevent abuse), stuff like that. Maybe that’s included but there was no mention in the keynote.
UPDATE: It looks like Siri Shortcuts can be conversational now, which is definitely a massive improvement. I’m surprised it wasn’t mentioned during the Keynote, but I guess there was so much other important stuff to get through.
Apple must have spent at least 30 minutes talking about their new pro hardware, something that’s probably relevant to <0.01% of their customer base, but it’s good to see. I can’t remember an Apple keynote getting that nerdy about specs in years. I guess time will tell how committed they really are to their pro Mac users, but this is a good sign. It really feels like 2000s-era Apple, when the Mac was their baby.
Mind-blowing. Obviously the idea has been floating around for a while, but I was not expecting this to exist right now, and as far as I can tell it’s mostly everything I could have hoped for. This puts iOS development on par with modern web development, and let me tell you: as a former web developer, as much as I love developing for Apple platforms, writing procedural code for updating views is a shock coming from a world of hot reloading and UI binding.
If SwiftUI can execute on its promise of a first-party Swift-native declarative API with hot reloading and a visual UI editor (the latter being something that web development doesn’t even have!), and I have no reason to doubt that it can execute, this is a very big deal. It will make existing developers’ lives easier, it will make Apple platforms more attractive to web developers who are familiar with Angular/React, and, most importantly, will present a much friendlier face to new developers who might be intimidated by the complexity of writing a simple UITableView in UIKit.
Basically, it’s the declarativeness and hot-reloading of modern web frameworks, which have taken the web development world by storm in the last few years, but with the stability, support, and simplicity-of-environment1 that comes from being a first-party API. I’m also excited to see Apple’s take on declarative APIs, considering they have decades of experience building top-of-the-line human-computer interfaces.
I don’t know if I’ll get the chance to play with SwiftUI tonight but I’m counting every hour I have to wait before I can dive into this.
- I have never worked on a web project using Angular or React that didn’t suffer from a just absolutely intractable level of complexity in the build system. Hundreds of lines of custom configurations in Gulp, Grunt, Webpack, whatever, probably written by someone who left the team 3 years ago, and which requires 10% of development time just to keep functional. There’s no more apt use of the term “house of cards” than web application development environments.