Keyboard extension: is it possible to inherit functions and user interface from the stock iOS keyboard?

Custom Keyboard Extensions is a powerful new tool in iOS 8 that lets you implement keyboard features that a stock iOS 8 keyboard will never have.

However, the iOS keyboard in stock is already very good. It has had years of development as the only iOS keyboard and hence many (expensive to implement) features that people expect from their keyboard.

I'd be interested in implementing a few small keyboard functionality, but would also like to keep the main interface and functionality of the regular iOS 8 keyboard.

For example, instead of offering a list of words in the new Auto-Complete area, a keyboard extension might suggest a list of Emoji.

Keymoji screenshot

Keymoji created this keyboard, but it appears to have manually copied the look and feel of the iOS keyboard rather than inheriting from it. There are many small differences when typing on the keyboard. It creates an uncanny valley experience, typing a keyboard that looks a lot like the stock iOS keyboard, but not quite.

It would be ideal to only implement a keyboard listener, emoji search, and an Auto-Complete scoped UI. Other functions and user interface will be handled by the keyboard.

Or are you, too, on the hook for (re) implementing autocomplete, capitalization, object resizing, UI for individual keys, and many other features that people expect from a keyboard?

Do custom keyboard extensions work for any of these features β€œfor free”?


source to share

1 answer

All internal implementation of the system keyboard is currently a private API and not available to developers. Some functionality cannot be fully replicated because the system keyboard is hosted in the custom application process and keyboard extensions are hosted in a helper process. The keyboard extension view hierarchy is taken out of process and displayed in the user application using XPC.

Despite any restrictions on keyboard expansion, many default features may be offered to users, such as views, smart input API, etc. This will help achieve consistency between patch keyboards, for example.

Make sure to open a bug report with Apple, letting them know the flaws in your solution and what you think will benefit the developers. Post the bug report number (radar) here so other developers can duplicate the bug report and let Apple prioritize it.



All Articles