KeyboardKit 10.9
KeyboardKit 10.9 is out! This is the last minor release before the upcoming 11.0 release, which will be released alongside iOS 27 and developer tools like Xcode 27.

Features
This release updates the essential tools, adds new host application identification tools, improves autocomplete, deprecates old dictation tools, and prepares the library for the upcoming 11.0 version.
๐ Host Application
Thanks to @exphat, KeyboardKit 10.9 can once again identify the host application, using a brand new approach that will replace the one that stopped working in iOS 26.4.
The input controller has a new asynchronous resolveHostApplicationBundleId() function that uses an internal tool to resolve the host application bundle ID, plus two resolveHostApplication(...) functions.
KeyboardKit will use this to update the keyboard context with a bundle ID when it starts dictation. You can also use it any time you need it, for instance if you want to customize the keyboard to the host app.
Big thanks to @exphat for investigating and solving this critical feature. Make sure to follow exphat to see what heโs working on.
๐ฑ Essentials
The Keyboard.ButtonGestures and its underlying gesture view have been rebuilt for better performance. This also fixes a bug where a repeat action could get stuck if the view was removed while pressed.
Thereโs a new Keyboard.ToolbarItem that can trigger an action, and a Keyboard.ToolbarToggle that can toggle a binding. Both can be added to a keyboard toolbar with consistent styling.
The KeyboardInputViewController has a new setPrimaryLanguage(from:) function, and now sets the primary language in on launch, to fix key binding issues with external keyboards.
๐ก Autocomplete
The AutocompleteToolbarScrollMode enum has a more convenient name for the .scrollable case, and also supports setting a max width for its items.
๐ค Dictation
KeyboardKit 10.9 soft-deprecates the in-app dictation method to nudge you towards migrating to in-keyboard dictation, which will be the only dictation method in KeyboardKit 11.
Conclusion
KeyboardKit 10.9 is the last minor 10.x release before moving to KeyboardKit 11. We want it to be stable for the ones who stay on 10.x, so please give it a proper try and let us know what you think.
We may still release new patch releases to improve things, but no new features or major changes will be made in version 10.x unless absolutely necessary.
For more details, see the release notes for a full list of changes. Update now to get access to all improvements.
Discussions & More
If you found this interesting, please share your thoughts on Bluesky and Mastodon. Make sure to follow to be notified when new content is published.