Skip to content

Android Keyboard that automatically adapts its layout to minimize mistyping rate of the individual user.

License

Notifications You must be signed in to change notification settings

mkirchhof/self-adapting-keyboard

 
 

Repository files navigation

Self Adapting Keyboard

closeup

Tired of typos? Sick of missing the keys on your tiny smartphone keyboard? This Android keyboard automatically learns an optimal keyboard layout fitted to your individual typing style! Keys will be positioned and sized in an optimal way to reduce your mistyping rate. Just start using the keyboard and after some typing you'll notice the keyboard adapting its layout on its own.

Features

  • Automatically learns your individual optimal keyboard layout
  • On-device machine learning backed by current research
  • Your data is yours - and only yours! No usage data is sent anywhere.
  • Minimal permissions (only Vibrate)
  • Small size (<1MB)
  • Ads-free

How to install

Download the most recent .apk from here (click on "Assets") and install it on your device. Once installed, activate the keyboard in your device's settings and choose it as your primary keyboard by clicking on the small keyboard symbol in the bottom right edge of your screen (Tutorial). After a short while (4 - 24 hours, depending on how much you type), you'll notice the keyboard adapting to your personal typing style.

Privacy on a third-party keybard?

I'm a huge supporter of privacy - especially when it comes to intimate data such as what you type on your phone. That's why I put all of this app's source code openly available here. The app has no permissions for internet or file-system access. All data this app stores is saved in the app's secure memory so that no other app or user has access to it. Note: if you use a rooted device, malicious apps might invade this storage, which is why I do not recommend using this app on a rooted device.

Can you implement Swype/Autocorrection/Word prediction?

I'm afraid I don't have the time to implement all these features into the app, as it's only a hobby project. My plan is to keep this app a prototype that shows this one feature - and hope that other keyboard app developers will see it and implement it into their apps, too! So if you'd like to see this self-adaption feature in your favourite keyboard app, I'd be honored if you sent the devs a link to this github page and ask them to implement it :)

If you're a developer yourself:

I'd love to see you implementing this self-adaption mechanism into your own keyboard apps! You can find a high-level documentation of the implementation here and some laboratory experiments with similar approaches here and here. Be sure to send me a mail if you do implement this functionality as I'd love to try out your app, too :)

Credits

Licensed under Apache License Version 2.

This keyboard is based on the Simple Keyboard, which in turn is based on the AOSP LatinIME keyboard

About

Android Keyboard that automatically adapts its layout to minimize mistyping rate of the individual user.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%