Usability Review of OpenMoko GTK+ Applications

Shawn Rutledge shawn.t.rutledge at gmail.com
Tue Mar 11 19:29:18 CET 2008


>  > - more contact details
>
>  Such as? I didn't want to make it too complicated here. Phone, E-mail
>  and Address and Company seemed the most likely used fields to me.

Don't even try to predict which ones are necessary:  it should be up
to the user to define them.  When you select Add Field... a dialog or
screen could pop up with combo-boxes for field name (with choices like
Address, Phone, Email, or write your own), context (work, home,
mobile, or write your own), and a multi-line text field (with at least
3 lines visible) for the value.

The extremely important thing is that the user should be able to add
new types of fields which have not been imagined before.  For example,
one of my friends lives in a gated community.  He gave me a number I
have to type in on a keypad at the gate, to open it.  When I am at the
gate, I have my phone, so my phone is the best place to remember that
number.  (Otherwise what would you suggest?  A sticky note in the car
somewhere?  I actually did that for a while, but how gross is that?!?)
 Now where in a conventional contacts list do I put this information?
No designer of a phone contacts list would ever think of it, nor
should he be expected to.  My A1200's contacts form has a "note"
field, so I put it there; but that is sub-optimal because I had to
write "gate code:" as part of the note, to remind myself of what it
was; and the name of the field properly is not "note" it is "gate
code".  And what if I want to write more than one "note"?  But they
didn't give me the ability to add the "gate code" field, nor to add
more than one "note".  Meanwhile they cluttered up the screen with
lots of fields that I don't normally use, which are just left empty,
and take up space anyway.  I hate that!  In your "keep it simple" list
you have included two fields which I do not normally use: address and
company.  (I can remember my friends' companies, and I can remember
how to drive to their houses, too, and there is no application to
address an envelope from the phone, or something like that.  If there
were such a thing, or I was a navigation-challenged person and needed
to link addresses to maps, then I would use it more.)

Why at least 3 lines of text?  That way "address" can be unstructured:
who knows about all the address conventions world-wide? and the whole
thing is used together anyway, so there is no point in having separate
fields for number, street, apartment, city, state, zip etc.

Another example would be all the chat systems: IRC server and channel,
ICQ number, Jabber server and ID, AIM ID, etc. etc... (and let's
include even geekier ones like ytalk user at server, finger user at server,
Zephyr etc.) and for a while there, new chat systems were being
invented way too often, so you might as well forget about anticipating
this need.  You should be able to add IDs like those to a contacts
list!  Then if somebody has the itch, he might develop an app to
actually use a particular kind of chat system over GPRS; or even if
not, it's nice to be able to use the phone as your memory of such IDs.

Anyway, you should be able to type a new field type directly into the
combo box, or hit the down-arrow button to pop down the list of
pre-existing field types.  And every time you enter a new field type,
it should be added to the list.  The list can be sorted by
most-frequently-used so you don't usually have to scroll it.

This imposes a requirement on the data store for contacts: it can be
tree-structured (like XML) or it can be a fully-normalized relational
schema, but it cannot be one-row-per-contact, because you cannot have
enough fields for all the possibilities.  (What I mean by
fully-normalized is: you need at least two tables, one that maps
contact names to contact IDs, and another that has contactID,
fieldName, fieldContext, fieldValue.)

Note that this design does not preclude having a few empty fields by
default when you add a new contact.  Since this is a phone, "mobile
phone" is the most logical, and "personal email" may be second.  I
don't see any reason for more than that (you can always "Add Field..."
to get more, and it's good to limit the amount of clutter on the
screen, by default, so that scrolling is seldom necessary.)

>  Personally, I can't really see how this makes sense in a contacts
>  application. Keeping it simple as possible was my main goal.

The simplest possible design is the one that lets you add fields
one-at-a-time to each contact, without trying to predict what fields
the user will want.  There is no field-specific code: all fields are
equal, and you write the code to edit them and to display them just
once.  It's on the same principle as an index card or a rolodex card
in the last-century world: just a blank space onto which you can write
whatever information you like.  At least, organizing the info as
name-value pairs (rather than one big block of plain text) makes it
possible to sort or query by field.

When displaying a contact (as opposed to editing) it should be
possible to touch any phone number and enter it into the dialer (ready
to hit "dial" and place the call), or touch any email and compose a
new one to that person, or touch any address and get a map, or touch
any instant-messaging/IRC/whatever field and open a chat session of
the appropriate kind.  But some of those are harder to achieve than
others, and the important thing for now is just to be able to enter
those types of fields.

>  > Isn't the power button enough for quitting running apps? I wouldn't add
>  > anything to the app list - to fiddely. KISS...
>
>  I think there is plenty of space for a close button "X" to the right.
>  The problem with using the power button is that it is completely
>  unobvious to new users. Not to mention it's not particularly easy to
>  use.

I agree.  Using the power button for this is not a good idea at all.
If it had a big red button on the face (like many phones) then it
would make sense, but this phone's power button does not look like
it's meant to be used that way.  (recessed, on the side, too small)

>  > > * Remove communication history page(?)
>  >
>  > So far everyone told me that this is a cool feature missing on all other
>  > phones. I love it ;-)
>
>  Interesting, I guess I rarely look at my call history anyway. You can't
>  do any thing with it, so I don't really see what it's usefulness is.

On my A1200 I use it a lot, mostly for calling back numbers in my
"missed calls" list.  It's also nice to be able to redial a previous
number from the dialed calls list.  I think of it as a short-term
memory for contacts: I may not want to store someone's number
permanently in the phonebook (long-term memory), but may need to play
phone tag with a person for a day or two, until the business at hand
is finished.  So if this list currently has no features, it needs to
at least have a dial function (as with contacts: touch the number to
enter it into the dialer).

>  I find the hardware buttons on the Neo fairly difficult to use because
>  of the placement on the case and also the quality of the micro switches.

Yeah one wonders if they will wear out if you press them too much.



More information about the openmoko-devel mailing list