Mike Riley is a senior contributing editor for Dr. Dobb's. He can be contacted at firstname.lastname@example.org.
Hundreds of mobile developers and enthusiasts converged this weekend at the McCormick Tribune building on the Illinois Institute of Technology campus in Chicago to hear from other developers and industry thought-leaders about the current state of construction, deployment, and management of mobile applications.
Robert Fuentes kicked off the day by introducing his school, Flashpoint Academy, and talking about hi his previous team leadership at Motorola with the J2ME Lightweight Windowing Toolkit (LWT). He then briefly described HDMA, CDMA, TDMA, UTMS transports and Mobile OS's such as Cocoa, BREW, Android, Windows Mobile, JME (formerly J2ME) and Symbian.
Fuentes also touched on Augmented Reality apps and VR glasses connecting to the iPhone and Nokia N series of smartphones. He then shared some of his history at Motorola, and touched on the current Apple/HTC patent challenge and intellectual property issues in general. These discussions generated some passionate responses from the audience both for and against the protection and sharing of such intellectual investments.
I also attended a talk by Chris Grove of Keylime Tie titled "Strategies for Developing Multi-platform Mobile Applications". Grove advocates that mobile developers first ask themselves "Is it worth it?" He also reminded the audience that cross-platform development is hard, and to avoid the tendency to optimize code -- for the time being, anyway. Instead port apps with a proven market. The cons to cross-platform development include it will take much more time, skills, multiple markets/app stores, diminishing returns and low ROI. Which platforms to develop for is driven by where your profit will be coming from -- in other words, follow the money. Check distimo.com for current mobile app numbers by platform (according to the statistics that Grove showed, Apple is still by far the largest mobile app provider and will be for some time to come).
Other reasons to develop multi-platform apps include client-specific needs, specific platform feature requirements, developer growth and various toolsets. Developers also have to decide whether mobile apps should be native or web-based. If web-based, strongly consider using WebKit since 65% of existing smartphones use this browser technology (Windows Mobile nor Blackberry provide webkit support, although both can run Opera that does support richer HTML experiences). The "Ugly" for web apps is that it is difficult to achieve native look-and-feel UI emulation, sluggish performance compared to native analogs. Coding guidelines suggestions -- factor out common code, avoid native data formats, platform-agnostics formats, consider SQLite and standard media formats. PhoneGap has quite an extensive number of devices supported.