WWDC 2020 – Day 2


Wow! Made it thru 9 sessions today, and have 2 more that I wanted to do, but I am bushed. I will try and post a quick summary in the morning of the session on this same blog post… More to come…

As promised, here’s what I’ve learned on Day 2 (or at least the sessions that caught my fancy.

Session 1 – Meet Scribble for the iPad.  

I did this one first, because it was the first one that downloaded for me.  My goal was to start downloading everything I was going to watch for the day and then start going thru them.  Even thought the videos “Dropped” at 1pm ET, there was a delay before they showed in Developer app, but not a surprise.  Apple had to coordinate the distribution of all these videos to various content distribution centers.  It was certainly with the wait.

The simple aspect of Scribble is that any “standard” field that support text will handle scribble by default.  This is as expected. I immediately tested with Wasted Time on the iPad and “it just worked”.  There were only a few APIs that the session covered, mainly to allow for custom controls to recognize Scribble. 

If you want to allow the user to add a new element in a list (think the Reminders app), then you need to use UIIndirectScribbleInteraction. Think of this as recognizing that the user is in your list, but in an area that doesn’t “yet” have content.  Overall, Scribble seems pretty clean, and simple.

Session 2 – What’s new in SwiftUI 

A few new areas if change.

As you can see from the list above, there a lot new things in SwiftUI. This is great to hear! I rewrote my app last year to use SwiftUI and while it certainly improved a lot of my code, there are things that still need to be worked on.

The most existing thing to me was the change to allow for @main as the entry point for your app. This means that a lot of the upfront code that was original developed in your AppDelegate, SceneDelegate and View, can now be simplified.

Lazy loading for Stacks means that you can greatly improve the performance and memory usage of your app.

Session 3 – Port your Mac App to Apple Silicon

Only three simple steps.

This session was one of the longest sessions I watched. It was, however, well done, pointing out those areas that your app may have problems during the transition. I won’t go thru the details, but I have signed up to work on the transition with Wasted Time. I am expecting it to be painless, as I have kept my code up to date with Apple’s recommended changes year after year.

Session 4 – What’s New in Swift

Another jammed pack session

This session really focused on how Swift5.3 is now a first class language, being available on multiple platforms, building out a thriving ecosystem of Open Source projects, etc. If you want to get all the details, I suggest that you go to Swift.org where they include a great blog on their enablement of Swift on AWS Lambda, along with updates on how you can contribute to the evolution of the Swift language.

Session 5 – What’s New in Mac Catalyst

Another first class citizen

As you can see from the list above, Mac Catalyst is now supporting more and more of the iOS frameworks. This aligns really well with the transition to Apple Silicon. A key item is that for those services that don’t work on the Mac – think AR Kit, instead of requiring #if directives and compiling differently based on target, you can now write your code, like you would on iOS, and check for feature availability on the device. Nice!

Session 6 – Meet WidgetKit

You can tell the sessions that keep me way too focused, I only get a screen capture from the title page.

Widgets are really taking advantage of the Intents that I’ve been working on in Wasted Time. If you have used the Siri face on your Watch, and how it exposed information that should be right and right on time, this is the logic on how WidgetKit will expose information in Widgets.

Keeping in the overall theme so far, these Widgets are written in SwiftUI and are exposed across all platforms! Can’t wait to see if I can get Wasted Time to automatically be exposed when meetings start. We shall see.

Session 7 – What’s New in SiriKit and Shortcuts

This picture really explains what’s going on. Siri and Shortcuts are becoming much more integrated in to the system and will be much less intrusive. Siri will now use the shortcut intent UI (as you see on the right) to expose information. And Shortcuts now can run on top of other apps, instead of taking over the whole device.

Session 8 – Lists in UICollectionsView

It was getting late in the day when I viewed this one. I am going to have go back and re-view this session, as the speaker was doing very detailed analysis of what is new. I am hoping that my greeting card app can take advantage of this session.

Session 9 – iPhone and iPad apps on Apple Silicon

Another late in the day session. The good news is – “it should just work”. But the key answer is … compile and test! Good advice.