The online home of John Pollard

WWDC 2021 Wishlist

Annual list of things if announced next week would make me very happy

It’s that time of year again when Apple presents what exciting new features iOS developers are going to be integrating into their apps over the summer.

I’m surprisingly excited about WWDC 2021, and as per tradition here’s my top 5 list of what I’d love to see announced.

1. iPadOS multi-tasking improvements

Once again iPadOS is falling behind, both in parity with iOS14 features, and allowing users take full advantage of the fantastic hardware power of modern iPads.

Other than just catching up e.g. allowing widgets be placed anywhere on the home screens rather than in a single column, we really need a complete redesign of the almost unusable multi-tasking setup.

It’s clear iPadOS needs to be closer to MacOS in offering a better way to run multiple apps at once, run background services, and other “power user” features. Despite the name of this blog, it’s now pretty rare I do any work on my iPad ☹️

Not holding my breath on getting fundamental improvements this year, but surely Apple must be completely rethinking how multi-tasking works? Why else would they break out the iPadOS name other than to make a significant break from iOS?

2. SwiftUI improvements

I really love SwiftUI, both the simplicity of building nice interfaces in code, plus the functional/reactive way it works.

However we really need the platform to become more mature this year. There are so many small but significant pieces missing, that often mean writing UIKit wrappers to achieve what should be built-in features.

Off the top of my head, things that have been painful for me recently include:

  • Text rendering - in particular using attributed text
  • Pull to refresh
  • Navigation - the current use of NavigationLink doesn’t scale at all well for more complex apps

3. More support for Combine

I’ve started using and learning more about Combine recently, and really like it. It obviously works really well in conjunction with SwiftUI, and can simplify many common patterns of app development.

However, it would be great if there were more built-in Publishers for other parts of the system. Casey Liss wrote a great article summarising his thoughts on this topic, and I couldn’t agree more.

With the forthcoming async/await support in Swift 5.5 - and having used this pattern in Flutter recently, I can’t wait for this - it will be interesting to see if Combine is continued to be extended by Apple, or if it becomes semi-abandoned in favour of newer technologies. I really hope not!

4. Interactive widgets

A no brainer this one. Widgets are great, and I use them extensively on both my iPhone and iPad.

Like everyone, I probably “over widgeted” my home screens when they first came out, but now have a good mix of useful widgets amongst my app icons.

However it seems obvious that adding some limited interactivity would make them even more useful. The common example given is play/pause buttons for audio widgets, and I can’t believe they won’t be implementable after this year’s OS updates.

5. Core Data replacement

We really need a replacement for Code Data for the modern age.

So many apps I work on follow a similar pattern - they interact with a server API that returns JSON data, tand we to cache on device for use when the user if offline.

On a recent project we used Realm for the local database storage. It wasn’t too bad compared with past experiences with Core Data, but we still ended up writing too much bolierplate code to manipulate the data from the API response into the correct types to allow it to be easily saved and retrieved offline.

Drew McCormack wrote a great article a few days ago about what he calls “SwiftData” - and I really recommend you reading it if you haven’t already.

I’m not sure about his thoughts on supporting decentralised databases, but having a simple database system that easily maps to say Codable structs, is extensible by default, and “just works” would be fantastic.

TBH I’m not holding out much hope for this, but any improvements to CoreData to match actual usage patterns I see in most apps would be very welcome.

Summary

I’ll update the scorecard after all the details are out of WWDC 2021, but I really hope at least 3/5 come true - and we get some exciting (not AR/VR!) new things to play with that I didn’t realise I needed!