Custom keyboards in iOS 8: Explained

Custom keyboards in iOS 8: Explained

Custom keyboard extensions, part of iOS 8's new Extensibility feature, allow developers to almost completely replace the default, system-wide iOS keyboard with ones of their own devising. (That's in addition to Apple's own, new QuickType predictive keyboard.) Not only does that include favorites from other platforms, like Swype or SwiftKey, but it opens the door to ones that offer new languages, novel input methods, special options, and more. So, how do the new custom keyboard extensions work?

From in app to out

For a while now Apple has let developers create and deploy custom keyboards, but those keyboards could only exist within their own apps. For example, Apple itself created and deployed a custom, spread-sheet optimized keyboard for Numbers.

VNC and Remote Desktop apps have used custom keyboards that include OS X or Windows-specific modifier keys. Social network apps have added rows to the default keyboard that include @mention, #hashtag, and even camera access characters above and beyond those in the default keyboard type layouts. SwiftKey and other third-party keyboard companies have even created note-taking apps just to make their custom keyboards available on iOS within those specific apps.

Now, however, custom keyboards can break free of their app jails and be used system-wide, in every app, and for almost anything.

How custom keyboards work

Even though custom keyboards are designed to work throughout iOS, they still have to be contained in an app. So, for example, to install SwiftKey on your iPhone or iPad, you'll have to download the SwiftKey app. The SwiftKey app's custom keyboard extension will then make itself available system-wide.

The next time the default keyboard appears, you'll be able to tap the globe (keyboard change) button, select the custom keyboard, and start typing with it.

There are still some lingering questions when it comes to implementation. For example, if you install the Swype app to get the Swype keyboard, what would the app itself do when you launch it? If the Swype app is deleted, the custom keyboard extension gets deleted with it, so would there be a warning provided to make sure people know and understand that, especially if they haven't looked at the app in weeks or months and forgotten why it exists?

Download/delete/re-download is a simple process understood my hundreds of millions of iPhone and iPad customers. Extensibility offers new functionality beyond that of the traditional app. Somewhere, somehow, both Apple's procedures and our understandings are going to have to grow and mature.

Custom keyboard limitations

While custom keyboards can, for the first time, exist beyond the confines of their own apps, there are still many limitations placed on them. Some of these are philosophical — Apple has strong opinions on security and privacy. Others may be technical.

To start with, by default custom keyboards are restricted to the local device. They can't access the internet without explicit permissions. They also can't be used in secure text fields, like those for passwords. More on that in the security and privacy section.

Moreover, custom keyboards don't have access to the built-in keyboard toggles in Settings either, but a custom set of settings can be created just as they can for any other type of app. They also don't have access to the phone system (phone pad), which adhere to a strict set of input characters mandated by the carriers.

In all of those cases, the default iOS 8 keyboard will replace the custom keyboard, and then return to it when eligable input fields become available.

Custom keyboards also can't be used to select text or move the input position around. So no PC-style arrow key and cursor simulator keyboards. That kind of functionality is currently only available for the app hosting the keyboard. Likewise, the keyboard can't project its own editing commands, like copy/paste into an app, nor can it currently draw above the top row of the keyboard the way the default one does.

Remember, this is Extensibility 1.0, and doubtless custom keyboard extensions, like everything else, will continue to evolve over future versions of iOS.

Developing custom keyboards

Apple intends for custom keyboards to offer something that's above and beyond what Apple's own keyboard provides, and is useful system-wide, not simply applicable to its own, specific app. That includes things like languages Apple doesn't currently support, and input methods and prediction system different from the ones used by Apple's QuickType.

They can work via taps, swipes, gestures, and anything else supported by multitouch, but they have to work the way people have come to expect. Input has to be taken and output has to be delivered. And they have to not only be functional but feel lively and responsive.

Custom keyboards also have to let people switch to and away from them using something akin to the 'globe' button Apple provides for switching to and away from, or cycling through, the built-in emoji keyboard, for example.

Apple also strongly suggest they provide autocorrection, predictive suggestions, and spell checking, capitalization and punctuation consistent with the built-in keyboard experience, caps lock and ideographic input if appropriate, and dictation support.

These aren't requirements and there aren't APIs to provide support for them "for free", but Apple categorizes their implementation as providing a competitive advantage.

