Register with Forum Nokia now and you'll enjoy the full benefits of the Forum Nokia membership.
Register LoginInnovation Series Videos highlighting Forum Nokia developers
Nokia releases new Qt developer offerings
Forum Nokia Developer Conference, India
Optimise your website for mobile devices with mobile web templates and layouts
Zoom and Rotate Gestures in FlashLite for touch-enabled devices
Jackson Feijó
Read more about Jackson on the Champions website.
Nokia Developer Days in South Africa
December 01, 2009
Johannesburg, South Africa
Forum Nokia Developer Conference ’09, India
December 07, 2009
Bangalore, India
LeWeb
December 09, 2009
Paris
Web Runtime Coding With Aptana WRT Plug-in
December 09, 2009
9am New York | 2pm London | 4pm Helsinki
Web Runtime Coding With Aptana WRT Plug-in
December 09, 2009
9:30am New Delhi, noon Beijing
Version 1.0 /18 Aug. 2004
This is the third and final porting and usability article in our Tip Of The Month series; it covers user experience optimization. The first and second articles, "Porting The Positive Experience" and "Focus On Features," discussed the basics of porting and the decisions involved in porting application features, respectively.
Frequently, mobile developers face a challenge in optimizing their applications to several different devices. Nokia Develop/Optimize is a practical programming paradigm that describes how to leverage the strength of Nokia’s developer platform approach while acknowledging and addressing device variations. While the developing phase is all about building platform- and device-independent application engines, optimization is all about getting the most or best out of a specific product.
Optimization is often necessary not only for achieving the best possible user experience, but also sometimes because of known issues in a device. And while the main financial reason for porting the application to a new platform is to make the application available to a larger customer segment, the reason for optimizing is to make the application more desirable for a smaller customer segment by taking full advantage of the target device's capabilities.
Once again, the focus should not be on just making the code run better or faster on a certain device, but on making the user experience better. If a consumer has invested in a mobile device with special features, such as rich sounds or light messaging, it is reasonable to expect that s/he would also be more interested in applications that support these special features. After all, the user has chosen the mobile device for a particular reason. Conversely, it can be frustrating to have a music phone with applications that take no advantage of the possibilities, but play ear-splitting noises instead.
In a way, the usability design of a mobile application can be divided into platform-independent knowledge and platform- and device-specific knowledge. The platform-independent “usability engine” consists of knowledge about users and user groups, their motivations, and their needs, which are hopefully recognized in the application design. User-centered design methods such as task analysis and expert reviews can be used in developing the usability basis of the application(s).
The platform-dependent "usability engine" is based on complying with the user interface style (and usability guidelines) of the platform. User-centered design methods such as usability tests, group tests, and expert reviews can be used in developing the platform-dependant usability principles for the application(s).
A big problem in mobile development is that there are a vast number of mobile devices and user interfaces. Porting one application to different platforms and optimizing it for different devices can mean almost a hundred different versions of the product. If the application is localized to different languages and cultures, the number of versions grows even more. It is no surprise that mobile developers are striving to use tools that enable automated software testing of different versions. But how do you user test 300 different software versions? The answer is, you don’t, unless you do it wisely. Fortunately the nature of user testing is inherently different from software testing, and often you do not even have to consider testing all product versions with real users. The key is to focus the tests on relevant product versions.
For example, you can start by testing the application with only the most common device from each platform. Later on, you can conduct more focused, in-depth tests on those versions with notable differences. Different language versions should be tested with native users. As time goes by, you can gather a database of user studies that cover all the main products, devices, languages and cultures, user groups, and technologies.
To avoid repeating mistakes, take full advantage of previous user tests when porting new applications to the same platform. One key issue in developing usable mobile applications is planning how usability information is used in development organization. Usability problems that are identified should be fixed not only in the current product version, but in all other relevant product versions, too. Some usability problems need to be fixed at the platform level, and some at the application engine level. Sometimes usability problems may even be identified from other products.
References:
Develop/Optimize Case Study: Macrospace's Dragon Island
Developer Platforms: Guidelines For Testing J2ME™ Applications
Understanding Nokia Develop/Optimize
Usability Guidelines at Forum Nokia Usability Web site