I Hate Flying – A Summary of Our Day:

Nota Bene – If you are one of the many people expecting to meet with me in person or over Skype tomorrow, my apologies for probably missing our appointment.

|  1 Jul 2014




OvershareKit to be Maintenance-Only for iOS 8

Last fall, after I had finished the model controller layers of Unread, I felt a pit in my stomach. The next big task in front of me was sharing. I knew I wanted Unread to have lots of sharing options, but I dreaded writing them. I had already written tons of them in the course of making Riposte for App.net. Great sharing features are non-trivial to write. It’s even harder to make them reusable (Riposte’s were not). There are many concerns to think about:

There was no way to tackle all of these issues within the limitations of UIActivityViewController on iOS 7, which is why I decided to make OvershareKit. You can read the reasons in detail on OvershareKit’s Github page, but here are the highlights:

Those are just a few of the reasons why I decided to build something like OvershareKit for Unread. Justin Williams was in a similar position with his projects around the same time, so we decided to integrate his code for managing system accounts into the broader framework that I had conceived.

Bear in mind that at the time OvershareKit was being developed, it was still unclear whether Apple would ever provide better inter-app communication and sharing APIs. After seven OS’s, it was easy to believe that Apple frankly didn’t care. I was frustrated by their lack of concern, and dissatisfied by the lack of an open-source framework to bridge the gap. It was my hope that OvershareKit would become more than just a pet project between me and Justin.

But now that the iOS 8 developer preview is here, with its powerful Extensions APIs, what should be done about OvershareKit? Extensions are Apple’s answer to the problem that OvershareKit was created to solve. It seems to me that it’s better for all involved – both developers and users – for any app that’s using OvershareKit to migrate to Extensions and the UIActivity frameworks.

OvershareKit is now an unnecessary middleman between users and services like Pinboard and Instapaper. Almost any service that users want to access via OvershareKit already has great first- or third-party apps on the App Store. The burden of responsibility should belong to them to provide great sharing features via iOS 8 extensions.

I think this should apply to all future OvershareKit development, too. For example, many of Unread’s customers ask for Evernote support. Evernote has a rich and complicated API. It doesn’t make sense for outside developers like me to spend limited resources building support for Evernote. I want Unread to have Evernote, but the costs outweigh the benefits. It’s a sacrifice I was willing to make back when Apple provided no alternative. But now that Extensions are coming, the math has changed.

I don’t plan on adding any new features to OvershareKit. I will make sure that all of its existing features continue to operate bug free on iOS 7 and iOS 8. It may take several months (or longer) for extensions to be developed for all the services that OvershareKit currently supports. In the interim, I want to be sure that apps like Unread can continue to rely on OvershareKit.

If you have an app or service you can’t live without, I urge you to write to its developers and ask them to consider adding support for UIActivity extensions in iOS 8.

|  27 Jun 2014




Preferred Orientation

I’m pretty sure the following generalization is true, with few exceptions: every iPad app has been designed for a preferred orientation. I think this is true whether the designer was conscious of the preference or not.


iOS lock screen, awkward in landscape.

I’m not saying that the non-preferred orientations are poorly designed, nor am I saying that they’re not useful. I mean only that every iPad app has an orientation in which it looks and works best – the way we say of a person’s appearance that he or she has “a good side.”

Here are some examples, off the top of my head:

Landscape

Portrait

Notable Exceptions

|  26 Jun 2014




Happy Birthday, Henry

The boy turns one year old today.

Happy Birthday, Duders.

|  26 Jun 2014




Nitpicking iOS Notification Banners

We’re all familiar by now with the iOS notification banners that appear at the top of your screen. These slide into view from offscreen in a top-down direction.

In general these are great. They’re certainly a big improvement over the full-screen alerts from iOS 4 and earlier. But the banners can get annoying when they slide over app content you need to see, especially navigation bars.

The nuclear options – the ones that turn off banners altogether – are too extreme. Luckily iOS has a simpler way. You can dismiss a banner early by swiping up, from the bottom of a banner to the top edge of your screen.

Here’s my nitpick though: why is this gesture only allowed in a vertical direction? The target region is so small that in practice I often end up triggering a tap, i.e. the exact opposite of what I intended to do.

Perhaps it’s for logical consistency. The banner appears top-to-bottom, so dismissing it occurs in reverse. But this isn’t an important enough spatial rule in my opinion.

You should be able to swipe horizontally to flick a notification off screen. We did it this way in Riposte and it was awesome.

Can you think of a good reason why horizontal dismissals shouldn’t be allowed?

|  24 Jun 2014