Like other types of extensions, custom keyboards are remote views that get presented to the host app. If a developer wants to provide support for multiple languages, they're encouraged to build a separate keyboard extension for each.

Most importantly, Apple emphasizes trust. Apple emphasizes it over and over again. If a developer doesn't need to use server-side processing, they can keep keyboard functionality local, which enhances trust.

If a developer wants their keyboard to go to the cloud, they need to get explicit permission and offer utility worthy of that permission. For example, auto-complete based on a server-side address book, location mapping, lexicon, prediction, dictation, sync, mobile device management, etc.

Developers need to ensure that people get what they expect, and that if the go to the cloud, data is only ever used for the benefit of the person using it.

Security and privacy

iOS, being a privacy- and security-first operating system, does place some limitations on custom keyboards. First, by default they have to keep everything local to the device. That's to prevent key-logging activity. (Where a malicious app steals what you're typing.) If the keyboard does want to add server-side intelligence (which can improve the system), it has to ask your express permission. Apple will then warn you about the app having access to your credit card or street address information, but let you go ahead if you choose to.

What's more, whenever you move to a secure password field, third party keyboards are temporarily disabled and the standard iOS 8 keyboard is presented instead. This is not only to prevent key-loggers, but to prevent anyone at all from having any access to your passwords whatsoever.

Apple will no doubt also provide appropriate toggles in the Settings app should we wish to change our minds later.

Bottom line

