Wednesday December 06, 2006 | the evils of design anet's blog |
Why desktop traversal does not equal 2D traversal.So you're new to JavaME. You come from the desktop world and you want to create an application that runs on a cell phone. Where do you start? There are many aspects of designing for the consumer mobile space that differ subtly and drastically from the desktop space. Cell phones and desktop pcs evolved for very different usages. Traversal is a great example of one of the places those differences show up so I am going to start with an overview of desktop pc traversal versus phone 2D traversal. At a very high level, traversal can be defined as a way for a user to move a cursor or focus highlight around on a screen to interact with items on the screen. Let's do a quick review of desktop traversal. A desktop or laptop PC has a QWERTY keyboard and likely a mouse or similar input mechanism. The system software supports the concept of multiple overlapping windows. Drag and drop is used as a way to interact with the system. Using the keyboard to traverse between windows, menus, docks, icons, palettes, and such was developed as an alternate input mechanism; the mouse originally seen as the primary input device. What gets moved around might be a cursor and/or a focus highlight. Desktop traversal assumes the use of a full keyboard. It has to deal with the concept of allowing the user to jump between top-level entities like menus and windows and low-level entities like text fields and popup menus. If the underlying toolkit supports automated layout of components and desktop traversal is built in, then its pretty easy to move about and figure out how to interact with items. There are lots of keys on the keyboard to map to the different kinds of operations needed. Now lets review a cell phone. A typical cell phone these days has an ITU-T keypad (0-9, * #), two or more soft buttons (physical buttons tied to soft labels shown on screen), an UP, DOWN, LEFT, RIGHT set of keys, and a SELECT button. Sometimes the UP/DN/LF/RGHT/SELECT combination is provided as separate keys or as a "joystick" or even as a "wheel". Some handsets provide additional buttons mapped to BACK, MESSAGES, INTERNET, VOLUME, etc. The only keys typically used for traversal are UP/DOWN/LEFT/RIGHT and SELECT. This is the primary input mode for handsets. Most all cell phones also allow games complete access to all key codes. This means there is also a convention of using 2/8/4/6/5 keys to map to UP/DOWN/LEFT/RIGHT and SELECT. We will ignore this usage for now as these mappings are not typically used for general 2D traversal. The screens on cell phones are reaching the pixel range of 320 X 240 on some high end devices but the physical size of the display is still no more than ~2.5 inches wide and ~3 inches tall. Higher dot per inch resolution then is seen on a desktop PC is common. That said, rarely does one see anything approaching multiple overlapping windows on a phone. Or menus for that matter. Nor does one usually see a cursor on a display; most handsets only employ a focus highlight (or traversal highlight) to indicate where a user is at on the screen. 2D traversal means that the user can move the focus highlight UP/DOWN or LEFT/RIGHT. SELECT is used to select a component. Selecting a text field might bring up a separate screen for editing or it might make a text field active and turn on text input mode. Depends on how the components are implemented on that handset. NOTE: Rarely does one see a cell phone display that scrolls the entire display left and right. People get very disoriented and lost when that happens. Scrolling of the display occurs vertically only. It could be line-by-line or screen-by-screen. If you are going to design an application for a cell phone, go out and try using applications and services on several different phones from different manufacturers. Don't just use the browser on the handset, try out the application launcher, games, and sections of the user interface like options or settings. Do not expect much consistency. There is none and won't ever be any. Handset manufacturers like to differentiate. Thats part of their brand awareness. Now that you have some idea of the differences in the traversal area, you can begin to think about your application design. Or, how you are going to cram lots of functionality into a small screen AND make it eminently usable with only a couple keys. [evil laugh] ( Dec 06 2006, 02:22:33 PM PST ) Permalink A video.I finally got a chance to post this. Been a chaotic and crazy few weeks. Open sourcing, cats bringing in bats, and lots of other stuff in between. And, I STILL have not got subversion working on my mac. But I will. And lots of Duke stuff will get posted. On the day of the JavaME open source launch they had a camera crew there and someone thought it would be a great idea for me to go stand in front of it and talk. There are actually times when I am not a kurmudgeon, alas.
[evil laugh] ( Nov 21 2006, 11:11:35 AM PST ) Permalink Comments [1] like letting a 4 1/2 year paint the way she wants to.First she chooses 6 poster paint colors. Then I squirt out some of each color into the painting plate which has 6 little "scoops" to hold paint. I lay out a big piece of paper on the kitchen floor - large area with hardwood floor - for easy cleanup. She gets out brushes and sponges. I fill up the water container. Then she starts painting whatever she wants to paint. Usually a spiral emerges in one place. Maybe some dots or a face or a rainbow. Glitter paint gets used to make circles, squares, or triangles. She usually works away quite happily, humming and singing to herself, for about 30 or so minutes. Somewhere in here she usually asks, "Can I mix colors together?" Then she starts painting her toes. Not toe-nail polish style either - the whole toe. (Note: if you are a neat freak parent, STOP now. You won't like what comes next.) Soon all toes are painted in various colors. And most of both feet as well. Somewhere in here I get asked, "What happens when you mix ALL the colors together?" Then hands get painted and printed onto the paper several times in various manners. Then the arms get painted. Somewhere in here she comes over to me and asks for help removing her painting t-shirt, which I do. Then she proceeds to paint her belly button. Its a bit more of an effort as she has to lean over and get "all those innie parts". Since she has paint on her hands, arms, legs, and feet by this point, the brush gets a bit slippery. Then she announces she is done and I have to "come look!" She is very proud of what she has created - both on the paper and her. I admire profusely. Then she announces she is done and its bathtime. I run a tub - twice, mind you to clear the water - and she happily scrubs herself clean still singing. All the while leaving a beautiful glitter ring in the tub. Meanwhile, I hang up another wonderfully creative piece of art on my walls. Good OSS communities should create an environment where everyone feels comfortable painting whatever they want. Sometimes creative, innovative projects will get created and sometimes all you get is a beautiful glitter ring. And thats ok. [evil laugh] ( Sep 05 2006, 01:19:24 PM PDT ) Permalink Reality = Logistics.Hmmm. We are going to open source stuff. Implies we do product development in the open. Means there has to be a community web site. The site has to support all the folks who will be part of the community: handset/stack developers, content developers, service providers.... (I am likely forgetting someone important here!).... and us. Oh and there needs to be folks to design the site and produce it and get it out there in a very short time. Who is going to work on that? Aaaacccckkk! Noooo, not me. [evil laugh] Expect lots more amusement value in the coming days.... ( Aug 31 2006, 11:34:18 AM PDT ) Permalink are getting ripped off!Such a good sound to hear. Screaming, you say? Nope. People starting to get it. OSS here we come. There is this ripple effect moving through the org. Its been slow at first. A few drops. Now more movement. More folks started to pay attention and starting to say Oh, if we do that, then that means we have to.... (insert scream here). The last big chunk of the org jumped on the bandwagon last week. Now the rest of the bandaids should get yanked as the balls start gathering speed down to the finish line. (how's that for multiple mixed metaphors!!) The really fun part is that once you are in, you're in. The implications of that are just too amusing to even list. [evil laugh] ( Aug 28 2006, 09:58:13 AM PDT ) Permalink Time to come out of the closet. No, not that closet.The JavaME closet. The one I have been living in for the last ten years. Yup, that long. I am the only one still working on JavaME that was part of the team 10 years ago that moved Java technology back onto consumer devices. James, Herb, Curtis, Samir, and myself were the team that was asked by Jon to go figure out how if it made sense to create a version of Java for consumer devices. After all the origins of Java were from the consumer world, did it make sense to take it back there now that Java was out and on the desktop? Well, that request has made for some serious fun in the intervening years. There are many stories I may yet tell in the comming days and months. But the real news is that JavaME going to be open sourced. It feels a bit odd. Sort of like when your mother tells you that you really do have to wear clothes in public. Aaaawwww Mom, do I have to? This is going to be fun..... [evil laugh] ( Aug 17 2006, 03:00:26 PM PDT ) Permalink Comments [2] |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||