Git Product home page Git Product logo

keyboardkit's Introduction

KeyboardKit

Version Platform Swift 5.1 License Twitter: @danielsaidi

About KeyboardKit

KeyboardKit is a helps you create custom keyboard extensions for iOS and ipadOS. It provides you with a rich set of keyboard-specific tools and actions, haptic and audio feedback support and lets you create keyboards with characters, emojis, images, custom actions etc.

If you're new to iOS keyboard extensions, this great guide can help you get started. You can also have a look at the demo apps for examples on how to use this library.

Installation

Swift Package Manager

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

CocoaPods

target 'MyApp' do
  pod 'KeyboardKit'
end

target 'MyKeyboard' do
  pod 'KeyboardKit'
end

Getting Started

After importing KeyboardKit, make your extension inherit KeyboardInputViewController instead of UIInputViewController. It provides you with many tools that helps you build custom keyboard extension.

KeyboardKit supports both UIKit and SwiftUI, so you can pick the option that suits your needs best.

UIKit

Read more here about creating UIKit-based keyboard extensions.

You can also follow this tutorial.

SwiftUI is the main focus going forward, but UIKit support will still be around and improved if needed.

SwiftUI

Read more here about creating SwiftUI-based keyboard extensions.

You can also follow this tutorial.

SwiftUI is the main focus going forward, but the support is currently limited.

Actions

KeyboardKit supports many different keyboard actions, like character inputs, emoji inputs, backspace, newline, space, image etc. You can even create your own, custom actions.

Read more here

Keyboard Types

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

Read more here

Autocomplete

KeyboardKit supports autocomplete and can present autocomplete suggestions to users as they type.

Read more here

Haptic Feedback

KeyboardKit supports haptic feedback and can give users haptic feedback as they type.

Read more here.

Audio Feedback

KeyboardKit supports audio feedback and can give users audio feedback as they type.

Read more here.

Extensions

KeyboardKit comes with many keyboard-specific extensions. Check out the demo apps and source code for examples and more information.

Demo Applications

This repository contains two demo apps that demonstrate different keyboard types, like alphabetical (lower/uppercased and caps locked), numerical, symbols, emojis and images.

  • KeyboardKitDemoKeyboard uses UIKit to implement various keyboards that mimics system keyboards.
  • KeyboardKitDemoKeyboard_SwiftUI uses SwiftUI to implement various keyboards that mimics system keyboards.

Since KeyboardKitSwiftUI is still under development, the SwiftUI demo app lacks a lot of functionality that the UIKit app has.

To run the demo app, open and run the KeyboardKit.xcodeproj project then enable the keyboards under system settings. Don't forget to enable full access.

IMPORTANT Audio feedback, haptic feedback and image actions require full access.

Contact me

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

Clients

KeyboardKit is proudly supported by:

Anomaly Software

Your company can support KeyboardKit by either sponsoring the project on GitHub Sponsors or by paying for consultation. I'ld be happy to help you out with your keyboard needs.

License

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

keyboardkit's People

Contributors

danielsaidi avatar wearhere avatar pvinis avatar alfredcc avatar jackhumbert avatar jkristell avatar micazeve avatar vuong-dao 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.