KeyboardKit 10.8 is out
KeyboardKit 10.8 is out! This version injects settings types into the keyboard state and view environment, adds new text replacement and word ignore settings, improves emoji performance and fixes some bugs.

🌱 Essentials
The Keyboard namespace has new LearnedWordsDictionary, and LocaleWordDictionary types that are used to implement the new autocomplete settings.
💡 Autocomplete
This version adds custom autocorrections, autocompletions and ignored words to AutocompleteSettings, and makes the StandardAutocompleteService use them.
The new AutocompleteTextReplacementsScreen and AutocompleteIgnoredWordsScreen screens can be used to manage these settings, and are linked to from the keyboard and autocomplete settings screens.
🎤 Dictation
This version updates the DictationKeyboardOverlay to allow more customizations and styling options. The DictationIndicatorBadge is now rendered as a circle and also has new styling options.
😀 Emojis
The Emoji and EmojiVersion types have been optimized for better view performance, and the standard autocomplete service now resolves its EmojiColonSearch instance lazily, and only once.
⚙️ Settings
This version converts the various settings types to observable object classes, adds them to KeyboardState, and injects them into the various context and into the SwiftUI view environment.
This means that you can now get settings as @EnvironmentObject values from the environment instead of having to go through a context. This makes view binding more correct, and decouples settings from the context.
🐛 Bug Fixes
The autocompleteWordDelimiters String extension has been updated to better handle URL segments. This fixes some bugs when editing web addresses in various browser apps.
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.