As great as WWDC's sessions are, some of the most important information only surfaces on Twitter after developers have gotten the opportunity to play around with the beta software. I know WWDC ended almost two months ago but below are a collection of tweets that I found very interesting and wanted to make sure they were collated somewhere so I did not forget about them.
Apple has always been really bad at releasing the sample code they talk about in their WWDC sessions. Thankfully the SwiftUI team has been bucking this trend and really stepped up their game this year. The best example of this would probably be their "feature-rich" Fruta app which showcases how to build a single SwiftUI app that runs on iOS, iPadOS and macOS. While I am not entirely on-board with their architecture, I am really happy Apple released a decently complex SwiftUI app that showcases interoperability between the platforms. This is one of the biggest selling points in building apps with SwiftUI but Apple hasn't done a great job at convincing developers that this benefit will be realized.
isPlaceholder() has actually been renamed to
redacted(reason:) in a later iOS 14 beta. It is an interesting cool solution to the problem of what do you show the user while their data is loading. Every single iOS developer has implemented their own bespoke solution so it is great to see Apple trying to push forward a defacto standard.
This tweet is a perfect example as to why I am super excited for SwiftUI as well as absolutely terrified. SwiftUI grids look very powerful and should make prototyping / iterating on complex layouts stupidly simple. But those transition animations are essentially unacceptable. If my designer tasked me to build a dynamic grid layout and I showed them that demo they would undoubtedly critique the animations and rightfully so.
What scares me the most about this is that I have no idea if I could fix it. After working with UIKit for only a short period of time you quickly learn that while you get a lot of nice stuff for free, you can go behind the curtain and play around with the underlying implementation details. But with SwiftUI it feels like much more of a black box because it is meant to be platform independent. The assumptions you can make about the implementation details of UIKit don't seem to exist in SwiftUI.
I will readily admit that I haven't played with SwiftUI that much so it is possible the solution is already out there, but based on what I am seeing on Twitter this is a very common point of confusion.
Maybe the solution to all of my SwiftUI animation fears is in this this demo of
.matchedGeometryEffect. It looks really cool and potentially powerful but is also another platform independent black box which makes me anxious. Maybe this is something that SwiftUI 3.0 is going to solve?
While I do have a lot of concerns about SwiftUI I am still very bullish on its future. Seeing Apple dogfood it like this only a year after its first public release fills me with confidence. Hopefully the developers inside Apple using SwiftUI are encountering the same issues us third-party developers are.
Using PDFs for vector images always felt like a hack so it is great to finally see proper support for SVGs. One less thing for designers to complain about. 😋
It has been an open secret for years that hundreds of apps abuse the iOS pasteboard to invade their users privacy. iOS 14 is finally going to put all of those apps on blast and I could not be happier. I'm also happy that Apple realized there are a few valid cases to be checking the pasteboard with some regularity and they've built an API that does a solid job at protecting the user's privacy. It doesn't cover every valid case but the API does have room to grow so hopefully it does.
I still think untyped throws are the stupidest part of the Swift language but SE-0276 does a good job at making catching typed errors much easier.
The Apple Watch Series 1 & 2 were mostly Apple showcasing that an SoC could even remotely function within that small form factor. It wasn't until the Series 3 when they really hit their stride and proved that a watch could have some serious processing power. The Series 3 is still only a 32-bit core so it will be interesting to see if they drop support for it come watchOS 8.
Very few iOS developers ever think about app security so it is great to finally see an in-depth WWDC session on it. Just because your app is distributed via the App Store doesn't mean you can blindly trust it.
I am eternally grateful that Apple never listens to this vocal minority that wants their phone to be a configurable mess where apps can run anything, anytime. Desktop operating systems like Windows and macOS are so hostile to regular users because at their core they are developer machines first. Mobile operating systems should be designed around the average user experience and then branch out to power users if they can. For some reason every "journalist" sees Apple being prescriptive about UX as a bad thing when the everyday users couldn't give a fuck.
Personally I was most impressed with Luca Bernardi's in Data Essentials in SwiftUI.#WWDC