Developers cannot ignore mobile devices. For many less affluent users, mobile devices are often their only form of Internet access. In the consumer space, mobile devices have become the primary non-work Internet and application device of choice. Even in the business world, many users are on phones and tablets the majority of the time. This trend will probably be on the rise for quite some time, so, it’s likely you’ll be doing some version of mobile development soon, if you aren’t already. Here are some things you need to be aware of to get the mobile mindset.
Even if you are not designing your applications explicitly for mobile use, there is a very good chance (for Web applications) and a somewhat rare chance that mobile users are accessing them. How are mobile users getting to your desktop applications? Good question! A number of organizations are using things like Terminal Server to deliver desktop applications to mobile users. In addition, mobile users are using similar systems to directly access their desktop machines. This means that, depending upon your audience, you may need to ensure that even native desktop applications work well with mobile devices.
The biggest hurdle developers seem to face when their apps are used on mobile devices is the user interface. The two components of the problem are screen size and touch UI. The screen size issue is device dependent. Larger devices like the iPad have enough screen space so you can design as if the user had a desktop-like screen… if you keep in mind that it is trivial for the user to rotate the device and go to a portrait layout. You will want to test your applications (particularly Web applications) on a portrait orientation to see how well this works. Smaller devices, such as 7″ tablets, aren’t smartphones, but the screens are small enough that you should follow the smartphone guidelines for minimal interfaces, reduced amounts of content, and other techniques to ensure that there’s enough space on the screen for what the user needs to do.
Touch interfaces require a different way of thinking. For one thing, you cannot put elements too closely together, or else users will be touching the wrong thing. In addition, the elements should be larger; think icons and large text rather than small text, and you get the idea. Links and clickable areas need to be obvious (underlined text links, buttons with obvious purpose, etc.) since touch users can’t wave the cursor around looking for it to change to the “hand cursor.” The touchable elements should not depend on proximity to explanatory text, since smaller screens may shift that explanatory text somewhere other than right next to the elements. Anything depending upon mouse hovering (like some expanding menus) or press-and-hold (again, certain menus) is a really bad idea; clicks, double-clicks, and sometimes drag/drop are the only gestures that should be needed.
There are other considerations to take into account when developing applications that are native mobile applications, but if you want to make sure that your existing application works well when used on a mobile device, these two UI considerations will go a long way in making that happen without hurting your existing users. If you are writing a Web application, keep in mind that you can use the CSS media type system to define different layouts and designs (even hiding certain areas) for the mobile users. And of course, you should test, test, test!