Most companies that want to create an iPhone app think in terms of hiring an iPhone developer, specifying the application, and having it lovingly hand-coded from scratch in the purest Objective-C with dazzling graphics and a lively, professionally designed user interface. That all sounds great.
Then reality hits. What did the first app cost to develop? What will it take to adapt to other devices in the iOS family? An additional 20 percent of the original cost for each variation? Well, maybe that's not so bad. So, what would it take to build a Google Android version? What do you mean, you have to start coding from scratch, and all you can reuse are the master graphics? And what about BlackBerry, WebOS, Windows Mobile, Nokia -- the same again? Ouch. Furthermore, that first iPhone developer may or may not have the chops to develop for all those other platforms. What are you going to do -- hire a developer per platform?
WebKit to the rescue?
The mobile browser may provide an answer. Browser support for extended features of mobile devices, such as the iPhone, iPad, and Android smartphones, is starting to be good -- very good, indeed. Two recent projects illustrate what can be done beyond what's already built into WebKit for mobile devices.
The jQTouch project, an extension of jQuery, presents native-looking UIs with animations, callback events, swipe detection, and support for location and other extensions. jQTouch was created by David Kaneda and is now being maintained by Jonathan Stark; it's offered under the MIT open source license.
Sencha is the merger of Ext JS, jQTouch, and Raphaël. Kaneda is now working on Sencha Touch, billed as "first HTML5 framework for mobile devices," and just released to public beta. Sencha Touch looks even more impressive than jQTouch at this point. It is offered under GNU GPL license v3; there is no commercial license option for the beta, but presumably there will be one for the released version.