This Arduino-based chording keyboard can communicate over Bluetooth or USB.
Per Brian McEvoy’s Instructables article, “A chording keyboard is a device which relies on pressing multiple keys at once, similar to playing a chord on a guitar.” This type of computer interface can be quite fast as you don’t have to move your fingers off of the home position. In McEnvoy’s case, he designed his keyboard so that it would be extremely portable for a cyberpunk costume he’s assembling.
His 3D-printed keyboard features three thumb buttons and a button for each finger, and uses an Arduino Micro (ATmega32U4) to translate key combinations into something that a computing device can recognize. According to his writeup, the seven keys and processor are required, but many of the other components, including the Bluetooth module, accelerometer, battery holder and USB port are optional. On the other hand, it appears one could need either a battery holder or USB port to get power from somewhere, so one of the two is probably necessary.
It would seem like something similar to this running under Bluetooth would make an excellent phone accessory, perhaps as a custom case. The learning curve would be steep, but once learned, this type of accessory could make texting or phone-emails much, much faster.
You can find even more information about how this device came to be on his 24 Hour Engineer site!