Friday, October 10, 2008

Windows Mobile Phone Factors

So how does one go about designing great software when the underlying tools leave much to be desired?

Don't worry, it was a rhetorical question.

Recently, I have been working on Friend Forecaster and its corresponding Windows Mobile software, aptly names, Friend Forecaster Mobile. Friend Forecaster will receive a proper introduction in due time, but essentially Friend Forecaster is a context aware application that tells you who you might see from your social network based on your location. What makes the project unique is that we are designing this software for senior citizens with Mild Cognitive Impairment, therefore our designs need to accommodate a typically older adult than most current cell phone applications.

As I have mentioned in previous posts, Window Mobile developers are blessed with a great set of tools from Microsoft. Microsoft Visual Studio makes so many things very easy and makes other things really hard. For example:

Easy
  • Making a user interface without writing lots of layout code
  • Deploying your application to different platforms
  • Refactoring
  • etc...
However, Windows Mobile itself makes some things very hard.

Hard
  • Making an interface for someone who has never used a cell phone.
  • Dealing with accessibility concerns
  • Easily skinning buttons or other UI elements to make them look more custom.
  • etc.
My list is by no means exhaustive, but in my opinion it's right on track with Microsoft's Pre-Vista mentality. Make it work! We'll worry about how it looks later.

This is all well and good since Windows Mobile is primary designed and used by the business world, but when you are trying to think outside the box, Microsoft seems to want to shove you back in.

Take for example their default menu bar at the bottom of each screen.







Look how small it is!

It is very hard tapping these buttons without using a stylus! You eventually get it and you learn how to manipulate your finger to do it, but this is basic interaction we are talking about.


So what can we do about it?

Well, there are a few options. You can go to places like Codeplex or Code Project and try to find some custom controls that do the job for you. The disadvantage with this is that using custom controls that you didn't write or that you don't understand is not advised.

A simpler option is to remove the default MenuBar control that gets generated for you, and replace it with your own. You can then make your own custom control or you can copy over the code for each form. Its best to keep your code as DRY as possible so creating a custom control is the best way to go.

Basically, all you have to do is increase the height of the MenuBar. The default size is around 10-15px depending on what brand of Windows Mobile you are using.

I have done user testing with a variety of users and it looks like the magic size is 30-35px. I haven't formalized a click test because I don't think its really necessary at this point, but a good heuristic should be to make those bottom buttons between 30-35px high.

One final heuristic is to make sure you use ALL of the space at the bottom of the screen. As you can see, I decided to make Friend Forecaster a full screen application which means it doesn't have a top NavigationBar, I did this to maximize screen space and also because our use cases don't need that kind of functionality. However, as soon as you add a visual element that occupies a fixed height, like a button... make sure you use all available height!

By default Windows Mobile will let you have one MenuBar button on either side while leaving the other side blank! Why would you do this! Use the entire space! If you only have one button, then make it fill the length of the screen!

I know what you must be thinking... Kent, all of this breaks the Soft Key interaction technique. You are right... it does. But we are living in a Touch Based world, and the need for Soft Keys is decreasing. It's very easy to map the functions of the Soft Keys to the bigger buttons, but in my experience there is no need.

Anyway, I hope this helps future Windows Mobile 6 software designers some time since users will bring this issue up within a week of testing. Let's hope that Microsoft delivers on their Windows Mobile 7 promises, and maybe we will never have to worry about this again.

The ball is in their court. Until then, the iPhone and Android will continue to eat away its precious market share.

Thank you

No comments: