"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.
Mobile app dev lesson 4: Think about how to take advantage of location
Location services are becoming widespread in smartphones, giving developers something new to think through. "Leveraging location isn't something that most vendors would take into account when building desktop or Web applications," Lessard says. But location services enable developers to offer a more customized experience, such as with a search application that already knows where the user is or offering locally relevant advertising. Programming for location services is "fairly straightforward," says Lessard; developers just have to learn the new interfaces.
Mobile app dev lesson 5: Rely on server-side data synchronization
Proper data synchronization also is critical. "The way you look at synchronization is trying to rely on server-side policy," says Nokia's Fabbricino. "You really don't try to take care of synchronization from a mobile side because that's where you get corrupt data." Caching data on the device is another option.
Mobile app dev lesson 6: Design and code for touch interfaces
Developers and designers building applications for small devices have to grasp touch interfaces, which requires "more of an understanding from a design and UX perspective" than it does understanding code, says Tina Unterlaender, director of mobile at AKQA Mobile, which makes iOS applications. Developers need to understand user flows first, then translate the basis of touch interfaces into coding language.
Mobile app dev lesson 7: Don't get too dependent on hardware performance
Handheld devices are increasingly using faster chips and are beginning to support graphics processors and hardware acceleration, boosting animation rendering. But Fabbricino tells developers not to be overzealous: "You have to understand when a user will benefit from that experience and take advantage of the hardware that's underneath it." Applications could, for example, use animation to bolster screen transitions. But developers must be careful not to slow down an application through excessive or unnecessary use of such processor-hungry techniques.
Mobile app dev lesson 8: Expect users to make mistakes
Developers also should anticipate users pressing the wrong buttons, says Martin Wrigley, who chairs the Unified Testing Initiative, a consortium of mobile device and application makers. The smaller size of smartphones and the unfamiliarity most users have with touchscreens all but guarantee they'll make input mistakes, so applications need to both be more tolerant of slipups and help users recover without undue extra effort. To that end, the consortium has published best practice guidelines (PDF) to aid developers in avoiding what Wrigley calls "schoolboy errors."
This story, "Mobile development 101: What you need to know," was originally published at InfoWorld.com. Follow the latest developments in programming and mobile technology at InfoWorld.com. For the latest developments in business technology news, follow InfoWorld.com on Twitter.