Thursday, November 7, 2019

Twitterrific iOS Windows

Ryan Christoffel:

Twitterrific has become the first Twitter client to add multiwindow support, enabling creating separate windows for different accounts or different views within the same account. The first-party Twitter app, meanwhile, has recently added extensive support for external keyboards, likely as a side benefit of the app making its way to the Mac. In both cases, the Twitter experience on iPad has been meaningfully improved in ways that power users will appreciate.


If you have more than one Twitter account, such as one for personal use and another for business, multiwindow is a compelling way to avoid needing to switch back and forth between them constantly.

Craig Hockenberry:

This review that covers a both a third-party and first-party Twitter app shows how important the former is.

Third parties are always first with platform features like multi-window on iPad. And we’ve had keyboard support for several years.

Sean Heber:

I did quite a lot of work to retain support for iOS 12 while adding iOS 13 multi-windowing, but it’s kind of looking like we probably could have just dropped iOS 12 and saved myself a lot of effort. 😛

A particularly nasty implementation detail when adding multi-window to Twitterrific was that our previous theming system assumed a single global setting. When you send a window to the background on iOS 13, it snapshots it for the app picker a bunch of times.

While it’s taking snapshots for the app picker, it changes the appearance mode for that window between light/dark so it has snapshots ready if your system appearance changes. This caused the whole app to flicker between light/dark whenever any window was being snapshotted.

I had to pull a LOT of stuff apart and rebuild it just to get this all to work per-window so any other visible windows you might have had open didn’t flicker between light and dark.

Another wrinkle here is that we allow custom themes to be loaded from iCloud Drive - but you can’t rely on a file in iCloud Drive to be immediately available (it might have to be downloaded first, for example).


There are just countless little things like this to consider when implementing something as fundamentally disruptive as adding multi-window. People have no idea.


1 Comment RSS · Twitter

Leave a Comment