This new version of Quick Calendar for iPhone, iPad and Watch can be thought of as a taste of the future. In practical terms that means:
- Fix for the Watch complication
- All New Watch App
Let’s start with the app. The new version looks better, has better visual affordances and offers a better foundation for the future.
The “look” isn’t purely about aesthetics. It makes better use of the very limited available space, and the highlighted date is much clearer. It always bothered me that there were no clues about how you could move between months. Both swiping and turning the crown worked but not everyone found them. Using a simple list, a familiar interface convention, fixes that1.
Finally, the foundation. It’s now written in SwiftUI, the latest Apple technology. The neat thing is that it’s possible to use the same code on all platforms, from the Watch all the way to the Mac. The goal here is feature parity for all versions.
The complication has bugged me (pun intended) for some time. In hindsight, I was probably overthinking it.
You can update complications basically in two ways: on a schedule or when something happens. The schedule seems like the obvious one: we know when the next day starts, right? But what happens when I step from a plane and into a new time zone? The date might be different. So rather than take the “easy” route, previous versions of Quick Calendar attempted to update the complication periodically. This works for a day or two but then watchOS says “you’ve used up all your time” and doesn’t run it again. In short: it took a week to test every change I made! And nothing helped.
Version 1.2.0 takes a different approach. It generates a timeline, allowing watchOS to update the complication without any further intervention. That pretty much always works. If you ever find yourself in a new time zone and with the complication showing the wrong date, you can force a refresh by opening the app. As I say, easy in hindsight.
Apple approved this very quickly, so it’s already available to download.
- A current limitation is that you can’t go back to a previous month. Long story short, this is a limitation of SwiftUI. I’m looking to see if there are workarounds. ↩︎