Move over T9, here comes Swype
news.cnet.com
news.cnet.com
The best I can come up (after not so much thinking about it) with is using Bloom Filters. Precompute the bit vector for every word in your dictionary, then after they swype, compute a vector for the string of characters and run it up against all the words in your dictionary that start and end with the same letters. Still kind of an expensive linear search, albeit fast (since it's just boolean AND).
I'm guessing it precomputes a tree for the dictionary. With each stroke, it drills down the tree along the most likely path. If it runs out of nodes, it backtracks and tries a more likely path somewhere,possibly using a precomputed list of vectors most likely to be mistaken for each other.
That gives On for the best case.
I'd think that they try to calculate the focus of each direction change and see what letter it landed on, then try a fuzzy match to words that have the smallest hamming distance between their input. After you get a good approximation of all the letters, then you can try hashing techniques.
Also, pivoting on first and last letter of each word isn't fool-proof, as the first and last letters are also not guaranteed to be hit dead-on.
I hope this is better.
Of course everyone in the know prefers 'DHIATENSOR'.
It slows you down to prevent jams. The guy's name was Sholes.
In the Design of Everyday Things, Donald Norman talks about keyboard design a lot. QWERTY is really good, so switching to layouts that are only slightly better (dvorak) end up not being worth the time and effort.
For the average user though, I just don't see how it catches on. People are fairly split over whether they prefer phones with traditional button keyboards or if they love the touchscreen interface from the iPhone. I love the iPhone because I hated stencils. I get more screen real estate. Its easier for me to do typing on the iPhone than any other smart phone I ever used.
It honestly looked like the demonstrator was scribbling on the screen. I had to look twice a couple of times to make sure it was a live demo and not fake.
How many people use more than one finger on the screen and how often?