Giter VIP home page Giter VIP logo

keyboardkit's Introduction

KeyboardKit Logo

Version Swift 5.6 MIT License Twitter: @getkeyboardkit

About KeyboardKit

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.

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

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.

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.

Supported Platforms

KeyboardKit supports iOS 13, macOS 11, tvOS 13 and watchOS 6.

Although KeyboardKit builds on all platform, some features are unavailable on some platforms.

Installation

KeyboardKit can be installed with the Swift Package Manager:

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

or with CocoaPods:

pod KeyboardKit

You can add the library to the main app, the keyboard extension and any other targets that need it.

Getting started

The online documentation has a getting-started guide that will help you get started with the library.

Documentation

The online documentation has articles, code examples etc. that let you overview the various parts of the library and understand how they all connect to each other.

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.

Localization

KeyboardKit is localized in 60 keyboard-specific locales (read more):

๐Ÿ‡ฆ๐Ÿ‡ฑ ๐Ÿ‡ฆ๐Ÿ‡ช ๐Ÿ‡ฆ๐Ÿ‡ฒ ๐Ÿ‡ง๐Ÿ‡พ ๐Ÿ‡ง๐Ÿ‡ฌ ๐Ÿ‡ฆ๐Ÿ‡ฉ ๐Ÿณ๏ธ ๐Ÿ‡ญ๐Ÿ‡ท ๐Ÿ‡จ๐Ÿ‡ฟ ๐Ÿ‡ฉ๐Ÿ‡ฐ

๐Ÿ‡ณ๐Ÿ‡ฑ ๐Ÿ‡ง๐Ÿ‡ช ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿ‡ฌ๐Ÿ‡ง ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿ‡ช๐Ÿ‡ช ๐Ÿ‡ซ๐Ÿ‡ด ๐Ÿ‡ต๐Ÿ‡ญ ๐Ÿ‡ซ๐Ÿ‡ฎ ๐Ÿ‡ซ๐Ÿ‡ท

๐Ÿ‡ง๐Ÿ‡ช ๐Ÿ‡จ๐Ÿ‡ญ ๐Ÿ‡ฌ๐Ÿ‡ช ๐Ÿ‡ฉ๐Ÿ‡ช ๐Ÿ‡ฆ๐Ÿ‡น ๐Ÿ‡จ๐Ÿ‡ญ ๐Ÿ‡ฌ๐Ÿ‡ท ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿ‡ฎ๐Ÿ‡ฑ ๐Ÿ‡ญ๐Ÿ‡บ

๐Ÿ‡ฎ๐Ÿ‡ธ ๐Ÿ‡ฎ๐Ÿ‡ฉ ๐Ÿ‡ฎ๐Ÿ‡ช ๐Ÿ‡ฎ๐Ÿ‡น ๐Ÿ‡น๐Ÿ‡ฏ ๐Ÿ‡น๐Ÿ‡ฏ ๐Ÿ‡น๐Ÿ‡ฏ ๐Ÿ‡ฑ๐Ÿ‡ป ๐Ÿ‡ฑ๐Ÿ‡น ๐Ÿ‡ฒ๐Ÿ‡ฐ

๐Ÿ‡ฒ๐Ÿ‡พ ๐Ÿ‡ฒ๐Ÿ‡น ๐Ÿ‡ฒ๐Ÿ‡ณ ๐Ÿ‡ณ๐Ÿ‡ด ๐Ÿ‡ฎ๐Ÿ‡ท ๐Ÿ‡ต๐Ÿ‡ฑ ๐Ÿ‡ต๐Ÿ‡น ๐Ÿ‡ง๐Ÿ‡ท ๐Ÿ‡ท๐Ÿ‡ด ๐Ÿ‡ท๐Ÿ‡บ

๐Ÿ‡ท๐Ÿ‡ธ ๐Ÿ‡ท๐Ÿ‡ธ ๐Ÿ‡ธ๐Ÿ‡ฐ ๐Ÿ‡ธ๐Ÿ‡ฎ ๐Ÿ‡ช๐Ÿ‡ธ ๐Ÿ‡ฐ๐Ÿ‡ช ๐Ÿ‡ธ๐Ÿ‡ช ๐Ÿ‡น๐Ÿ‡ท ๐Ÿ‡บ๐Ÿ‡ฆ ๐Ÿ‡บ๐Ÿ‡ฟ

