Mobile app dev lesson 1: Focus on user experience
"The first [guideline] is reduce navigation that the users have to do by taking them directly to the content that they're working with," says Adam Blum, CEO of Rhomobile, makers of the Rhodes development framework for mobile applications. In a CRM application, for example, take users right to their contacts instead of making them wade through lists and tasks. Also, try basing the application's navigation on what users did the last time; go with defaults.
Nokia, which has built smartphones based on the Symbian platform and is switching to Windows Phone 7, offers templates to assist in putting icons on screens. "[The icons] scale to the different screen sizes," Fabbricino says. Developers must be concerned with integrating UI and application logic, as well as remain mindful of what an application is trying to do. "You don't want to overload information, overload user interactions."
At Callaway Digital Arts, which builds multimedia storytelling software for Apple's iPhone and iPad, applications are tweaked for the different devices, such as offering shopping lists on the iPhone, which tends to be used in more on-the-go settings than the iPad. "We're not just creating a single experience across all iOS platforms," says Nicholas Callaway, president of the company. Callaway focuses on optimizing its applications in the rich media space. "That's part of our art: knowing how to deliver the richest UX [user experience] and to push the boundaries of what the devices can do but still have them be [usable and reliable]."
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.