The Unwieldiness of Complex Shortcuts

I use and rely on Shortcuts app for many of my iPad workflows. The most complex of them that I’ve created are for publishing to my Hugo-powered blog, and for publishing episodes of the various BubbleSort podcasts.

One issue with Shortcuts that I’d love for Apple to address, which they almost certainly won’t, is the ease with which they become too complex to manage or restructure.

Case in point is my Blog Post Publish shortcut, which I wrote in such a way that I could use it for multiple websites. This necessarily leads to multiple menus and multiple nested If statements, since Shortcuts doesn’t support the “else if” construct.

Nested If statements in Shortcuts

Instead, the next if clause gets forced under an Otherwise statement, so that if written in code, it would like something like this:

If (blog == scottwillsey.com) {
	// a lot of garbage here
} else {
	if (blog == wtfweekly) {
		// lots of other garbage here
	}
}

It’s definitely not the most effective way to test for and control logic flow based on multiple conditions, and really becomes a deeply nested mess the more conditions you want to support. Shortcuts as it currently is works best for relatively simple automations.

The result is that I often think about breaking shortcuts apart with multiple shortcuts to do the same thing but with variations (for example, site or podcast specific publishing shortcuts). This approach makes it easier to edit and manage individual shortcuts, but it troubles my inner geek who thinks it’s stupid to have to create multiple shortcuts that all ultimately do the same thing. I would never do that in code.

I don’t pretend to know how you’d make block-based routines easier to manage and edit, but you can quickly get lost in shortcuts while editing them. I’d like the ability to collapse complex nested sections and to lock sections to keep them from accidentally getting dragged while scrolling, a terrifying experience I’ve experienced far more often than desirable.

The other issue with long shortcuts that I’ve seen, which seems to happen on my iPhone 10s Max frequently, but almost never happens on my 2019 iPad Air, is that sometimes a long shortcut just stops executing and exits before it’s even finished. It’s also kind of arbitrary where in the flow it happens.

My guess is that there’s some host app memory issue that causes it, but it still makes complex (read: powerful) shortcuts less than useful unless you insert a “Continue in Shortcuts App” block into the shortcut so the Shortcuts app can handle it in its own memory space. In fact that’s what I’ve done so that I can see if there’s a difference in performance vs running it entirely with the calling app in the foreground.

Shortcuts has much potential but I am concerned that in trying to make it the automation tool for everyone, Apple will not address limitations with it that only become obvious when it’s used for complex workflows.

On iOS, Shortcuts is our only hope for truly powerful automation because only Apple has full access to the machine’s software and hardware. If they drop the ball with it, power users are basically out of luck, and all the people enthusiastically reciting the “iPad is a consumption device” liturgy will be right.