Giter Club home page Giter Club logo

virtualkeyboardsdk's Introduction

VirtualKeyboardSDK

A SDK to create a Virtual Keyboard for iOS and Android πŸ’.

About β€’ Installation β€’ Supported Platforms β€’ Features β€’ Integration β€’ Examples β€’ Benchmark β€’ How to get help? β€’ License
Documentation

About Keyboard SDK

The Virtual Keyboard SDK is a virtual keyboard for iOS and Android.

This keyboard has outstanding features included such as: being able to type or swipe in 82 languages, autocorrection, emojis, custom views on top of the keyboard, custom themes, and much more.

Once integrated you would be able to see an actual virtual keyboard in your device.

Installation

iOS, iPadOS

VirtualKeyboardSDK can be installed with the Swift Package Manager:

https://github.com/FleksySDK/FleksySDK-iOS

Android

VirtualKeyboardSDK can be installed with Maven:

maven { url = "https://maven.fleksy.com/maven" }

and adding the dependency:

dependencies {
  ...       
  // Keyboard SDK dependency
  implementation("co.thingthing.fleksycore:fleksycore-release:4.9.0")
}

Supported Platforms

Apple Platform

iOS 13

Android Platform

Android API 21

It also supports kotlin and java

Features

  • ⚑ Custom Action: The Virtual Keyboard SDK enables you to add custom actions directly to the keyboard layout. This might be custom buttons next to the space bar, specific images and associated actions. Check all the different options: Custom Action iOS and Custom Action Android.
  • πŸ™‹β€β™€οΈ Emojis: Emojis are already configured by categories, and they are automatically updated to the latest supported version. Configure and check all the different options: Emojis iOS and Emojis Android.
  • πŸ“± In-App Keyboard: The Virtual Keyboard SDK allows you to integrate the virtual keyboard as an in-app keyboard without needing a system-wide keyboard. This is specific for App developers in the cybersecurity space. Further details: In-App Keyboard iOS and In-App Keyboard Android.
  • 🌍 Languages: The Virtual Keyboard SDK supports up to 82 different languages.
  • 🎨 Theming: The Virtual Keyboard SDK allows you to configure the appearance of the keyboard by changing colors, font, background and more for a different parts of the keyboard. For further details and comprehensive documentation: Theming iOS and Theming Android.
  • πŸ’… Topbar Icon: The Virtual keyboard SDK empowers you to customize icons within the top bar, ranging from a basic image to a view positioned on either the right or left side of the topbar. Further details: Topbar iOS and Topbar Android.

Integration

Using the Fleksy Keyboard SDK you are able to create an App for iOS or Android which has a keyboard.

Folder Description
/Integration/Keyboard-iOS iOS project for an App which holds a keyboard built using the FleksySDK.
/Integration/Keyboard-Android Android project for an App which has a keyboard built using the FleksySDK.
/Integration/Keyboard-Flutter Flutter project for an App which holds a keyboard built using the FleksySDK.

Examples

  1. Customise look&feel of the keyboard 🎨 -> Examples/Style
  2. Download and Install Languages 🌍 -> Examples/Languages
  3. Add your own custom buttons on the keyboard layout πŸ”‘ -> Examples/CustomAction

Benchmark

Want to test how KeyboardSDK works on your phone ?

Join our community to test how the VirtualKeyboardSDK performs.

Public Link Description
iOS Testflight iOS sample App for testing right away our last development on the KeyboardSDK.
Android Firebase Android sample App for testing right away our last development on the KeyboardSDK.

Keyboard Performance Comparison

Compare the perfomance of any keyboard against that of any other keyboard, use our open source tool: Kebbie

Documentation

How to get help?

Any question that you might have, please post it directly into the Github Discussion Forum.

Business related questions, please, go to our developers portal, we will assist you as soon as possible.

Licensing

The Fleksy test SDK is proprietary binary code and licensed under the Fleksy Binary Trial License in the License folder.

