Settings

KeyboardKit has tools for in-app settings & System Settings.

⚙️

Overview

Great keyboard apps use the main app to show the user the state of the keyboard, if it’s enabled in System Settings, if Full Access is enabled, etc.

KeyboardKit adds many utilities to make this easier, such as URL extensions and navigation links.

Core Features

KeyboardKit has a .keyboardSettings URL that can be used to open your app’s keyboard settings in System Settings. There’s also a KeyboardSettings.Link that renders a customizable navigation link.

Data Syncing

Many keyboards open the main app to let users manage app settings, such as the locale, feedback settings, etc. The larger UI makes for a great alternative for app and keyboard settings.

To share data between the app and the keyboard, you must use an App Group to persist data in a way that allows it to be accessed by both the app and the keyboard.

Once you have defined an App Group, you can use UserDefaults(suiteName: "group-id") to create a defaults instance that automatically syncs data between all targets.

The main app will always write data to an App Group in a way that makes it instantly available to the keyboard. A keyboard must however have Full Access enabled for data to be immediately synced.

Limitations

A common request is to be able to access values from System Settings, for instance a user’s audio or feedback preferences. This is not possible, at least not with the public APIs.

Documentation

The information on this page is shortened to be easier to overview. For more information about this feature, code samples, etc. please see the online documentation.


Read more

⌨️

Essentials

KeyboardKit provides essential features, utilities & views.

💥

Actions

KeyboardKit makes it easy to trigger keyboard-related actions

🤖

AI Support

KeyboardKit has features that are needed for AI.

📱

App

KeyboardKit has app-specific screens & views.

💡

Autocomplete

KeyboardKit can perform autocomplete.

🗯

Callouts

KeyboardKit can show input & secondary action callouts.

🌈

Colors

KeyboardKit defines keyboard-specific colors.

🖥️

Device Utilities

KeyboardKit has device-specific utilities.

🎤

Dictation

KeyboardKit can perform dictation from the keyboard.

😀

Emojis

KeyboardKit defines emojis, categories, skin tones, etc.

⌨️

External Keyboards

KeyboardKit Pro can detect if an external keyboard is being used.

🔉

Feedback

KeyboardKit can trigger audio & haptic feedback.

👆

Gestures

KeyboardKit has a customizable keyboard gesture engine.

🏠

Host

KeyboardKit can identify the host application.

🖼️

Images

KeyboardKit defines keyboard-specific images.

🔣

Layout

KeyboardKit has customizable input sets & keyboard layouts.

🌐

Localization

KeyboardKit supports 60+ locales and languages.

🗺️

Navigation

KeyboardKit lets you open urls and apps from the keyboard.

👁

Previews

KeyboardKit has extension keyboard preview support.

➡️

Proxy Utilities

KeyboardKit makes your text document proxy do a LOT more.

⚙️

Settings

KeyboardKit has tools for in-app settings & System Settings.

🩺

Status

KeyboardKit detects if a keyboard is enabled, has full access, etc.

🎨

Styling

KeyboardKit lets you style your keyboards to great extent.

📝

Text Input

KeyboardKit can input text inside the keyboard extension itself.

🍭

Themes

KeyboardKit can use themes to style keyboards in flexible ways.