KeyboardKit is a Swift library that helps you build custom keyboards with Swift and SwiftUI. It extends the native keyboard APIs and provides you with a lot more functionality than is otherwise available.
The end result can look something like this...or entirely different:
KeyboardKit Pro extends KeyboardKit with pro features, such as localized input sets, keyboard layouts and callout actions, which lets you create fully localized system keyboards for all keyboard locales with a single line of code.
KeyboardKit Pro also unlocks a local and a remote autocomplete providers, emoji skintone support, the possibility to read all the text from the text document proxy, additional views etc.
KeyboardKit Pro requires a commercial license. Licenses can be purchased from the website or from Gumroad.
KeyboardKit supports iOS 14
, macOS 11
, tvOS 14
and watchOS 7
.
However, the distribution is iOS
only for non-enterprise licenses!
Please reach out if you need to use KeyboardKit Pro on multiple platforms.
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.
The online documentation has a getting-started guide that will help you get started with the library.
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.
KeyboardKit Pro is localized in 60 keyboard-specific locales (read more):
🇦🇱 🇦🇪 🇦🇲 🇧🇾 🇧🇬 🇦🇩 🏳️ 🇭🇷 🇨🇿 🇩🇰
🇳🇱 🇧🇪 🇺🇸 🇬🇧 🇺🇸 🇪🇪 🇫🇴 🇵🇭 🇫🇮 🇫🇷
🇧🇪 🇨🇭 🇬🇪 🇩🇪 🇦🇹 🇨🇭 🇬🇷 🇺🇸 🇮🇱 🇭🇺
🇮🇸 🇮🇩 🇮🇪 🇮🇹 🇹🇯 🇹🇯 🇹🇯 🇱🇻 🇱🇹 🇲🇰
🇲🇾 🇲🇹 🇲🇳 🇳🇴 🇮🇷 🇵🇱 🇵🇹 🇧🇷 🇷🇴 🇷🇺
🇷🇸 🇷🇸 🇸🇰 🇸🇮 🇪🇸 🇰🇪 🇸🇪 🇹🇷 🇺🇦 🇺🇿
KeyboardKit unlocks localized input sets, keyboard layouts and callout actions for all locales that your license contains.
Besides the core features, KeyboardKit Pro extends KeyboardKit with a bunch of pro features:
UITextDocumentProxy
extensions for reading all text from the proxy.You find KeyboardKit Pro-specific information at the end of these articles.
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.
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.
Feel free to reach out if you have questions or if you want to contribute in any way:
KeyboardKit Pro is closed source. See the LICENSE file for more info.
link |
Stars: 49 |
Last commit: 10 hours ago |
This version focuses on making it easier to style keyboards.
This version adds a theme engine to KeyboardKit Pro. The new KeyboardThemeAppearance
can be used with the new KeyboardTheme
to style keyboards with themes, which is a lot easier than defining custom appearances.
This version comes with three themes - .cottonCandy
, .neonNights
and .tron
. You can use them in your own keyboads, or tweak them to create your own visual styles. More themes are coming in future versions.
Due to a bug found in the new autocomplete provider, the old StandardAutocompleteProvider
will be replaced in the next minor version.
AutocompleteContext
has a new isEnabled
property that can be used to disable autocomplete.KeyboardAppearance
has a new autocompleteToolbarStyle
property.KeyboardAppearance
has a new keyboardBackground
property.KeyboardBackgroundStyle
is a new style that can be used to the background of a keyboard.KeyboardButtonStyle
properties are now optional to allow for overrides.KeyboardButtonStyle
has a new pressedOverlayColor
property that can be used to highlight buttons.KeyboardButtonStyle
has a new extended(with:)
function to let you extend a style with another style.View+SystemKeyboardButton
has a new isPressed
parameter to let you define pressed state.KeyboardInputViewController
will use the new autocomplete context property to disable autocomplete if needed.KeyboardTheme
is a new type that can be used to define keyboard themes.KeyboardThemeAppearance
is a new appearance that can be used with KeyboardTheme
.LocalAutocompleteProvider
that was introduced in 7.1 has been made public.LocalAutocompleteProvider
now ignores empty strings when wrapping in quotes.LocalAutocompleteProvider
now replaces hyphens with space when suggesting splitting up the word.KeyboardTheme.cottonCandy
is a pink and blue trip to fluffy delight.KeyboardTheme.neonNights
is a metropolitian color explosion.KeyboardTheme.tron
is a black and blue, digital adrenaline rush.SystemKeyboard
uses the new appearance background and autocomplete toolbar styles.CalloutStyle
has been renamed to KeyboardCalloutStyle
.ActionCalloutStyle
has been renamed to KeyboardActionCalloutStyle
.InputCalloutStyle
has been renamed to KeyboardInputCalloutStyle
.## 7.1.3This version adds an isKeyboardFloating
property to the keyboard context. It's currently not used to change the visual representation of floating keyboards, but please verify that it works as expected.
KeyboardContext
has a new isKeyboardFloating
property that can be used to determine if the keyboard is floating.Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics