KeyboardKit helps you create custom keyboards for iOS and iPadOS, using Swift and SwiftUI. It extends Apple's native keyboard APIs and provides you with more functionality.
KeyboardKit Pro extends KeyboardKit with pro features, such as localized input sets, layouts and callout actions, autocomplete, dictation, proxy extensions, emoji skintone and version info, etc.
KeyboardKit supports iOS 14
, macOS 11
, tvOS 14
and watchOS 7
.
KeyboardKit Pro requires a commercial license. Licenses can be purchased from the website or from Gumroad.
KeyboardKit Pro can be installed with the Swift Package Manager:
https://github.com/KeyboardKit/KeyboardKitPro.git
KeyboardKit Pro only has to be added to the main app target.
KeyboardKit is localized in 60+ keyboard-specific locales:
๐ฆ๐ฑ ๐ฆ๐ช ๐ฆ๐ฒ ๐ง๐พ ๐ง๐ฌ ๐ฆ๐ฉ ๐ณ๏ธ ๐ญ๐ท ๐จ๐ฟ ๐ฉ๐ฐ
๐ณ๐ฑ ๐ง๐ช ๐บ๐ธ ๐ฌ๐ง ๐บ๐ธ ๐ช๐ช ๐ซ๐ด ๐ต๐ญ ๐ซ๐ฎ ๐ซ๐ท
๐ง๐ช ๐จ๐ญ ๐ฌ๐ช ๐ฉ๐ช ๐ฆ๐น ๐จ๐ญ ๐ฌ๐ท ๐บ๐ธ ๐ฎ๐ฑ ๐ญ๐บ
๐ฎ๐ธ ๐ฎ๐ฉ ๐ฎ๐ช ๐ฎ๐น ๐ฐ๐ฟ ๐น๐ฏ ๐น๐ฏ ๐น๐ฏ ๐ฑ๐ป ๐ฑ๐น
๐ฒ๐ฐ ๐ฒ๐พ ๐ฒ๐น ๐ฒ๐ณ ๐ณ๐ด ๐ฎ๐ท ๐ต๐ฑ ๐ต๐น ๐ง๐ท ๐ท๐ด
๐ท๐บ ๐ท๐ธ ๐ท๐ธ ๐ธ๐ฐ ๐ธ๐ฎ ๐ช๐ธ ๐ฐ๐ช ๐ธ๐ช ๐น๐ท ๐บ๐ฆ
๐บ๐ฟ
KeyboardKit Pro unlocks localized input sets, layouts and callouts for all locales.
KeyboardKit Pro extends KeyboardKit with a bunch of features:
UITextDocumentProxy
extensions for reading all text from the proxy.The online documentation has a getting-started guide that helps you get started.
After installing KeyboardKit Pro, just import KeyboardKitPro
and make your KeyboardViewController
inherit KeyboardInputViewController
instead of UIInputViewController
:
import KeyboardKitPro
class KeyboardController: KeyboardInputViewController {}
This gives your controller access to additional functionality, such as new lifecycle functions like viewWillSetupKeyboard()
, observable state like keyboardContext
, services like keyboardActionHandler
and much more.
The default KeyboardInputViewController
behavior is to setup an English SystemKeyboard
. It will then call viewWillSetupKeyboard()
when the keyboard view should be created or updated.
If you want to use the default system keyboad with the locales and features that your license unlocks, you can just register your license key:
func viewDidLoad() {
super.viewDidLoad()
let license = try? setupPro(withLicenseKey: "your-key")
}
To set up KeyboardKit Pro with a custom view, you can override viewWillSetupKeyboard()
and call setupPro(withLicenseKey:licenseConfiguration:view:)
to customize the SystemKeyboard
or use a custom view:
class KeyboardViewController: KeyboardInputViewControllerย {
override func viewWillSetupKeyboard() {
super.viewWillSetupKeyboard()
try? setupPro(
withLicenseKey: "LICENSE-KEY",
licenseConfiguration: { license in
// Use the license as needed here
},
view: { controller in
VStack(spacing: 0) {
MyCustomToolbar()
SystemKeyboard(
controller: controller,
autocompleteToolbar: .none
)
}
}
)
}
}
The view builder provides an unowned controller reference to avoid reference cycles and memory leaks.
For more information, please see the online documentation and getting-started guide.
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.
The main project repository has a demo app that lets you try out KeyboardKit and KeyboardKit Pro.
English
keyboard uses KeyboardKit and a SystemKeyboard
with a standard, English locale.Unicode
keyboard uses KeyboardKit and a SystemKeyboard
with unicode-based input keys.Custom
keyboard uses KeyboardKit and a SystemKeyboard
with custom keys, layouts and styles.Pro
keyboard uses KeyboardKit Pro and a SystemKeyboard
with all LRT locales, autocomplete etc.Just open and run the demo app in the Demo
folder, 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 open-source and completely free, but you can sponsor this project on GitHub Sponsors, upgrade to [KeyboardKit Pro][Pro] or get in touch for freelance work, paid support etc.
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: 70 |
Last commit: 17 hours ago |
This version adjusts things in KeyboardKit Pro.
Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics