All Projects → KeyboardKit → Keyboardkit

KeyboardKit / Keyboardkit

Licence: mit
KeyboardKit is a Swift library that helps you create custom keyboard extensions for iOS and ipadOS.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Keyboardkit

Emojikeyboard
自定义表情键盘(支持系统表情, 图片表情),仅供参考学习~
Stars: ✭ 33 (-92.47%)
Mutual labels:  keyboard, emoji
React Native Emoticons
react native emoticons(表情), including emoji😁
Stars: ✭ 119 (-72.83%)
Mutual labels:  keyboard, emoji
Sodieremojikeyboardplus
支持自定义emoji表情,icon font , FontAwesome,斜体,超链接,粗体,下划线,字体,颜色,镂空字体等富文本
Stars: ✭ 14 (-96.8%)
Mutual labels:  keyboard, emoji
Agemojikeyboard
Emoji Keyboard for iOS
Stars: ✭ 686 (+56.62%)
Mutual labels:  keyboard, emoji
EmojiKeyBoard
自定义表情键盘(支持系统表情, 图片表情),仅供参考学习~
Stars: ✭ 36 (-91.78%)
Mutual labels:  emoji, keyboard
EmoticonsBoard
Function keyboard and emotions. Android表情键盘,可动态更新表情。
Stars: ✭ 31 (-92.92%)
Mutual labels:  emoji, keyboard
Android Keyboard
Android Keyboard with 180+ dictionaries. Support swipe input (sliding input), Emoji keyboard, AI predictions, dictionaries downloading, and keyboard themes.
Stars: ✭ 108 (-75.34%)
Mutual labels:  keyboard, emoji
Ppstickerkeyboard
iOS 表情键盘
Stars: ✭ 377 (-13.93%)
Mutual labels:  keyboard, emoji
react-native-emoji-input
A fully-featured emoji keyboard ⌨️ for React Native ⚛️
Stars: ✭ 67 (-84.7%)
Mutual labels:  emoji, keyboard
KeyboardKitPro
KeyboardKit Pro extends KeyboardKit with pro features.
Stars: ✭ 42 (-90.41%)
Mutual labels:  emoji, keyboard
EasyEmoji
Help developers to quickly realize the expression of the keyboard
Stars: ✭ 24 (-94.52%)
Mutual labels:  emoji, keyboard
Android Slidingemojikeyboard
Our Sliding Emoji Keyboard app.
Stars: ✭ 286 (-34.7%)
Mutual labels:  keyboard, emoji
Rbtray
A fork of RBTray from http://sourceforge.net/p/rbtray/code/.
Stars: ✭ 365 (-16.67%)
Mutual labels:  keyboard
React Key Handler
React component to handle keyboard events 🔑
Stars: ✭ 386 (-11.87%)
Mutual labels:  keyboard
Subconverter
Utility to convert between various subscription format
Stars: ✭ 4,912 (+1021.46%)
Mutual labels:  emoji
Tswechat
A WeChat alternative. Written in Swift 5.
Stars: ✭ 3,674 (+738.81%)
Mutual labels:  keyboard
Pretzel
Pretzel is Mac desktop app that shows and find keyboard shortcuts based on your current app.
Stars: ✭ 405 (-7.53%)
Mutual labels:  keyboard
Gemoji
Emoji images and names.
Stars: ✭ 3,890 (+788.13%)
Mutual labels:  emoji
Smile
😄 Emoji in Swift
Stars: ✭ 359 (-18.04%)
Mutual labels:  emoji
Keyberon
A rust crate to create a pure rust keyboard firmware.
Stars: ✭ 355 (-18.95%)
Mutual labels:  keyboard

KeyboardKit

Version Platform Swift 5.3 MIT License Twitter: @danielsaidi

About KeyboardKit

KeyboardKit is a Swift library that helps you create custom keyboard extensions for iOS and ipadOS.

KeyboardKit provides you with actions, input sets and layouts, appearances and autocomplete support, haptic and audio feedback etc. It lets you create keyboards with characters, numbers, symbols, emojis, images and more or just use the additional tools and extensions that it provides.

The end result can look something like this...or entirely different:

If you're new to iOS keyboard extensions, this great guide will help you get started. You can also have a look at the demo app for inspiration.

Installation

Swift Package Manager

https://github.com/KeyboardKit/KeyboardKit.git

CocoaPods

target 'MyApp' do
  pod 'KeyboardKit'
end

target 'MyKeyboard' do
  pod 'KeyboardKit'
end

post_install do |installer|
   installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
          config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'No'
      end
   end
end

Getting Started

To build a keyboard extension with KeyboardKit, add KeyboardKit to your project as shown above.

If you use Swift Package Manager, make sure to add KeyboardKit to your keyboard extension. You can add it to your hosting app as well, but the keyboard extension must have it.

You can then import KeyboardKit and let your KeyboardController inherit KeyboardInputViewController instead of UIInputViewController. It's a KeyboardKit-specific controller that provides you with a lot of additional functionality that extends the native keyboard framework. Your controller will get a bunch of extra properties, like keyboardContext, keyboardActionHandler, keyboardAppearance etc. and the extension will get access to autocomplete logic, extensions and much, much more.

KeyboardInputViewController has a setup(with:) function that can be used to setup your extension with any SwiftUI view. This will make the view the main view of the extension, inject necessary environment objects and finally resize the keyboard extension to fit the view.

To learn more about and see KeyboardKit in practice, continue reading about the various parts of the library below and have a look at the demo app to see how it sets up a custom keyboardView and adjusts it depending on the keyboard type, locale etc.

Go Pro!

KeyboardKit Pro is a license-based extensions that unlocks pro features, such as additional locales. Going pro is also a way to support this project. Read more here.

You can try KeyboardKit Pro in the demo app, by activating the commented out setupPro line in the demo app's KeyboardViewController.

SwiftUI vs. UIKit

KeyboardKit supports both SwiftUI and UIKit, but SwiftUI is the main focus going forward. You can read more about UIKit support here. The rest of this readme assumes that you're using SwiftUI, although most information is valid for both UIKit and SwiftUI.

Features

💥 Keyboard Actions

KeyboardKit comes with many keyboard-specific actions, like character inputs, emojis, backspace, space, newline, image etc. You can even create your own actions.

Read more here

😊 Keyboard Types

KeyboardKit comes with many different keyboard types, like alphabetic, numeric, symbolic, emoji etc. You can even create your own types.

Read more here

🔤 Input Sets

KeyboardKit comes with an input set engine that make it easy to create alphabetic, numeric and symbolic keyboards in different languages.

Read more here

⌨️ Keyboard Layouts

KeyboardKit comes with a layout engine that makes it easy to create specific keyboard layouts for various devices, orientations and locales.

Read more here

🇸🇪 Localization

KeyboardKit comes with built-in support for English keyboards and can be easily extended to support more locales.

KeyboardKit also has a KKL10n enum that provides localized texts.

Read more here

🎨 Appearances

KeyboardKit lets you create everything from completely custom keyboards to keyboards that imitate the native keyboards and can be styled with custom appearances.

Read more here

🗯 Callouts

KeyboardKit lets you show callout bubbles as the users type, as well as secondary action callouts that can provide users with optional actions when long pressing a keyboard button.

Read more here

💡Autocomplete

KeyboardKit can present autocomplete suggestions to users as they type. The core library doesn't come with an implemented engine, but you can inject your own.

Read more here

✋ Haptic Feedback

KeyboardKit keyboards can give users haptic feedback as they type.

Read more here.

🔈 Audio Feedback

KeyboardKit keyboards can give users audio feedback as they type.

Read more here.

📦 Extensions

KeyboardKit comes with many keyboard-specific extensions, like providing the text document proxy with powerful, otherwise missing functionalty etc. Check out the demo apps and source code for examples and more information.

Demo Application

This repository contains a demo app that demonstrates different keyboards, like alphabetical (lowercased, uppercased and capslocked), numerical, symbols, emojis and images.

The demo app is not intended to be production ready or provide pixel perfection, but rather to give you inspiration to how you can build your own keyboards.

To run the demo app, open and run the Demo/Demo.xcodeproj project, then enable the keyboards under system settings. Enable full access to support all features, like audio and haptic feedback.

Contact

Feel free to reach out if you have questions or if you want to contribute in any way:

Sponsors and Clients

This project is proudly sponsored by the following individuals and companies:

Oribi Logo Anomaly Software Logo Milo Creative Logo

You can support my work by sponsoring the project on GitHub Sponsors or hiring me for consultation. I'd be happy to help you out in any way that I can.

License

KeyboardKit is available under the MIT license. See LICENSE file for more info.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].