Folks here at work were discussing how to make a popular blog posting, and top of the suggestions was to include a list of some sort - Top Ten Tips for example. So I thought I would give it a go, and give my Top Ten Things that Great Mobile Software does. Except, I only have five. What are the remining five? You tell me!
Look great! I want my application to look cool. Using the standard Windows controls is ok, but show a bit of imagination in layout and background. There's no need to make your application look like a boring white form with some text boxes. Pocket PCs and Smartphone are truly personal devices, and so they reflect a little bit of the users own personality. And I want to at least give the impression I'm a cool and design-aware person.
Use the hardware! If the Windows Mobile-based device has a touch screen, make the most of it! If your program could benefit from accessing a GPS device, add that functionality. Would pulling down new information over the network improve the experience? Then add that feature!
Usability. Usability is key on a small device. Here's how you can test your application: take it on the bus. And wait until the bus is going over a particularly bumpy stretch of road. Can you use your application? Or do you find it hard to use the stylus to select the sixteen little checkboxes you put in a row?
Simplify the User Interface. And then simplify it again. And then do it again. Good design makes things look as though they are simple, without lacking any important features. I've seen too many applications that allow control over really meaningless little things, like the color of text or the sound effect used. Don't worry about these small things, they simply clutter the user interface with options that will hardly ever get used. On a Pocket PC or Smartphone, every control needs to earn the right to exist.
Conform. Originally is great, and is an essential part of your application (or else, why bother?) but don't break the rules for the sake of it. Windows Mobile 5.0 devices have a new way of displaying menus - there are only two, and they have associated softkeys. The menu on the left is usually a key action, and the menu on the right is usually a list of options. Your users will have learnt this, don't confuse them by swapping the menus around.