Enhancing the Mobile User Experience With Speed

July 28th, 2011

There are many factors to take into account when thinking about how to enhance the user experience for a mobile application or a mobile based web site. It’s important to keep in mind that a mobile device will provide an entirely different user experience compared to a desktop computer. Hardware limitations, screen sizes, input methods, connection speeds, user environment and more must carefully be examined to determine what strategies to use to provide a good user experience. A good idea implemented with a poor user experience will invite negative feedback and could potentially cause the project to become a failure. While there are many areas that we can improve to enhance the mobile user experience, let’s focus in on speed.

Speed can be a major determining factor in whether you provide a good or bad user experience. High speed internet, constantly improved desktop hardware and our increasingly busy schedule has led many to develop a great deal of impatience with technology.

———————————————————————————————————————————————
To illustrate user impatience, please wait 60 seconds before proceeding to the next paragraph.
———————————————————————————————————————————————

When forced to wait an extensive period of time, many think ‘My computer at home doesn’t make me wait this long, so why should my phone?!’. They then look for a speedier alternative. Two general strategies for enhancing the user experience in this regard involves real speed and perceived speed.

Real speed is just what it sounds like. It is the actual time it takes to interact with the app, download data or process data. This speed can vary greatly depending on how things are developed. One way to improve here is by optimizing data. Images, for example, should always be optimized for a mobile device to reduce file size. Returning data from an external database? Don’t dump the entire database. Reduce the size of the data by only sending what is needed.

Many try to cut corners because something is already prepared for a desktop environment. So instead of tailoring things for the mobile device, they try to save some development cost by utilizing what they already have. However, this approach can end up providing the users with a slow user experience.

Perceived speed is how fast the user thinks things are going. We might optimize our data to the largest degree possible. However, at times the user might still feel like things are going slowly. There are a few things we can do to make the user think that things are moving along a bit faster than they really are.

First of all, always display a progress indicator or spinner. This lets the user know that the app isn’t just hanging while the data is downloading or processing. If possible, include more details like ‘Downloading files 9 of 14’, or something similar.

Another strategy is to let the app show the data that is available while the rest is downloading or processing. For example, imagine an app that downloads several rows of data. Each row contains an image downloaded from an external server. Rather than wait for all the images to fully download before presenting the data to the user, show the data that is available and download the images asynchronously.

Finally, a third strategy is loading data that the user will request before they actually request it (think Instant Pages). An example of when we might use this is in an image gallery. The user is only viewing one image at a time. However, we know what images are before and after what they are viewing. So we begin the download process of those images without the user even realizing it.

These strategies above do not increase the real speed of our application. It still takes the same amount of time to download the data, to process it and to display it for the user. What we are changing is how the user perceives the data flow.

By utilizing these and other strategies, we can give our mobile app a much more pleasing user experience. In conclusion, don’t be slow to adopt these approaches.

Jacob Haskins

Jacob has always had an interest in learning and problem solving. Whether working with Objective C, PHP, Actionscript, FLEX, JavaScript or any other language, he finds that there is always something new to learn. He enjoys development projects most when getting to use new technologies.

Leave a Reply

Categories