KeyboardKit helps you build custom keyboard extensions for iOS and iPadOS, using Swift and SwiftUI. It extends the native keyboard APIs and provides you with a lot more functionality than is otherwise available.
KeyboardKit lets you create keyboards that mimic the native iOS keyboards in a few lines of code. These keyboards can be customized to great extent to change input keys, keyboard layout, design, behavior etc.
KeyboardKit Pro extends KeyboardKit with pro features, such as fully localized keyboards and services, autocomplete, dictation, proxy extensions, emoji skintone and version info, additional views etc. It supercharges your keyboard and lets you create localized keyboards in all locales with a few lines of code.
Licenses
KeyboardKit Pro requires a commercial license. Licenses can be purchased from the website or from Gumroad.
Installation
KeyboardKit Pro can be installed with the Swift Package Manager:
https://github.com/KeyboardKit/KeyboardKitPro.git
Since KeyboardKit Pro installs as a binary, it only has to be added to the main app target.
KeyboardKit Pro can unlock localized input sets, keyboard layouts and callout actions for all locales.
Features
Besides the core features, KeyboardKit Pro extends KeyboardKit with a bunch of pro features:
🎨 Appearance - KeyboardKit Pro unlocks a theme engine with many pre-defined themes.
💡 Autocomplete - KeyboardKit Pro unlocks a local and a remote autocomplete provider.
🗯 Callouts - KeyboardKit Pro unlocks locale-specific callout actions for all locales above.
🎤 Dictation - (BETA) KeyboardKit can perform dictation from the keyboard extension.
😊 Emojis - KeyboardKit Pro unlocks emoji skin tone variants, secondary actions and verison information.
🔤 Input - KeyboardKit Pro unlocks locale-specific input sets for all locales above.
💱 Layout - KeyboardKit Pro unlocks locale-specific keyboard layouts for all locales above.
➡️ Proxy - KeyboardKit Pro unlocks UITextDocumentProxy extensions for reading all text from the proxy.
🖼 Views - KeyboardKit Pro unlocks additonal views that simplify building great keyboards.
You can find KeyboardKit Pro-specific information at the end of each of these articles.
Getting started
The online documentation has a getting-started guide that will help you get started with the library.
To make your custom keyboard extension use KeyboardKit, just install and import KeyboardKit, then make it inherit KeyboardInputViewController instead of UIInputController:
import KeyboardKit
class KeyboardController: KeyboardInputViewController {}
This will by default set up a fully working U.S. English keyboard. You can then register your license key when setting up KeyboardKit Pro:
The online documentation has articles, code examples etc. that let you overview the various parts of the library and understand how they all connect to each other.
The online documentation is currently iOS-specific, which means that some parts will not be available if you run KeyboardKit Pro on other platforms.
Demo Application
The main project repository has a Demo folder with a demo apps that lets you try out different KeyboardKit features.
The demo app has 5 keyboard extensions:
English has a SystemKeyboard with the standard, English locale.
Unicode has a SystemKeyboard with unicode-based input keys.
Custom has a SystemKeyboard with custom keys, layout and appearance.
Pro uses KeyboardKit Pro and has a SystemKeyboard with all LRT locales.
ProRtl uses KeyboardKit Pro and has a SystemKeyboard with all RTL locales.
Just open and run the demo app, then enable the keyboards you want to try under System Settings. Note that you need to enable full access to try some features, like audio and haptic feedback.
Support
KeyboardKit is trusted and proudly sponsored by the following companies:
KeyboardKit is open-source and completely free, but you can sponsor this project on GitHub Sponsors, upgrade to KeyboardKit Pro or get in touch for paid support.
Contact
Feel free to reach out if you have questions or if you want to contribute in any way:
About KeyboardKit Pro
KeyboardKit helps you build custom keyboard extensions for iOS and iPadOS, using Swift and SwiftUI. It extends the native keyboard APIs and provides you with a lot more functionality than is otherwise available.
KeyboardKit lets you create keyboards that mimic the native iOS keyboards in a few lines of code. These keyboards can be customized to great extent to change input keys, keyboard layout, design, behavior etc.
KeyboardKit Pro extends KeyboardKit with pro features, such as fully localized keyboards and services, autocomplete, dictation, proxy extensions, emoji skintone and version info, additional views etc. It supercharges your keyboard and lets you create localized keyboards in all locales with a few lines of code.
Licenses
KeyboardKit Pro requires a commercial license. Licenses can be purchased from the website or from Gumroad.
Installation
KeyboardKit Pro can be installed with the Swift Package Manager:
Since KeyboardKit Pro installs as a binary, it only has to be added to the main app target.
Supported Platforms
KeyboardKit supports
iOS 14
,macOS 11
,tvOS 14
andwatchOS 7
.The public distribution is
iOS
only for non-enterprise licenses! Please reach out if you need to use KeyboardKit Pro on multiple platforms.Supported Locales
KeyboardKit is localized in 61 keyboard-specific locales (read more):
🇦🇱 🇦🇪 🇦🇲 🇧🇾 🇧🇬 🇦🇩 🏳️ 🇭🇷 🇨🇿 🇩🇰
🇳🇱 🇧🇪 🇺🇸 🇬🇧 🇺🇸 🇪🇪 🇫🇴 🇵🇭 🇫🇮 🇫🇷
🇧🇪 🇨🇭 🇬🇪 🇩🇪 🇦🇹 🇨🇭 🇬🇷 🇺🇸 🇮🇱 🇭🇺
🇮🇸 🇮🇩 🇮🇪 🇮🇹 🇰🇿 🇹🇯 🇹🇯 🇹🇯 🇱🇻 🇱🇹
🇲🇰 🇲🇾 🇲🇹 🇲🇳 🇳🇴 🇮🇷 🇵🇱 🇵🇹 🇧🇷 🇷🇴
🇷🇺 🇷🇸 🇷🇸 🇸🇰 🇸🇮 🇪🇸 🇰🇪 🇸🇪 🇹🇷 🇺🇦
🇺🇿
KeyboardKit Pro can unlock localized input sets, keyboard layouts and callout actions for all locales.
Features
Besides the core features, KeyboardKit Pro extends KeyboardKit with a bunch of pro features:
UITextDocumentProxy
extensions for reading all text from the proxy.You can find KeyboardKit Pro-specific information at the end of each of these articles.
Getting started
The online documentation has a getting-started guide that will help you get started with the library.
To make your custom keyboard extension use KeyboardKit, just install and import KeyboardKit, then make it inherit
KeyboardInputViewController
instead ofUIInputController
:This will by default set up a fully working U.S. English keyboard. You can then register your license key when setting up KeyboardKit Pro:
For more information, please see the online documentation and getting-started guide.
Documentation
The online documentation has articles, code examples etc. that let you overview the various parts of the library and understand how they all connect to each other.
The online documentation is currently iOS-specific, which means that some parts will not be available if you run KeyboardKit Pro on other platforms.
Demo Application
The main project repository has a
Demo
folder with a demo apps that lets you try out different KeyboardKit features.The demo app has 5 keyboard extensions:
English
has aSystemKeyboard
with the standard, English locale.Unicode
has aSystemKeyboard
with unicode-based input keys.Custom
has aSystemKeyboard
with custom keys, layout and appearance.Pro
uses KeyboardKit Pro and has aSystemKeyboard
with all LRT locales.ProRtl
uses KeyboardKit Pro and has aSystemKeyboard
with all RTL locales.Just open and run the demo app, then enable the keyboards you want to try under System Settings. Note that you need to enable full access to try some features, like audio and haptic feedback.
Support
KeyboardKit is trusted and proudly sponsored by the following companies:
KeyboardKit is open-source and completely free, but you can sponsor this project on GitHub Sponsors, upgrade to KeyboardKit Pro or get in touch for paid support.
Contact
Feel free to reach out if you have questions or if you want to contribute in any way:
License
KeyboardKit Pro is closed source. See the LICENSE file for more info.