Archive for August 24, 2018

Friday, August 24, 2018

On “Shake to Undo”

John Gruber (tweet):

It’s a tricky problem how to implement universal Undo without a menu bar and without keyboard shortcuts. Even Cut/Copy/Paste were tricky enough that it took until iOS 3 for the iPhone to get them. That’s why the menu bar and keyboard shortcuts are such essential elements of the Mac experience.

Shake to Undo is problematic enough that I think Apple should have figured out something better for the iPhone by now. (For accessibility reasons, you can turn Shake to Undo off, but if you do, you don’t have any Undo at all.) My best suggestion would be to take away some space from the auto-suggestion row above the keyboard and put in an Undo button on the left, just like the iPad.

I’d like to see undo available via Siri and Control Center (since that doesn’t need the keyboard). Unfortunately, it just doesn’t seem to be as pervasively implemented on iOS as on macOS.

Update (2018-09-08): John Gruber:

The poll results at the bottom of this @benlovejoy piece on my Shake to Undo piece are eye-opening. Only 35 percent of responders ever use Shake to Undo, and 85 percent agree that Apple should add an Undo button above the iPhone keyboard.

Russell Ivanovic:

“The fact that system-wide Undo exists in iOS is great. (Android doesn’t have it.)”

Narrator: it does

Russell: and it’s a million times more intuitive

Eli Schiff:

As a very early iOS user it was quite obvious day one that undo was missing. It was a common complaint that other OS makers offered it and iOS didn’t. 2018 is a decade late for this discussion.

Mark Alldritt:

And lets not forget that Shake to Undo provides no context for the undo operation. Do you want to undo the last text edit or undo the deletion of an email? With split-pane on iPad, which app should respond?

David Gelphman:

Listening to the recent Talk Show discussion by @gruber and @jsnell about “shake to undo” made me think they might be amused by this Apple patent

Open Sourcing Twitter Network Layer

Nolan O’Brien:

In 2014, iOS 7 was released with the new NSURLSession API for networking to replace NSURLConnection (which ended up being deprecated in iOS 9). At Twitter, we wanted to modernize our original network code and design something scalable and robust that would last at least the next 10 years. We took that opportunity to assess the drawbacks of the system we had in place and enumerated all the possible improvements we could build in an encapsulated framework that was modern and scalable.

Twitter Network Layer (TNL) was first built in 2014 and over the course of the next two years, we transitioned everything over to TNL while iterating on the framework. TNL has now been in production for 4 years, 100% adopted for over 2 years, and has had no bugs identified in the last 18 months.


There is an additional benefit of having TNL abstract away NSURLSession instances, which is an automatic performance gain of reducing the number of NSURLSessions that would need to be created.

Apple Security White Papers

mikey has posted an archive of the iOS and macOS security guides, going back to iOS 6 and Leopard.

How I Kicked My E-mail Compulsion

Robert Heaton:

I’ve been checking my personal emails 3 times a day or less for the last 2 months, and it’s had a noticeable effect on my mood, happiness and self-esteem.

Your compulsion of choice might be Twitter, Instagram, or Reddit. Whatever it is, you might be a bit happier if you used it a bit less, so here are the habits and thought patterns that helped me with my emails.


Between 2013 and a few months ago, I had an email-hungry gorilla on my back. She was always demanding to know whether any long-lost friends, reporters (it happened once, it could happen again), or well-wishers had gotten in touch during the last few minutes. I also had a vague and mounting sense of wanting to check my emails less. Every time I did open my inbox I felt like I had failed at something, and had given in to my cravings and my gorilla. Whenever I even considered checking my emails I felt a duty to try to resist. Then I either spent some willpower, which we’re assuming is a finite resource, or gave in and felt like a gross loser.