Lack of custom keyboard support has been cited by some as a reason to stay away from iOS. Now that reason is gone. Although there are still limitations, both for security and privacy, and for technical reasons, pretty much any existing third-party keyboard can now be brought to iOS, and new and previously unimagined ones can be created. (Please, I beg you, don't waste this power on Hello Kitty!).

We'll have to wait for fall to see how well they work, but it should amount to the difference between fantastic and phenomenal.

Rene Ritchie

Editor-in-Chief of iMore, co-host of Iterate, Debug, Review, The TV Show, Vector, ZEN & TECH, and MacBreak Weekly podcasts. Cook, grappler, photon wrangler. Follow him on Twitter and Google+.

More Posts

 

8
loading...
29
loading...
54
loading...
0
loading...

← Previously

We have an iPod touch winner!

Next up →

How to change the iTunes account on your iPhone or iPad

There are 33 comments. Add yours.

matthewmspace says:

I can't wait to finally ditch the default iOS keyboard. Compared to Google's keyboard on my HTC One, it's nowhere near as advanced or as good at predicting what I'm typing. And swiping is a lot faster for me than typing. Glad Apple's finally doing this.

Rene Ritchie says:

Apple's default keyboard is being updated with QuickType predictions as well.

UmairItrat says:

I can usually type faster on my iPad than on my laptop because Apple's autocorrect is brilliant. Of course a trained typist would disagree but it should be true for many people

DeerSteak says:

If only it was also being updated with gesture typing, then I wouldn't clamor for a new third party keyboard.

qtrim says:

So I guess we won't be seeing a LastPass keyboard? If so, that's too bad.

Sent from the iMore App

mister_grey says:

In all fairness, the very thing that LastPass keyboards were meant to counteract doesn't exist on iOS, and a LastPass keyboard would only operate inside a browser anyway. Outside of the browser, it would be horribly insecure for the very reasons mentioned.

Rene Ritchie says:

LastPass could create a Safari action extension that could autofill passwords.

Latest 1Password beta for iOS 8 does that. Even authenticates using Touch ID. I imagine LastPass will as well.

Gazstar says:

That's good to know. The "open 1Password, enter master password, find required login, tap on the password, select copy, switch back to Safari and paste in the password" routine gets old quickly.

Sent from the iMore App

luqman24 says:

Well you know what they say, if you can't beat them join them...

Rene Ritchie says:

More like meet in the middle. Everyone started in a different place with different priorities, now they're all rounding out.

mister_grey says:

Never seen or used a keyboard as good as Apple's built-in one on iOS. Alternative vendors have a very high bar to get over.

Never met anyone who's opinion I respect that uses an alternative keyboard either. I think most people who use them seem swayed by illogical factors and illusory performance gains.

AvalancheRyder says:

Wow, way to slam alternative keyboards without offering a single reason why you think Apple's iOS keyboard is so much better. Remind me not to respect your opinion.

Posted via my Galaxy Note 3 on the Android iMore App

mister_grey says:

Comments are like ... "opinions," you know? I just said what I think based on my experience (which is pretty extensive actually). You are at liberty to ignore me, and me you, as is both yours and my right.

If your that sensitive though, maybe you don't really believe in your own opinions as much as you should. I notice that while you slammed me, you don't give any reason for your opinion either, so we're probably both just wasting space when it comes down to it.

WestonCory says:

SwiftKey demolishes the iOS keyboard.

HTC One M8 Posted via iMore App

Oystein Roysi says:

I'm really looking forward to using MBraille as my default keyboard:) I'm using it now, but now I have to use the app, and then paste the text into where I want it.

Sent from the iMore App

Mikeintoshcz says:

Actually according to Ole Zorn tweet they maybe allowed cursor movement in iOS 8 beta 3 https://twitter.com/olemoritz/status/486249835482603520

Rene Ritchie says:

Quite possibly. We'll have to wait for the final release to know for sure.

Nemesisprimed says:

This is true. with iOS b3 Apple has changed the rules for developers and they now have access to text selection. Since this was specifically addressed in the update notes, I highly doubt they'd pull it out.

rewNATION says:

will all these keyboards come with a price tag or will they be free?

Rene Ritchie says:

I hope they're paid. There's no such things as "free" (I mean, would you work for free?) so if they don't charge a nominal fee, we'll end up paying in other ways, and I'd rather avoid that.

rewNATION says:

I know what you mean but that's disappointing to hear. I've never paid for an app before and i just can't bring myself to do it. i guess i won't be able to take advantage of custom keyboards. this was an addition to iOS 8 i was excited about; now i could care less.

Kevin_STLTechTalk says:

Swiftkey just went free over on Android as I'm sure you've seen. Now users pay for themes instead of the app itself.

I'm sure most will still be $0.99 to $4.99 though when brought over to iOS.

WestonCory says:

Individual themes are .99 and theme packs with multiple themes are 2.99.

HTC One M8 Posted via iMore App

matthirst says:

"Custom keyboards also can't be used to select text or move the input position around"

Jailbreak Developer iKy1e has had success implimenting his SwipeSelection tweak idea into an iOS 8 keyboard. I believe due to an additional API in beta 3;

https://twitter.com/Freerunnering/status/486700657622409216

Paradocks says:

I hope third-party keyboards display proper letter case unlike Apple's keyboard. In this day and age I can find NO reason why Apple's software keyboard needs to display ALL CAPS ALL THE TIME. When typing in lower case, the letters on the keyboard should be lower case. Simple. Logical. Yet it's a totally foreign concept to Apple. This is one area where most other software keyboards surpass Apple's in terms of user interface.

Rene Ritchie says:

There are arguments to be made both ways. This way, Apple can have the consistent letter experience they believe is most valuable, and others can have the changing letter experience they prefer.

Paradocks says:

I don't know, Rene. Didn't you write an article a while back addressing just how confusing it was to decipher the caps arrow on the Apple keyboard when they changed the indicator status? If you had to spend time writing a whole article on how to determine when the Apple keyboard will enter capital letters on the screen then something is not right. It bugs the hell out of me when I type something on my iPad, especially when it comes to case-sensitive passwords. More often than not I have to re-enter a password because I cannot quickly tell at a glance if a lower case or upper case letter will be selected. Frustrating. And using an Apple product shouldn't be frustrating.

Lt_Solorna says:

I just wish that I could have the Apple built-in keyboard with digital Dvorak throughout.

nnimkar says:

"nor can it currently draw above the top row of the keyboard the way the default one does"

Does this mean that keyboards can not add their own prediction options like the first screen shot of the article?

Kevin_STLTechTalk says:

Smartphone users who have been iPhone only from the start are in for a treat when these new keyboards start rolling out.

It is the most used app/service on a smartphone after all.

ctt1wbw says:

I'm already using the Fleksy keyboard on numerous apps on my non jailbroken iPhone 5c running iOS 7. I love playing Stump The Chump on greasy Android fanboys about this.

KCMik3 says:

My reactions:
1) Yes!!
2) Let's all welcome Apple to 2010

itsthisguyneil says:

Swype was my favorite keyboard (long time android guy, recently switched iPhone guy now) and typing didn't feel too at home on the iPhone. Now with swype for the iphone I can finally get a great user experience AND typing experience

Sent from the iMore App