Simon St.Laurent believes that the iPad is a great opportunity for Web developers. It seems somewhat counter-intuitive. Shouldn’t Web developers be cheering for platforms such as Palm’s WebOS or Symbian, both holding great promises for Web technologies and basing their applications on HTML, CSS and Javascript?
Why cheer upon seeing the iPhone sales skyrocket in the last quarter, or the latest Android device releases boosting that platform, too? After all, both Apple and Google push their own development platform, with their own SDK, programming language alien to a lot of Web developers (Objective C for the iPhone OS, java for Android), and so on.
At Pheromone, our developers are clearly gearing their expertise towards Web technologies and open-source platforms. A few of us do know Java but would rather never need to use it again. As for Objective C, the verdict seems to go from a puzzled “huh?” from most developers, to “this is just wrong” from C++ veterans. Clearly we are not experts in the iPhone or Android official development kits, nor, I suspect, will we ever be. And yet, we are loving the platforms, and having a great time building applications for them.
The key to understanding this paradox is WebKit, the open-source web browser engine that happens to be deployed on almost all the major mobile platforms. Granted, experts will tell you that “not all webkits are created equal”: there is not a single webkit, and each device will have a slightly different instance of the engine, with its own bugs and odd behavior sometimes. Yet, WebKit happens to implement most of the APIs that are being added in and around html5. Geolocation? check. Notifications? check. Local storage? check.
Open standards and Web technologies being the best solution for cross-platform development of applications or interfaces around online data is nothing new. What is rather new, however, is the ability to marry this cross-platform compatibility and ease of development with the business incentive presented by the Apple App Store, Android Market, Blackberry appworld and others: package an app, upload it, and start making money. This is the nifty trick made possible by the likes of PhoneGap or Titanium.
Technically speaking, these two are fairly different. Titanium puts more effort into compiling your Web application into native code and native UI controls, but is still limited to iPhone (and now iPad) and Android. On the other hand, PhoneGap seems content with providing native capabilities through a powerful javascript library and compiling a thin wrapper around your web application – but it does so for many more platforms than its main competitor: iPhone, iPad, Android, Blackberry, Symbian, WebOS, …
I tried both tools in the past few weeks. Originally, I was more attracted to Titanium, with its better documentation, cool UI, excellent demo and promise of native UI controls and extensibility. It just looks and feels more… professional. Eventually however, I was a little put off by the rather “small” number of platforms supported and the presence of a centralised tracking (analytics) system I could not switch off. PhoneGap may have slightly poorer documentation (they say they’re working on it) but the promise of real multi-platform worked for me. We may just end up switching from one to the other depending on the needs of what we are building.
How about you? Would you rather use native SDK development for your mobile applications? Have you tried any of the up-and-coming web-to-mobile frameworks?