The remaining source code available in this repository are licensed under the MIT license, a copy of which is also in the License folder

Documentation is distributed under the CC-BY-ND-4.0 license, available at https://creativecommons.org/licenses/by-nd/4.0/,

All code and materials are Β© 2024 ThingThing Ltd.

virtualkeyboardsdk's People

Contributors

ajpallares-fleksy avatar eduardo-ramos-anderson avatar francescojalvo avatar hcuevas-thingthing avatar horaci avatar iagotorrado-fleksy avatar pierret-fleksy avatar theimpulson avatar veragarrido avatar xevifar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

virtualkeyboardsdk's Issues

Obfuscated (non-public) class names collide due to non-unique obfuscated naming (Fleksy Android)

The names of non-documented classes have been improperly obfuscated resulting in class names that easily collide with class names of other improperly obfuscated modules (names such as A, B, C).

In many cases, this would not be an issue. However, since I also use another 3rd party SDK/library which is similarly improperly obfuscated, I get many of such errors: Duplicate class a.a found in modules jetified-fleksycore-release-4.4.12-runtime (co.thingthing.fleksycore:fleksycore-release:4.4.12) and jetified-otherlib-release-4.4.12-runtime (co.other.otherlib:otherlib-release:4.4.12).

note to developers: You should always prefix all of your code in Java or other JVM languages with unique packages to create a unique fully qualified name because any two classes with the exact same fully qualified name will cause a build error. This happens because the JVM only uses the fully qualified name string, saved initially in a single table, to instantiate all the classes and interfaces in the system. If the table will have more than one entry for a class/interface, it won't know which one to choose.

Use Proguard's -repackageclasses option. ProGuard Manual: Usage | Guardsquare

Clipboard functionality

When i copy a parah or some text from somewhere it doesn't show up on the keyboard top bar. Also there is no functionality to store different pieces of text or data in the keyboard to be able to quickly paste them somewhere else when needed. This feature and the floating window keyboard option is much needed for this app to function properly as a keyboard. I hope this feature is added soon.

Edit i found the extension for clipboard in settings this issue is resolved. Now only the floating keyboard issue remains.

iOS crash

iOS 15.6.1 & iOS17.3.1

iPhone 8 Plus & iPhone 13

ζˆͺ屏2024-03-14 10 34 57
ζˆͺ屏2024-03-14 10 37 48

Keyboard autocorrecting @ mentions.

The keyboard seem to be autocorrecting @ mentions. This is not ideal. It shouldn't autocorrect hashtags and mentions.

SDK: v4.21.0
Platform: iOS

Some minor details that change since last update

I'm using Fleksy 11.0.0 in Android 8.0.0 in a Samsung Galaxy 7 Edge.

From last update I notice that after we insert a period in text messages, the app is not starting the next character as capital character and also it is not eliminating the extra space it usually adds after autocompleting a word. For the question mark, the extra space is eliminated and the next char is capital. Exclamation mark also works fine. Only the period is broken!

Sound and Haptic feedback not working.

Environment

Iphone: xr
IOS: 16.1.1

this is my code:

  override func createConfiguration() -> KeyboardConfiguration {
      .....
       ....
       feedback = FeedbackConfiguration(
                soundMode: FeedbackConfiguration.SoundMode
                    .sound(FeedbackConfiguration.ResourceSoundSet.defaultSoundSet),
                haptics: true
            )
            
           let config = KeyboardConfiguration(
            feedback: feedback,
            apps: appsConfig,
            license: license
        )   
        return configuration
    }
 

Symptoms

when i switch to the background and stay for a while and return to the foreground, Sound and Haptic will become invalid.
Need to restart the keyboard to restor.

The appIcon for the Android alphabetical keyboard does not support RTL (Right-to-Left)

SDK Version: fleksycore-release:4.3.8

When the user switches to the Arabic language, the app icon in the top-left corner of the keyboard does not switch to the top-right corner.

