Remix.run Logo
Show HN: I can't seem to text properly on an iPhone, so I built my own keyboard
2 points by tbensky 4 hours ago | 1 comments

== The problem ==

I’ve never been able to text properly on a phone. I’ve tried with two thumbs, one thumb, and every other way I can think of. Nothing works for me. I can only seem to text with my right index finger while holding the phone in my left hand, which is at best is slow and full of typos. I find myself fighting autocorrect as much as using it. I tried swipe keyboards (gboard, etc.) but they didn't help. Sometimes I watch people texting rapidly with both thumbs and marvel at their dexterity. It's all very frustrating for me.

== A solution ==

So I set out to build a custom iPhone keyboard designed around one idea: making the keys as large as possible.

Initially, I wanted to build a transparent keyboard that would overlay the whole screen, but iOS doesn't allow this. So I made as much room for larger keys in the allowed keyboard real estate by:

* Removing frequently used keys (spacebar, backspace and shift), and replacing them with gestures

* Removing keys for accessing focused keyboards (numbers, symbols, and saved phrases), also replacing them with gestures

* Nixing Autocorrect (which never helped me much) to recoup the room it takes.

Wth this maximal room, I set off to render the largest keys of a QWERTY keyboard that I could. I found that the maximum key size is constrained by the middle row of the QWERTY layout. Once those nine keys are made as large as possible, the third row is naturally centered with two additional keys (here, Return and Fix-it). This of course means that the ten letters on the top row won't quite fit. So I made the whole row sway slowly left and right, forcing the Q and P keys to share full visibility. A little different, but I can manage tapping a large, slowly moving target.

More recently, I added support for Apple’s on-device language model, which takes whatever mess I create, and cleans it up into something I can actually send. (I know that iOS has a 'proofread' feature, but it requires too many taps; I rarely use it while texting.)

== Some results ==

After several iterations on the keyboard, it’s starting to genuinely help me text faster (with just my index finger), with fewer errors and less frustration. I've been using it for about a year now, and surprisingly I'm rather hooked on it. I don't think it's a keyboard for everyone, but now having it, I generally don't use the system keyboard anymore. I'm posting this to see if it might be useful to others.

== Keyboard features ==

* Large key QWERTY layout.

* The top row sways right and left (see above) having Q and P share full visibility.

* There are no dedicated spacebar or backspace keys; these are gesture-based:

    * Swipe right = space

    * Swipe left = backspace
* Swipe down = symbols and common contractions like 's, 'll, 're, 't, etc. in one key

* Swipe up = numbers

* Swipe up again = collection of saved phrases and frequently used text

* Generally swipe up/down as needed to move between the stack of focused keyboards

* Two-finger swipe down = toggle caps

* Fix-it key: tap the wrench to have Apple’s on-device language model proofread and correct your text

== Notes ==

* Text correction uses Apple’s on-device language model. Your text never leaves the phone.

* The globe key still works normally, so you can switch to the system keyboard or emoji keyboard as needed.

* I found the book about early iPhone keyboard design by Ken Kocienda quite interesting.

* Give it a try if you like. I’d appreciate any feedback on this keyboard. Thank you!

== Resources ==

GitHub (README): https://github.com/tbensky/iCanText

App Store: https://apps.apple.com/us/app/icantext/id6748927092

jll29 4 hours ago | parent [-]

I recommend a BlackBerry (this problem was already perfectly solved in the past).