Overview
A flexible keyboard layout is at the heart of a software keyboard, with many considerations like the current device model, screen orientation, locale, etc.
KeyboardKit lets you use input sets to define input keys, and keyboard layouts to define the full set of keys. This gives you maximum flexibility to define layouts for different locales and configurations.
KeyboardKit Pro unlocks more features, like more input sets, localized input sets & layouts for all supported locales, iPad Pro layouts, and more layout capabilities.
Namespace
KeyboardKit has a KeyboardLayout
type that is also a namespace for other layout-related types like Configuration
, Item
, etc.
Input Sets
An InputSet
is used to define the input keys of a keyboard. It makes it easy to define different keys for the same keyboard layout. KeyboardKit has pre-defined sets like qwerty
, numeric
& symbolic
.
Layouts
A KeyboardLayout
specifies the full set of keys on a keyboard. Layouts can vary greatly for different device types, screen orientations, locales, keyboard configurations, etc.
For instance, while most keyboards have 3 input rows, as above, and a bottom row that is often the same across locales, many languages use very different layouts. A layout must therefore be flexible.
Services
In KeyboardKit, a KeyboardLayoutService
can generate dynamic layouts at runtime, It provides us with the flexibility we need, to accomodate to the varying needs for different locales, devices, etc.
π KeyboardKit Pro
KeyboardKit Pro unlocks additional input sets like qwertz
, azerty
and custom ones for all locales.
KeyboardKit Pro automatically makes the KeyboardView
support all input sets and layouts, without any additional code. Just change the locale, and the keyboard will adjust itself automatically.
KeyboardKit Pro also unlocks a layout service that can generate iPad Pro layouts for all locales:
KeyboardKit Pro also unlocks ways to easily add a various input toolbars above the KeyboardView
:
KeyboardKit Pro also unlocks KeyboardLayout
capabilities like .adjusted(for:layoutConfiguration:)
, .copy()
, and .createIdealItem(for:width:alignment:)
, which make it easier to customize layouts.
KeyboardKit Pro can also extract bottom row information, like .bottomRowLayout
and has additional functions for modifying layout items and keys in various parts of the keyboard.
See the KeyboardLayout
and KeyboardLayoutIdentifiable
type documentation in the Pro docs for a full list of capabilities that KeyboardKit Pro unlocks.
Documentation
The information on this page is shortened to be easier to overview. For more information see the online documentation, or the KeyboardKit Pro documentation.
Core Features
KeyboardKit is packed with features. You can upgrade to KeyboardKit Pro to unlock pro features.
Essentials
KeyboardKit provides essential features, utilities & views.
Actions
KeyboardKit makes it easy to handle keyboard actions.
App
KeyboardKit makes it easy to set up your app and its keyboard.
Callouts
KeyboardKit can show input and secondary action callouts.
Emojis
KeyboardKit defines emojis, emoji categories, skin tones, etc.
Feedback
KeyboardKit can trigger audio & haptic feedback.
Gestures
KeyboardKit can trigger & handle rich keyboard gestures.
Layout
KeyboardKit has fully dynamic & customizable layout engine.
Localization
KeyboardKit supports 70 locales, with localized resources.
Navigation
KeyboardKit lets you open urls and apps from the keyboard.
Previews
KeyboardKit has built-in support for SwiftUI previews.
Proxy Utilities
KeyboardKit lets the document proxy do a LOT more.
Settings
KeyboardKit has tools for in-app settings & System Settings.
Status
KeyboardKit detects if a keyboard is enabled, has full access, etc.
Styling
KeyboardKit lets you style your keyboards to great extent.
π Pro Features
KeyboardKit Pro unlocks powerful pro features to take your keyboard extension to the next level.
Essentials
KeyboardKit Pro unlocks more essential views & utilities.
AI Support
KeyboardKit Pro unlocks features that are needed for AI.
App
KeyboardKit Pro unlocks app-specific screens & views.
Autocomplete
KeyboardKit Pro unlocks local & remote autocomplete.
Callouts
KeyboardKit Pro unlocks callout actions for all locales.
Dictation
KeyboardKit Pro can trigger dictation from the keyboard.
Emoji Keyboard
KeyboardKit Pro unlocks an emoji keyboard & search capabilities.
External Keyboards
KeyboardKit Pro can detect if an external keyboard is being used.
Host
KeyboardKit Pro can identify and open specific host applications.
Layout
KeyboardKit Pro unlocks input sets & layouts for all locales.
Localization
KeyboardKit Pro unlocks support for 70 locales.
Previews
KeyboardKit Pro unlocks in-app keyboard & theme previews.
Proxy Utilities
KeyboardKit Pro makes the proxy able to read the full document.
Text Input
KeyboardKit Pro unlocks tools to let you type within the keyboard
Themes
KeyboardKit Pro unlocks a theme engine & many standard themes.