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 iPad Pro layouts, and localized input sets and layout providers for all supported locales.
Core Features
An InputSet
specifies the input keys of a keyboard. KeyboardKit has predefined sets like .qwerty
, .standardNumeric
and .standardSymbolic
. You can easily define your own input sets.
A KeyboardLayout
specifies the full set of keys of a keyboard. It can vary greatly for different device types, screen orientations, locales, etc. You can combine input sets and layouts for great flexibility.
For instance, iOS keyboards often have 3 input rows, where the input keys are surrounded by side buttons, and a bottom row that is often the same across locales.
This is however not always true. Layouts differ between iPhone, iPad & iPad Pro, some locales (like Armenian) have 5 rows, some (like Greek) remove side-buttons, etc.
The layout engine must thus be flexible, to cater to the needs of these considerations. KeyboardKit has a bunch of base classes that define a good starting point.
π Pro Features
KeyboardKit Pro unlocks localized InputSet
s and KeyboardLayoutProvider
s for all keyboard locales, and will automatically make the SystemKeyboard
use them, without any additional code.
KeyboardKit Pro also unlocks an KeyboardLayout.iPadProProvider
that can be used to generate iPad Pro-specific layouts. This provider is used by all supported locales by default.
KeyboardKit Pro also unlocks ways to easily add an input row at the top of the SystemKeyboard
. This is great for certain apps, where an additional utility row makes sense.
Documentation
The information on this page is shortened to be easier to overview. For more information about this feature, code samples, etc. please see the online documentation.
Read more
Essentials
KeyboardKit provides essential features, utilities & views.
Actions
KeyboardKit makes it easy to trigger keyboard-related actions
AI Support
KeyboardKit has features that are needed for AI.
App
KeyboardKit has app-specific screens & views.
Autocomplete
KeyboardKit can perform autocomplete.
Callouts
KeyboardKit can show input & secondary action callouts.
Colors
KeyboardKit defines keyboard-specific colors.
Device Utilities
KeyboardKit has device-specific utilities.
Dictation
KeyboardKit can perform dictation from the keyboard.
Emojis
KeyboardKit defines emojis, categories, skin tones, etc.
External Keyboards
KeyboardKit Pro can detect if an external keyboard is being used.
Feedback
KeyboardKit can trigger audio & haptic feedback.
Gestures
KeyboardKit has a customizable keyboard gesture engine.
Host
KeyboardKit can identify the host application.
Images
KeyboardKit defines keyboard-specific images.
Layout
KeyboardKit has customizable input sets & keyboard layouts.
Localization
KeyboardKit supports 60+ locales and languages.
Navigation
KeyboardKit lets you open urls and apps from the keyboard.
Previews
KeyboardKit has extension keyboard preview support.
Proxy Utilities
KeyboardKit makes your text 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.
Text Input
KeyboardKit can input text inside the keyboard extension itself.
Themes
KeyboardKit can use themes to style keyboards in flexible ways.