Additionally, when configuring a background specifically for the alphabetical keyboard, the background color is not the configured color.

class SdkKeyboardService : KeyboardService() {
    // Omitting relevant code...

    private val keyboardBgColor: Int
        get() = R.color.keyboardBg

    override fun createConfiguration() =
        KeyboardConfiguration(
            style = KeyboardConfiguration.StyleConfiguration(
                forceTheme = SystemThemes.lightTheme.copy(background = keyboardBgColor)
            ),
            // Omitting relevant code...
        )

    // Omitting relevant code...
}

Specified the background as keyboardBgColor, but the presented color in the subsequent interface is not this color.

Copy in Messages will freeze openApp function.

iPhone 11
iOS 17.1.1
FleksySDK-iOS 4.17.1

When the Fleksy keyboard is on, long press a message in the iOS system "Messages" app. After long press, the keyboard will be retracted, and then click "Copy" in the pop-up menu. The keyboard will then open automatically. At this time, clicking the "App" button in the keyboard cannot switch to the keyboardApps UI.
"openApp" is called in "triggerOpenApp" method, but nothing happens.

Problems using Japanese in iOS

info:
SDK: 4.21.0 、4.19.1
iOS version: 15.4.1
device: iPhone xr

bugs:

  1. In Japanese QWERTY layout, prediction cannot appear at the top

  2. It will freeze when typing, resulting in no response to any operation. Please see the video for details. Enter [watasi] in the Japanese QWERTY layout and it will appear

2.mov
  1. "Certain characters need to be localized. For example, the currency symbol should be a YEN sign. Moreover, the """" should be replaced with γ€Œγ€
    Example in ""notes"" column. "

ζˆͺ屏2024-02-23 16 34 05

  1. About the Japanese (Kana input) keyboard, you need to add configuration to hide the prompts in the box
    ζˆͺ屏2024-02-23 16 37 23

customize topbar or add custom view above topbar

Hello, I'm facing with the problem of customizing topbar. I want to fully replace topbar as shown in the screenshot.
Keyboard

Maximum what I can do is add 2 custom view on the left side of top bar and on the right side.
photo_5355162050575324718_y

I found that it is possible to add above topbar custom view in Android. Like shown in this screenshot.
sss

Is it possible to do it for iOS?

[External] -[UIInputViewController needsInputModeSwitchKey] was called before a connection was established to the host application. This will produce an inaccurate result. Please make sure to call this after your primary view controller has been initialized.

[External] -[UIInputViewController needsInputModeSwitchKey] was called before a connection was established to the host application. This will produce an inaccurate result. Please make sure to call this after your primary view controller has been initialized.

This issue appears after integration of https://github.com/FleksySDK/fleksy/tree/open-frame-example/examples in iOS

This message prints in debug logs and the keyboard crashes.

Crash when going to the background

Environment

  • Iphone: 13 pro
  • IOS: 15.5
  • App/SDK version: 1.0/4.18.2

Reproduction steps:

  1. Run the iOS project and grant keyboard access permission.
  2. Open any application and switch to the FleksySDK keyboard.
  3. Minimize the application and wait for 5 seconds.
  4. Return to the application. The FleksySDK keyboard crashes, and the system automatically switches to another keyboard.

SDK Demo Info

Screenshot 2024-01-08 at 3 47 52 PM

Video

keyboard_crash2.mov

Problem when using the keyboard inside other apps (No option for floating keyboard)

There is no option to turn the keyboard into a floating keyboard.It covers the whole screen and that causes issues. I cannot see the screen or select the field I'm supposed to type in. I frequently use whatsapp as a floating app or in a mini window inside other apps and sometimes inside games. I would really like an option to turn the keyboard into a floating keyboard to be easily able to use the keyboard inside other apps. Other keyboard apps like swiftkey and gboard are able to do this. I really like this keyboard and would love to use this on a daily basis but without these needed features it becomes useless. I really hope an update for this comes soon.

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.