Almost three years in managing keyboard apps is still painful on iOS — but they don't have to be.

I've said repeatedly that I think extensibility is one of the most significant developments in the history of modern computing. Just like web sites became unbundled into web services, available in many different ways, including through apps, apps have now become unbundled and their features can be accessed from other apps, from share or action menus, from notifications, and more. Yet this bold new era of interface decoupled from logic is not without its frustrations — in this instance, keyboard apps.

I haven't used a keyboard app in a while — which is part of the problem. I was using Bitmoji a lot, but now iMessage Stickers have shown me a better, brighter emotive future. So, wither keyboard management?

On the surface, keyboard apps in iOS are a great idea. People who, for whatever reason, don't like or can't use the built-in QuickType keyboard can swap it out for SwiftKey, Fleksy, or even something silly-fun like Bitmoji. And like my colleague, Serenity Caldwell has suggested, the new Taptic Engine on iPhone 7 is just begging for a haptic keyboard app.

But add any of those, real or wished-for, isn't anywhere nearly as simple or easy as enabling a share or action extension, or a today view widget. Instead, it's a multistep deep-dive into Settings that's more than a little off-putting. And I'd love to see that fixed in iOS 11.

One of these things is not like the others

Extensions come with apps. See something you want in the App Store, install it, and if it has an extension, you get that too. Extensions aren't enabled by default, though. You have to turn them on — essentially give them permission to work.

Here's how you enable share or action extensions on the iPhone or iPad:

  1. Tap the Share button in any app.
  2. Tap the More button all the way on the right.
  3. Switch On the new extension you want to use.
  4. Tap Done.

Here's how you enable photo extensions:

  1. Launch the Photos app.
  2. Tap on any photo.
  3. Tap Edit.
  4. Tap the More button.
  5. Tap the (other) More button all the way on the right.
  6. Switch On the new extension you want to use.
  7. Tap Done.

Here's how you enable today view widgets:

  1. Pull down Notification Center by swiping down from the top bezel.
  2. Tap on the Today tab at the top, if you're not already there.
  3. Tap on Edit at the very bottom.
  4. Tap the Add button (looks like a + on a green circle) to the left of the widget you want to add.
  5. Tap Done.

Apple Watch apps are also extensions. Here's how you enable them:

  1. Launch the Watch app on iPhone.
  2. Tap on the My Watch tab, if you're not already there.
  3. Tap on the app you want to enable, lower down in the list.
  4. Switch On the extension.
  5. Tap My Watch, top left, to go back.

And here's how you enable a custom keyboard extension:

  1. Launch the Settings app.
  2. Tap on General.
  3. Tap on Keyboard.
  4. Tap on Keyboards.
  5. Tap on Add New Keyboard…
  6. Tap on the name of the keyboard you'd like to add.
  7. If the keyboard needs to access the app to retrieve more data (which many of the fancier ones do), or it needs to access an online sync or machine learning component, you also need to:
    1. Tap the keyboard name.
    2. Switch On Allow Full Access.

Admittedly enabling a keyboard extension doesn't look like more work than enabling any other extension, but here's the key difference:

Every other extension is enabled where it lives. Keyboard extensions are enabled in Settings. Deep, deep inside Settings.

If you want to use any other type of new extension, you can do it while you're trying to use it. If you want to use a new keyboard extension, you have to stop what you're doing, chase it down, and then come back.

Putting the keys in keyboard

Imagine instead:

  1. Open any app with a keyboard.
  2. Touch and hold the globe/smiley key to bring up keyboard switcher.
  3. Tap Add at the top.
  4. Switch On the keyboard you want to add.
  5. Tap Done.

And that's it.

Keeping calm and typing on

Yes, keyboard apps are a niche more likely to be downloaded by people familiar with spelunking the Settings app, but from accessibility to sticker emulators, they should be approachable to everyone.

Yes, custom keyboard apps are uniquely thin wrappers on iOS — in most cases the app does nothing but tell you how to enable the keyboard in Settings — so most people will turn them on immediately after installing and launching them for the first time. But people might also decide to disable or reenable them later, and this process makes it easier and faster for everyone, any time.)

Yes, many people don't know about touching and holding to bring up the keyboard switcher. It's still an interface accelerator for those that do, anyone can learn or be taught about it, and the key could even change color to show a new keyboard is available and prompt playful discovery.

Yes, I know it's way easier to write something than to actually engineer it, and there could be all sorts of practical reasons why custom keyboards aren't already implemented this way, including limitations on adding keyboards while the keyboard is running. Apple solves tough problems, though. That's what the company does.

And yes, I'm aware there are other issues like general stability due to resource constraints, the lack of side docking for faster on-handed typing on the iPhone Plus, the requirement to copy/paste in images rather than injecting them straight into fields, the impenetrable nature of that "allow full access" panel, and that some people still don't like the default keyboard returning for secure text entry.

I agree with most of those — security wins though, sorry — but by making custom keyboards easier and more apparent to install, it puts pressure on getting everything else as tight as possible as well.

Sticker apps in Messages give me hope, though. They show a brighter, more headless future might finally, philosophically, be possible — Apple isn't requiring you download a container app to the Home screen when you download the sticker pack. Having that for keyboards would be swell.

Your keyboard wishes?

Custom keyboards were introduced as part of iOS 8 in 2014. While I'm sure all the teams are already beyond slammed with other projects, here's hoping they get some much-needed love in the near future as well. Fingers crossed as early as iOS 11.

I've filed this feature request with Apple as rdar://25776989. How would you like to see custom keyboards work in iOS 10?