Features

KeyboardKit comes packed features to help you build amazing and powerful keyboards:

  • ๐Ÿ’ฅ Actions - KeyboardKit comes with keyboard actions like characters, emojis, actions, custom ones etc.
  • ๐ŸŽจ Appearance - KeyboardKit comes with an appearance engine that lets you easily style your keyboards.
  • ๐Ÿ’ก Autocomplete - KeyboardKit can present autocomplete suggestions as the user types.
  • ๐Ÿ—ฏ Callouts - KeyboardKit can show input callouts, as well as long press callouts with secondary actions.
  • ๐Ÿ˜Š Emojis - KeyboardKit defines emojis and emoji categories that you can use in your own keyboards.
  • โŒจ๏ธ External Keyboards - KeyboardKit lets you detect whether or not an external keyboard is used.
  • ๐Ÿ‘‹ Feedback - KeyboardKit keyboards can give and haptic feedback feedback as the user types.
  • ๐Ÿ‘† Gestures - KeyboardKit comes with keyboard-specific gestures that you can use in your own keyboards.
  • ๐Ÿ”ค Input - KeyboardKit supports creating alphabetic, numeric and symbolic and custom input sets.
  • ๐Ÿ’ฑ Layout - KeyboardKit supports creating keyboard layouts for various devices, locales etc.
  • โŒจ๏ธ Keyboard - KeyboardKit supports keyboard types like alphabertic, can inspect a keyboard's state etc.
  • ๐ŸŒ Locales- KeyboardKit defines keyboard-specific locales with localized content and assets.
  • ๐Ÿ‘ Previews - KeyboardKit defines a bunch of tools that simplify previewing keyboard views in SwiftUI.
  • โžก๏ธ Proxy - KeyboardKit defines a bunch of extensions to UITextDocumentProxy.
  • ๐Ÿš Routing - KeyboardKit lets you route text to other destinations than the main app.
  • โฌ…๏ธ RTL - KeyboardKit supports RTL (right-to-left) locales, such as Arabic, Persian, Kurdish etc.
  • โš™๏ธ Settings - KeyboardKit has tools for accessing and linking to an app's keyboard settings.
  • ๐ŸŽจ Styles - KeyboardKit defines a bunch of styles that simplify customizing the look of various components.

KeyboardKit Pro

KeyboardKit Pro extends KeyboardKit with pro features, such as additional locales, autocomplete engines, more extensions, additional views etc. It lets you create fully localized system keyboards with a single line of code.

KeyboardKit Pro requires a commercial license. Licenses can be purchased from the website or from Gumroad.

Demo Applications

This project contains a Demo folder with three demo apps that lets you try out KeyboardKit.

Demo uses KeyboardKit and lets you type in a light and dark text field. It has three keyboards:

  • English has a SystemKeyboard with the standard, English locale.
  • Unicode has a SystemKeyboard with custom, unicode-based inputs.
  • Custom has a completely custom input sets and keyboard layout.

ProDemo uses KeyboardKit Pro and supports all keyboard locales, LTR and RTL, autocomplete etc. It has two keyboards:

  • System LTR has a SystemKeyboard with all left-to-right locales.
  • System RTL has a SystemKeyboard with all right-to-left locales.

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.

Support

KeyboardKit is trusted and proudly sponsored by the following companies:

Oribi Icon phonetoroam Icon Vitalis Icon LetterKey Icon Anomaly Software Icon Milo Creative Icon

KeyboardKit is open-source and completely free, but you can sponsor this project on GitHub Sponsors, upgrade to KeyboardKit Pro or get in touch for paid support.

Contact

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

License

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

keyboardkit's People

Contributors

alfredcc avatar amirshane avatar andrewtavis avatar antonito avatar ardavank avatar brennanium avatar danielpunkass avatar danielsaidi avatar digitalheir avatar ibayramli avatar jackhumbert avatar jkristell avatar luffy-yu avatar micazeve avatar pvinis avatar skellock avatar vuong-dao avatar wearhere avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.