My friend Marston asked last night if PhoneGap was a better solution for cross-platform mobile app development than Rhodes. We ended up discussing PhoneGap a bit and I thought it would be useful to share it here:
Marston: I’m looking at both solutions, but am leaning toward PhoneGap as it seems to be more complete and has a good future roadmap.
I’m thinking of using it for some general apps, less about all sorts of fancy gps + gyroscope + 3d uber gaming apps. More for mobile apps to integrate into web app API’s etc.
I’m obviously looking to use it because it supports so many platforms. How has you found it so far? I guess the other main thing I’d love to hear is what limitations, bugs and overall #fail you’ve run into with it.
Me: If you have the time to learn a native platform, do that. You’ll get better performance, particularly drawing user interfaces and processing any sort of noticeable amount of data (ie maybe 100+ kb).
That being said, you want a cross-platform framework the benefit of those that compile to native code isn’t as cut-and-dry. I’ve never heard of Rhodes but it sounds nice. Titanium is very popular with some developers and seems to work quite well on iOS but I’ve heard that their Android support lags a lot. Generally, and this is the reason why Apple doesn’t like them (though they don’t seem to be rejecting Titanium apps [oh, and PhoneGap is basically unofficially officially blessed]).
Marston: What are your thoughts about combining something like phonegap with a framework like JQTouch (http://jqtouch.com/) or Sencha Touch (http://www.sencha.com/products/touch/)? I see them listed on the PhoneGap tools page. Or is there native functionality in phonegap which takes care of this and makes it easy to make really nicely design frontends?
Or would those frameworks be semi-competitors to PhoneGap and have overlapping functionality?
Sencha Touch is based upon JQTouch (and ExtJS) and was the cause of my miseries the last few days. It’s really slow on most Android devices and is generally very heavy and verbose. Only on the Samsung Galaxy S and Galaxy Tab (the tablet!) did it run well. Oh, and Sencha is NOT an open source library: there’s a bunch of bullshit about licensing and forum access and such. JQTouch is quiet these days as the founder got hired to write Sencha but apparently there is a new lead developer.
jQuery Mobile, on the other hand, looks quite nice. It’s part of the official jQuery project and it doesn’t seem too large (yet). iUI is old but still popular, and I know some of the PhoneGap guys have made some decent minimal UI frameworks that are listed on the tools page (MagicFramework, maybe?).
But yeah, if you’re going for that native look you’re going to want some sort of UI framework, if nothing else to mimic fixed position title or navigation button bars – fixed positioning isn’t possible on mobile and has to be hacked – you want a framework to avoid writing that code yourself.