Many end users now visit their favorite websites via mobile browsers and mobile applications, which can sometimes present a challenge to developers, particularly given the new data constraints placed on end users by their mobile providers. But there are some best practices that can help developers lower the amount of data their applications use.
Kurt Gerstner, VP of application services at Unisys (an IT services and solutions company that manages “mission-critical environments” for enterprise organizations), recommended preloading any graphics, images or icons directly to the application so that when an end user downloads it, the application package is complete.
If all application graphics are part of the initial download, Gerstner explained, the application would not have to make additional calls to retrieve the images from the Web, thereby reducing the amount of bandwidth it uses.
He also said developers need to be aware of the amount of device memory used by individual applications.
Gerstner said mobile phones, despite their new capabilities, improved battery life and slim cases, are still only carrying about 512MB in memory, which is something that can be filled very quickly by applications or mobile sites that cache a lot of data.
Streaming content in applications, he said, is often what pushes the data usage for end users over the edge because of the heavy bandwidth and memory needed to generate the images.
Gerstner suggested that developers prompt end users to download the content and then view it on the go, similar to music services such as the iTunes store. He also said that using preview versions or lower image quality will also reduce the amount of data a streaming application uses. This doesn’t reduce the user experience, however, because the devices are much smaller than desktops, so end-users won’t notice a huge change in the image quality.
Part of the requirements management process should include a time to discuss who will be using these in-house enterprise applications, like a system that a company uses for human resource management, and on what devices, according to Gerstner. For example, if an insurance agent is using an internally developed application to send and claim images and information in the field, his data plan should be larger than the on-site representative who might be viewing the application on a mobile device once or twice a year, or the HR representative who will mostly be using in-house applications via a desktop.
Gerstner’s tips apply to a native application, but Antonio Vitti, cofounder and CEO of Mobile Spinach (a local deals site that doubles as a mobile Web application and platform), believed that creating a mobile Web application is the best way to reduce the amount of data—and development work—an application requires.
“A mobile Web application inside the browser looks and feels exactly like a native app,” he said. “It gives the end user a seamless experience. When an end user uses Mobile Spinach, they don’t leave the host application, and we provide a co-branded experience so that it integrates into the Web browser without a lot of development work required. Developers also have access to an API and SDK, should they wish to customize further.”
For developers who wish to create a mobile application, in order to reduce the amount of data their application consumes, Vitti said using a development tool like jQueryMobile or SenchaTouch to create an HTML5-compliant mobile Web application is the best idea.
“We wanted to minimize the load time for our application, and so we used jQueryMobile to pick and choose what portions of the databases we wanted to download,” Vitti said.
He added that Mobile Spinach locally caches images on the mobile device so as to reduce load times when the application is loaded in the future, and it also compresses the images to increase the uptime of the initial download.
Another feature of creating a mobile Web application is that one can have multiple iterations without going through the Apple App Store approval process, and an app can be supported on multiple devices and operating systems, Vitti said. He added that creating one codebase makes the application more manageable and reduces maintenance for the development team.