Essentials

KeyboardKit extends Apple’s limited keyboard APIs with a lot more features than what is otherwise available.

KeyboardKit lets you create a native, fully customizable custom keyboard with just a few lines of code, and will automatically set up things like App Group settings sync, locales, dictation, etc.

Core Features

KeyboardKit has essential models, features and views, and a KeyboardView that mimics the native keyboard.

KeyboardKit’s KeyboardInputViewController extends UIInputViewController with more features, and the KeyboardAppView can be used to set up a main app target with keyboard-related features.

KeyboardKit has feature-specific namespaces, like Keyboard, Autocomplete, Emojis, Feedback, etc. Each namespace has its own observable state, settings, services, etc.

The Keyboard namespace is designed to provide you with all the tools needed for the core keyboard engine, while the other namespaces provide additional features on top of this engine.

Models & Utilities

The Keyboard namespace defines tons of essential models like Diacritic, KeyboardCase, Gesture, etc., utilities like State and Services, and views like Button, and NextKeyboardButton.

Observable State

Each KeyboardKit feature has an observable context class, that contains observable state. For instance, the main KeyboardContext lets you get and set the current locale, and manage the overall keyboard state.

Other contexts, like AutocompleteContext and DictationContext are used for their specific features, and contain settings properties that refer to auto-persisted, feature-specific settings.

KeyboardKit injects all contexts into the environment, to let you easily access them as environment obejcts.

Settings

KeyboardKit manages core settings via the KeyboardSettings features. Each feature has its own settings, like AutocompleteSettings and DictationSettings.

Views

The Keyboard namespace defines many core views, like Keyboard.Button, toolbars, gestures, etc., and a KeyboardView that mimics the native keyboard.

KeyboardKit Pro

KeyboardKit Pro unlocks more capabilities in each feature, and makes the KeyboardView support 76 locales.

KeyboardKit also unlocks additional app utilities, that lets you set up a full-blown main app with keyboard status handling, settings screens, etc. Be up and running in minutes, with very little code.

Documentation

The information on this page has been shortened to be easier to overview and keep up to date. For a complete feature description, see the online documentation.