Jon Aquino's Mental Garden

Engineering beautiful software jon aquino labs | personal blog

Wednesday, January 26, 2005

A story about PDA keyboards

I bought my Pocket PC a couple of months ago, and one of the first issues was: How to enter text efficiently? I found Graffiti and Transcriber to be slow and inaccurate, and I knew that there were better alternatives to the built-in QWERTY keyboard. MessagEase was one, but with its lack of visual feedback I found myself continually glancing up at the screen to check my work - uncomfortable and stressful:


[MessagEase]

Fitaly has visual feedback and its letter layout has been tuned over the years, but its punctuation seems an afterthought, scattered among five hidden screens:










[The five Fitaly punctuation screens]

I decided to make my own on-screen keyboard, based on the wonderful Fitaly layout, but also providing access to all punctuation from the main screen, just like the standard built-in keyboard.

First, I needed a customizable keyboard. The Pocket PC Magazine awards mentioned one: TopKey. Only $5, compared to Fitaly's $30. Next problem: How to implement the Fitaly layout? Fitaly has five rows, whereas the standard keyboard has four. Well, it didn't take me long to realize that I could squeeze Fitaly into four rows while preserving its essential character. I called it "Fitnaly", as that's how the letters appeared in the end. Here's my first cut:


[Fitnaly on TopKey]

Note how everything worked out nicely: punctuation is placed in their familiar positions (slide up on the numbers to get !, @, #, etc. More on this later...), and as a bonus, numbers are also located in their usual positions! I posted this layout on the Aximsite forums so that others could benefit, and also contribute ideas.

But then ... I discovered that TopKey has compatibility issues with Windows Mobile 2003 SE -- often keys would be "sticky", staying down. Plus, its wonderful self-learning predictive text feature seemed to be making the responsiveness sluggish. I emailed TopKey and they confirmed the "stickiness" problem on WM2003SE.

So I looked for another customizable keyboard, and found one in the recent Pocket PC Magazine winner in the Soft Keyboards category: Resco Keyboard Pro. On sale for $13, it was priced halfway between TopKey ($5) and Fitaly ($30). Here is my first attempt at implementing the Fitnaly layout:


[Fitnaly on Resco]

The next refinement was to use Paint to create a new skin:


[An early skin]

Note the muted colours and lack of grid (tips I picked up from Edward Tufte's books - not sure if it is elegant, ugly, or both). Also I chose a simple layout for the colours to help users to orient themselves.

I wanted to explore an alternative layout: ATOMIK, developed by IBM:


[IBM's ATOMIK layout]

Again, the challenge here was to map a 5-row layout to 4 rows. Here's one way to do it while preserving the character of the original:


[The ATOMIK layout mapped to a standard keyboard]

Note again the use of colour to break up the keyboard into memorable sections.

It then struck me that it would be useful to have visual cues to remind the user of the punctuation available. I added them to the skins:


[Adding visual cues for punctuation]

Note that the Atomik keyboard is rather elongated in the NW-SE direction when mapped to the standard keyboard - this makes for a lot of hand contraction, which can get painful. So I flipped the layout upside down, which made it more compact while preserving its character:


[Flipping the ATOMIK layout to make it more compact]

Well, after using the Fitnaly and Atomik layouts for a week, I just felt that Fitnaly was a lot more comfortable -- almost more "intuitive" I guess -- for some reason. But wasn't Atomik more "scientifically" designed, using the Metropolis algorithm to cluster letters that are often used together?

Well, I decided to conduct my own tests to find out.

First, I wanted some quantitative evidence, so I set up a simple experiment. I wrote a 134-line Groovy script to compute the distance travelled for Fitaly vs. Atomik using two texts: the Gospel of Matthew, and Grimm's Fairy Tales -- both available for download from Project Gutenberg. In both cases, Fitaly is better by around 3% (God prefers Fitaly, perhaps?).

C:\>cat BookOfMatthew.txt | groovy fitaly.groovy
Fitaly distance: 192163.3 units
Atomik distance: 198783.9 units
Fitaly is better by 3.4%

C:\>cat GrimmsFairyTales.txt | groovy fitaly.groovy
Fitaly distance: 814045.4 units
Atomik distance: 834466.2 units
Fitaly is better by 2.5%

Next, being a visual person, I wanted to see the Fitaly and Atomik gestures displayed side-by-side for the text from the annual Dom Perignon speed competition. This I did using Paint.Net (and Tufte's idea of "small multiples").


[Visual comparison of the Fitaly and ATOMIK gestures for the Dom Perignon competition]

Looking at the gestures side by side, I did not see that Atomik was significantly better -- if anything, Atomik looked slightly worse. The numbers from my quantitative experiment confirm this.

So I have put aside the Atomik layout and settled on Fitnaly, implemented in Resco to make all the punctuation available on the main screen. The current version of Resco does have a major bug (it sometimes ignores your taps - namely, inadvertent 2-mm slides along the grid do nothing), but the punctuation design outweighs that for me (plus Juro at Resco has promised to fix the problem for the next version). The latest incarnation of the Resco Fitnaly skin features some nice 3D buttons from other Resco skins. (Dontcha love the green button? I did that using GIMP's colour-replace feature).


[The latest iteration of the Resco Fitnaly skin]

I have created a zip file, with installation instructions, for these skins. So far, six Resco users have asked me for them. Send me an email if you want a copy! (Note that it requires that you have Resco Keyboard Pro installed on your Pocket PC).

4 Comments:

Post a Comment

<< Home