Speed of Light

WWDC 2012 Wish List

This year's WWDC is fast approaching and while my full predictions list will come in a future article, I wanted to take a moment to list some items I'm really hoping we'll see come June 11.

User

As a user, the main feature I really want out of iOS 6 are Safari Extensions. I've become a big fan of Safari Extensions on the Mac, and those such as AdBlock, NoMoreiTunes, Beautipedia and Shelfish are all sorely missed when browsing on my iPad and iPhone.

Since Safari extensions are written with HTML, CSS, and Javascript, I would not at all be surprised to see them added to iOS. Theoretically, the same extension would work unchanged between desktop and mobile platforms.

Bonus points would be given if my extensions could be kept in harmony across all my devices (but let's not get too hasty).

Developer

The biggest and most important feature I want as a developer, is a major overhaul to the text system of iOS. UITextView is the main text class on iOS, which is what you use in any application which involves scrollable text editing. It gets the job done, but it's extremely basic. On its own, it can't be used for rich text in any capacity, so if you want to style your text, you've either got to use some embedded WebView hackery or roll your own text view class entirely from scratch.

Neither approach is impossible, but it's a substantial amount of work and is really in need of enhancement from Apple. Such an upgrade would make it much easier to develop apps for blogging, code editing, word processing, email, etc.

On the Mac, we get NSTextView which has all these capabilities and more. But Cocoa on the Mac is still deeply rooted in its NeXT heritage which means the assumptions it makes are much more valid for the underpowered hardware of yesteryear. By combining newer technologies of iOS like Core Animation and Core Text (also available on the desktop), we could have a really powerful and efficient text system.

In addition to adding features for styling text, I think it's also time to add some new standard features which nerds have enjoyed for ages in our text editors.

For example, the “ (quote) character is ambiguous and degrades the typographic quality of whatever document I'm working on. 99% of the time, it would look better if this was automatically transformed into the proper “ or ” glyph (if you're using an app which doesn't do this for you automatically, you can use Opt+[ and Opt+Shift+[ respectively for both OS X and iOS physical keyboards, or hold down the ” key on the iOS on-screen keyboard).

If I enter the “ character, you can be sure I'm going to want an ending ” character later on, to end my quotation. Lots of word processors and programming text editors will add the closing quote mark automatically, and then place the cursor in between. If, as is habitual for many typists not used to this nicety, I type an end-quote anyway, skip it and move my cursor for me. The same goes for other character pairs like parentheses (), braces {}, and brackets [].

Implementing these features in an app is neither extremely difficult nor is it trivial (for example, what happens when text is pasted containing one of these characters?), but these implementations should be standardized by Apple, and these features should have been added ages ago.

Bonus Round

Related somewhere in between a user and developer feature, I'd really love to see an improvement to physical keyboard support in iOS 6. I've been doing a substantial amount of typing on the iPad with a Bluetooth keyboard lately, and I'm really starting to agree with Andy Ihnatko about some of the deficiencies of this practice. An assortment of sore spots:

  • There is no “Command+Tab” equivalent for switching apps using the keyboard alone. Instead I've got to touch the device. This makes it more of a pain if I'm writing an article in a text editor and trying to keep all my links in order from Safari (which, incidentally, is exactly what I'm doing right now).
  • Similarly, there's no keyboard shortcut for going to the Homescreen, either.
  • When I press and hold down on a key, there's a very slow key repeat and there's no way to configure this. This is reallllllllllly annoying (and so was that).
  • As an app developer, there's no way for me to enhance my application to support keyboard shortcuts. This could also go under an enhancement to the Text system as described earlier. Aside from standard shortcuts like “Command+C” for Copy and the like, as a developer I can't add my own shortcuts for, say, “Command+N” for New Document.

There's been lots of talk lately about iOS 6 and any remaining “low-hanging fruit”. I think most of the low-hanging fruit has already been dutifully snatched up, but I think there are lots of little pieces of iOS in desperate need of ironing out. Apple is trying to make iOS their platform of the future, and it seems like these issues will have to be addressed in order to accomplish that.