I followed WWDC this year more closely than other years, since I released an app (hope to blog about that soon). Here’s some of my thoughts.
The format was fantastic
The quality blew me away. In previous years you probably didn’t have as good as an experience as in-person, but this year they elevated the production to incredible heights. The keynote was edited together beautifully with amazing transition shots, but what’s been great is that all the session videos are super high-quality. I wonder what kind of speaking training they give the developers that do the videos, because all the ones I’ve watched articulated everything clearly, including well-timed awkward jokes. I’m sure some of these videos took many takes but it came out very well.
Apple decided to release a portion of the sessions every day, instead of dropping them all at once. I think that was a great choice, because it makes it possible to just watch a couple every day, giving you a real ‘conference’ feeling because you’re not daunted by a huge playlist, but can rather sample from what’s available on a certain day. A lot of the sessions are also shorter than in previous years, which makes it easier to watch one in between things.
Apple’s product management leaves me speechless
This year Apple introduced widgets for the iPhone. The way widgets work, is that your app creates a SwiftUI view which is serialized and presented at a later time, without your application running in the background. This is done so there is no battery impact from widgets.
How did Apple manage to plan this? Widgets requires SwiftUI, which depends on a series of Swift core language features. I am very curious how far in advance they planned this and prepared to work on compiler features, so they could implement widgets efficiently later down the line. The prerequisites seem overwhelming.
All this new stuff is very inspirational. I’m considering building support for making your own widgets into GizmoPack, or possibly having it as another app. The idea being that you would be able to use the background execution of shortcuts to program your own widget. You could have it fetch an RSS feed and display the items for example.
I’m a bit unsure about how far to take this—I imagine having some presets at least so you can have a single tappable image, an image with a title and a subtitle, a big list of items. But what if I just go all the way and make it possible to program a complete SwiftUI tree with JSON? Then users could customize the UI as deeply as they want, at the expense of usability.
After this idea, my mind starts branching out into other possibilities. I could enable people to create their own complications for the Apple Watch, to create whole apps by generating SwiftUI on-device. I could even push a widget’s content from a webhook.
What would be rad for a future version of iOS is expanding the possibilities for apps to call shortcuts. I want users to be able to program a shortcut as an extension to any application. What if you could add your own button to Pages that would execute a shortcut and paste in the result? The integration points can be increased endlessly, turning iOS into an infinitely customizable operating system. It would not become too complicated however, since all the extensions would have the same programming model for the user.
Oh and Shortcuts for macOS plz.