Mobile app dev lesson 2: Deal up front with memory and bandwidth constraints Memory and network bandwidth issues abound with mobile devices. "The biggest [difference] that we see with our customers and with people doing the transition from desktop to mobile is that these mobile devices really do not have a lot of memory," says Miguel de Icaza, vice president of developer platforms at Novell, which offers tools for building Google Android and Apple iOS applications.
Although a typical PC can have 8GB of memory, a smartphone might have just 128MB, he says. Thus, developers loading 100 images onto a phone would run out of memory. "One hundred images would require you to have a smartphone that doesn't exist yet." But accommodations can be made: "Instead of having full-resolution images, what [developers] need to do is have smaller-resolution images," he says.
Network connectivity for smartphones and tablets incurs limits on downloading, de Icaza says -- data caps, typically. "The application developer really shouldn't be saturating the network connection with thousands of requests for images," Callaway says. The bottom line: "Memory and space and battery life are some of the parameters within which you have to develop all your apps."
Mobile app dev lesson 3: Choose carefully between native and Web development Developers must decide whether to build applications leveraging native capabilities and have the application downloaded onto the device or to create Web apps that run via the mobile OS's WebKit facility. With the latter, they appear to be stand-alone apps even though they use the WebKit browser services.
"This is something [in which] a lot of vendors look very carefully at the trade-offs," says RIM's Lessard. Web-based development is often less expensive and not as complex. "However, the trade-off tends to be that you may not be able to deliver the kind of experience a user might expect." For example, in Web development, location-based services and touch interfaces might be shortchanged. It is difficult to achieve fine-grain control over touch events when doing Web development, he notes.