Because we have become so accustomed to writing user interfaces that use a mouse, it is difficult to write applications for mobile platforms with effective user interfaces. Justin James explores what needs to change for mobile applications to have usable interfaces.
The mouse defines, in large part, how we compute -- which is great for most needs. Having that "common ground" in terms of the interface is wonderful for probably 90 percent of the applications out there. The problem is the other 10 percent of applications that would be much better with alternative input devices. Even more problematic is the increasing popularity of devices with alternative input systems. Many UMPCs and smartphones use a touch screen with a stylus, and/or a cross pad for pointing. Neither of these devices are good for drag/drop operations, and a cross pad is particularly bad at complex maneuvers (other than the "Konami Code" of course).
The realm of video games is quite instructive to us. You see, there are certain game genres which simply are much more popular on consoles than on PCs and vice versa. In fact, some genres of video games barely exist on one platform or the other. The general rule of thumb is that video games that require precise, rapid motion tend to do much better on the PC. To be successful on consoles, for example, first person shooter (FPS) games need much less precise aiming than they do on PCs.
Likewise, the real time strategy (RTS) games do not exist at all on consoles for all intents and purposes. The holdup is not necessarily the keyboard; modern console controllers are just as good for moving in a RTS, and I personally never use the keyboard in an RTS except to pause the game, and I do just fine.
The problem is the age-old mouse vs. controller issue. In fact, people who play a lot of console-style games (including using a console emulator) tend to purchase console style controllers for their PCs because the keyboard and mouse is a poor choice for games designed for controllers.
This is a pertinent observation because an awful lot of those UMPCs use console controller style cross pads as their pointer when held in a normal position. Cell phones and smartphones use a cross pad as well. Some smartphones also (or only) have a tiny trackball, like the newer BlackBerries. I was worn out after using that trackball after more than a minute, and I highly doubt anyone can get much of anything done on them.
This means that the big market to push new applications into handles input in ways that are unfamiliar to the vast majority of application developers. Even worse, the video game connection shows pretty clearly that the interfaces (and even the types of work that we are used to performing on PCs) is extraordinarily difficult in an environment with no mouse or a mouse alternative. This means that, for the mobile form factors to make their predicted impact, at least one of three things needs to happen:
- We dramatically redefine the way we think about user input. The changes made to FPS games show us the way; making pointer targets "magnetic" to draw the pointer in and requiring less pointer precision will lead to success. This happens at the OS level.
- We redefine the applications completely that we expect people to use. There is a reason why RTS games on consoles almost never succeed: The only input device that works well for "all over the screen" rapid input happens to be a mouse. A stylus might be just as good -- I would need to ask a Nintendo DS owner or three about that. For applications that require this type of input, we need to think completely differently about them, period.
- We design devices and applications in a manner that the devices can be docked to a mouse, keyboard, and monitor, and when docked, the applications seamlessly "unfold" from an interface well suited to the mobile device to a more traditional desktop computing interface.
I think that the last choice would be brilliant, but it requires a lot of changes in the way device makers, OS coders, and application developers think about interfaces. Until we are no longer in a mouse-centric mindset, we will not be able to write applications that will be truly useful and usable on mobile platforms.