You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
KeyboardKit helps you build custom keyboard extensions with Swift and SwiftUI. It extends the native keyboard APIs and provides you with a lot more functionality than is otherwise available.
20
-
21
-
The result can look like this or completely different:
18
+
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.
22
19
23
20
<palign="center">
24
21
<img src ="Resources/Demo.gif" width="300" />
25
22
</p>
26
23
27
-
KeyboardKit supports using entirely custom views, but provides you with a large set of tools and views that make it easy to replicate the native iOS keyboards.
24
+
KeyboardKit lets you create keyboards that mimic the iOS stock keyboard in a single line of code. These keyboards can be customized to great extent to change their input keys, keyboard layout, design, behavior etc.
28
25
29
-
If you're new to iOS keyboard extensions, [this great guide][Guide] will help you get started. You can also have a look at the demo apps for inspiration.
26
+
You can also use entirely custom views with the rich features of KeyboardKit, to create completely custom keyboard extensions. Most of the KeyboardKit features can be used on all major Apple platforms as well.
Although KeyboardKit builds on all platform, some features are unavailable on some platforms.
34
+
Although KeyboardKit builds on all platform, some features are unavailable on some platforms.
38
35
39
36
40
37
@@ -56,173 +53,54 @@ You can add the library to the main app, the keyboard extension and any other ta
56
53
57
54
58
55
59
-
## Getting started
60
-
61
-
The online documentation has a [getting-started guide][Getting-Started] that will help you get started with the library.
62
-
63
-
64
-
65
56
## Documentation
66
57
67
-
The [online documentation][Documentation] has articles, code examples etc. that let you overview the various parts of the library.
58
+
The [online documentation][Documentation] has a [getting-started guide][Getting-Started], as well as articles, code examples etc. that let you overview the various parts of the library and understand how they all connect to each other.
68
59
69
60
The online documentation is currently iOS-specific. To generate documentation for other platforms, open the package in Xcode, select a simulator then run `Product/Build Documentation`.
70
61
71
-
Note that extensions to native types are not included in this documentation. Future versions of this library will aim at adding protocols for these extensions, to make them appear in the documentation.
62
+
Note that extensions to native types are not included in this documentation. Future versions of this library will refactor the extensions in a way that makes them appear in the documentation.
72
63
73
64
74
65
75
-
## 🇸🇪 Localization
66
+
## ✨ Features
76
67
77
-
KeyboardKit is localized in 50+ keyboard-specific locales:
68
+
KeyboardKit is localized in 50+ keyboard-specific locales ([read more][Localization]):
78
69
79
70
🇺🇸 🇦🇱 🇦🇪 🇧🇾 🇧🇬 🇦🇩 🇭🇷 🇨🇿 🇩🇰 🇳🇱 <br />
80
71
🇧🇪 🇬🇧 🇺🇸 🇪🇪 🇫🇴 🇵🇭 🇫🇮 🇫🇷 🇨🇭 🇬🇪 <br />
81
72
🇩🇪 🇦🇹 🇬🇷 🇭🇺 🇮🇸 🇮🇪 🇮🇹 🇹🇯 🇱🇻 🇱🇹 <br />
82
73
🇲🇰 🇲🇹 🇲🇳 🇳🇴 🇮🇷 🇵🇱 🇵🇹 🇧🇷 🇷🇴 🇷🇺 <br />
83
74
🇷🇸 🇸🇰 🇸🇮 🇪🇸 🇰🇪 🇸🇪 🇹🇷 🇺🇦 🇺🇸 🇧🇪 <br />
84
75
85
-
[Read more here][Localization]
86
-
87
-
88
-
89
-
## Features
90
-
91
-
KeyboardKit comes packed with features to help you build powerful keyboards.
92
-
93
-
94
-
### 💥 Actions
95
-
96
-
KeyboardKit comes with many keyboard-specific actions, like `character` inputs, `emojis`, `backspace`, `space`, `newline`, `image` etc. You can even create your own actions.
97
-
98
-
[Read more here][Actions]
99
-
100
-
101
-
### 🎨 Appearance
102
-
103
-
KeyboardKit comes with an appearance engine that lets you easily style your keyboards.
104
-
105
-
[Read more here][Appearance]
106
-
107
-
108
-
### 💡Autocomplete
109
-
110
-
KeyboardKit can present autocomplete suggestions as users type.
111
-
112
-
[Read more here][Autocomplete]
113
-
114
-
115
-
### 🗯 Callouts
116
-
117
-
KeyboardKit lets you show input callouts as users type, as well as action callouts with alternate actions for the currently pressed key.
118
-
119
-
[Read more here][Callouts]
120
-
121
-
122
-
### 😊 Emojis
123
-
124
-
KeyboardKit defines emojis and emoji categories that you can use in your own keyboards.
125
-
126
-
[Read more here][Emojis]
127
-
128
-
129
-
### 🧩 Extensions
130
-
131
-
KeyboardKit provides a bunch of extensions to native types.
132
-
133
-
[Read more here][Extensions]
134
-
135
-
136
-
### ⌨️ External Keyboards
137
-
138
-
KeyboardKit lets you detect whether or not an external keyboard is used.
139
-
140
-
[Read more here][External]
141
-
142
-
143
-
### 👋 Feedback
144
-
145
-
KeyboardKit keyboards can give audio and haptic feedback as users type.
146
-
147
-
Read more about [audio feedback][Audio-Feedback] and [haptic feedback][Haptic-Feedback].
148
-
149
-
150
-
### 👆 Gestures
151
-
152
-
KeyboardKit comes with keyboard-specific gestures that you can use in your own keyboards.
153
-
154
-
[Read more here][Gestures]
155
-
156
-
157
-
### 🔤 Input Sets
158
-
159
-
KeyboardKit comes with an input set engine that make it easy to create `alphabetic`, `numeric` and `symbolic` keyboards in different languages.
160
-
161
-
[Read more here][Input-Sets]
162
-
163
-
164
-
### ⌨️ Keyboard Layouts
165
-
166
-
KeyboardKit comes with a layout engine that makes it easy to create specific keyboard layouts for various devices, orientations and locales.
167
-
168
-
[Read more here][Keyboard-Layouts]
169
-
170
-
171
-
### 💱 Keyboard Types
172
-
173
-
KeyboardKit comes with many different keyboard types, like `alphabetic`, `numeric`, `symbolic`, `emoji` etc. You can even create your own types.
174
-
175
-
[Read more here][Keyboard-Types]
176
-
177
-
178
-
### 🌐 Locales
179
-
180
-
KeyboardKit defines keyboard-specific locales and provides localized content for the supported locales.
181
-
182
-
[Read more here][Localization]
183
-
184
-
185
-
### 👁 Previews
186
-
187
-
KeyboardKit defines a bunch of preview-specific types that simplify previewing keyboard views in SwiftUI.
188
-
189
-
[Read more here][Previews]
190
-
191
-
192
-
### ➡️ Proxy
193
-
194
-
KeyboardKit defines a bunch of extensions to `UITextDocumentProxy` and ways to route text to other sources.
195
-
196
-
[Read more here][Proxy]
197
-
198
-
199
-
### ⬅️ RTL
200
-
201
-
KeyboardKit supports RTL (right-to-left) locales, but your extension need to be configured to support it.
202
-
203
-
[Read more here][RTL]
204
-
205
-
206
-
### 🎨 Styles
207
-
208
-
KeyboardKit defines a bunch of styles that simplify customizing the look of various keyboard components.
209
-
210
-
[Read more here][Styles]
211
-
212
-
213
-
### 🖼 Views
214
-
215
-
KeyboardKit comes with a bunch of keyboard-specific views, like keyboards, toobars, buttons etc
216
-
217
-
[Read more here][Views]
76
+
KeyboardKit also comes packed with a bunch of features to help you build amazing and powerful keyboards:
77
+
78
+
* 💥 [Actions][Actions] - KeyboardKit comes with keyboard actions like characters, emojis, actions, custom ones etc.
79
+
* 🎨 [Appearance][Appearance] - KeyboardKit comes with an appearance engine that lets you easily style your keyboards.
80
+
* 💡 [Autocomplete][Autocomplete] - KeyboardKit can present autocomplete suggestions as the user types.
81
+
* 🗯 [Callouts][Callouts] - KeyboardKit can show input callouts, as well as long press callouts with secondary actions.
82
+
* 😊 [Emojis][Emojis] - KeyboardKit defines emojis and emoji categories that you can use in your own keyboards.
83
+
* 🧩 [Extensions][Extensions] - KeyboardKit provides a bunch of extensions to native types.
84
+
* ⌨️ [External Keyboards][External] - KeyboardKit lets you detect whether or not an external keyboard is used.
85
+
* 👋 Feedback - KeyboardKit keyboards can give users [audio][Audio-Feedback] and [haptic feedback][Haptic-Feedback] feedback as they type.
86
+
* 👆 [Gestures][Gestures] - KeyboardKit comes with keyboard-specific gestures that you can use in your own keyboards.
87
+
* 🔤 [Input Sets][Input-Sets] - KeyboardKit supports creating `alphabetic`, `numeric` and `symbolic` and custom input sets.
88
+
* ⌨️ [Keyboard Layouts][Keyboard-Layouts] - KeyboardKit supports creating keyboard layouts for various devices, locales etc.
89
+
* 💱 [Keyboard Types][Keyboard-Types] - KeyboardKit supports keyboard types, like `alphabetic`, `numeric`, `symbolic` etc.
90
+
* 🌐 [Locales][Localization]- KeyboardKit defines keyboard-specific locales with localized content and assets.
91
+
* 👁 [Previews][Previews] - KeyboardKit defines a bunch of tools that simplify previewing keyboard views in SwiftUI.
92
+
* ➡️ [Proxy][Proxy] - KeyboardKit defines a bunch of extensions to `UITextDocumentProxy` and ways to proxy text.
93
+
* ⬅️ [RTL][RTL] - KeyboardKit supports RTL (right-to-left) locales, such as Arabic, Persian, Kurdish etc.
94
+
* 🎨 [Styles][Styles] - KeyboardKit defines a bunch of styles that simplify customizing the look of various components.
95
+
* 🖼 [Views][Views] - KeyboardKit comes with a bunch of keyboard-specific views, like keyboards, toobars, buttons etc.
218
96
219
97
220
98
221
99
## KeyboardKit Pro
222
100
223
-
KeyboardKit Pro is a license-based extensions that unlocks pro features, such as additional locales, autocomplete, convenience views etc. It can save you a lot of time when developing more complex keyboards.
101
+
KeyboardKit Pro extends KeyboardKit with pro features, such as additional locales, autocomplete engines, convenience views etc. It lets you create fully localized system keyboards with a single line of code.
224
102
225
-
KeyboardKit Pro is also a way to support this project, which is otherwise completely free and developed by a single person (with great help from the community). If you appreciate this project, consider going Pro.
103
+
KeyboardKit Pro can save you a lot of time when developing more complex keyboards.
226
104
227
105
[Read more here][Pro]
228
106
@@ -243,32 +121,20 @@ The `Demo - Pro` app uses KeyboardKit Pro and supports 50+ locales, autocomplete
243
121
*`System LTR` uses a `SystemKeyboard` with all left-to-right locales.
244
122
*`System RTL` uses a `SystemKeyboard` with all right-to-left locales.
245
123
246
-
To run the demo apps, open and run these projects, then enable the keyboards you want to try under System Settings.
247
-
248
-
Note that you need to enable full access to try some features, like audio and haptic feedback.
249
-
250
-
251
-
252
-
## Contact
253
-
254
-
Feel free to reach out if you have questions or if you want to contribute in any way:
Just open and run any of these projects, 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.
259
125
260
126
261
127
262
128
## Support
263
129
264
-
You can sponsor this project on [GitHub Sponsors][Sponsors]or get in touch for paid support.
265
-
130
+
KeyboardKit is open-source and completely free, but you can sponsor this project on [GitHub Sponsors][Sponsors], upgrade to [KeyboardKit Pro][Pro]or get in touch for paid support.
131
+
266
132
KeyboardKit is proudly sponsored by the following companies:
0 commit comments