I've had pretty extensive experience with PhoneGap targeting iOS, Android, WP7 and WP8, and would neither recommend it or use it again.<p>This isn't so much a commentary on PhoneGap as much as it is HTML5 as an application platform. The bar for an application tends to be much higher than a web page; a fantastic web page may be pretty shit when compared against the app bar. Users have fundamentally different expectations around responsiveness, interaction and fluidity for an app that they had to go install as opposed to a site they visited.<p>Apps demands certain responsiveness, and replicating that behavior in HTML is exceptionally difficult and leaves the user with a bunch of UI behaviors that are close, but not quite right. Fluidity in user interactions, specific scrolling behaviors and so on that are exceptionally difficult to replicate across platforms.<p>A browser is also a pretty leaky abstraction. Targeting an API level in Android guarantees a specific set of behavior and functionality, but targeting a browser offers no such guarantees. The Samsung Galaxy S2 has a modified fork of Webkit that provides device-specific app problems within the same versions of Android, which make releasing a quality product pretty difficult to guarantee.<p>And, of course, different screen dimensions are a problem. Android devices can range from variable aspect ratios with a minimum width of 240px all the way up to 1280px. Responsive design is a bit of magic that can be sprinkled on to help make things work better, but that's a substantial bit of effort relative to using the native UI tools for each individual platform.<p>edit: Another challenge with PhoneGap applications is targetting iOS. HIG without designer assistance is a challenge, and this particular gem in the iOS approval guidelines is somewhat damning: 2.12 Apps that are not very useful, unique, are simply web sites bundled as Apps, or do not provide any lasting entertainment value may be rejected.
I'm using PhoneGap and I'll use it again.<p>Yes, a PhoneGap app may never run as smoothly as a native app but I'm not ready to sacrifice the advantages that PhoneGap approach brings:<p>- Using HTML/JS/CSS for all platforms
- I can strip all PhoneGap related calls from my app and have a mobile web app (which can run as a full screen web app)<p>And there're various tips and tricks to help you achieve almost native experience with PG (<a href="http://coenraets.org/blog/2013/05/top-10-performance-techniques-for-phonegap-applications/" rel="nofollow">http://coenraets.org/blog/2013/05/top-10-performance-techniq...</a>).<p>Imagine doing this in:
- ObjectiveC for iOS
- Java for Andriod
- C# for WP
- HTML/JS/CSS for having a mobile web app<p>Sacrificing some performance suddenly starts making sense.
instead of relying on HTML5 as your base tech stack for mobile apps i am much more a fan of approaches like xamarin (<a href="http://xamarin.com/" rel="nofollow">http://xamarin.com/</a>)<p>Basically you write the core of your app in C# and then use the bindings to the native SDKs of iOS, Android, WP to build real native UIs on top of it. Its a bit more work and you need to learn C# (which is awesome) but imo its an optimal compromise between speed of development/maintainability and the resulting user experience.
I don't have experience with Phonegap.
But jquery mobile was mentioned in the article and it's lack of "native" look.<p>If someone is interested in developing mobile apps using JS framework I would like to suggest dojox.mobile from dojotoolkit, it DOES have native themes ios,android 2.3, android 4.x holo (and maybe more), iv'e built a big mobile app with it and it worked like a charm - it's used directly + some of the app views are used in our native app(yeah we have that too) - to speed up development.<p><a href="https://dojotoolkit.org/features/mobile" rel="nofollow">https://dojotoolkit.org/features/mobile</a>
Yes, I would.<p>Most people don't realize, but most good native apps (not games) are only available on one platform. Only big companies and funded startups has apps on all platforms that are good.<p>Also, major problem with Phonegap is jQuery mobile and similar frameworks. they are heavy and makes app sluggish.<p>Android specially chrome browser is another major problem.<p>Despite all that, you can still create a very good app that performs well on all platforms.<p>I wrote this hacker news HTML5 app mainly for trial run to see if it is comparable to native apps. I only developed and tested on mobile chrome, ios and desktop browsers. r/windowsphone redditors told me it works pretty good on WP8 too.<p><a href="http://hn.premii.com" rel="nofollow">http://hn.premii.com</a><p>What I have learned?
- Android (chrome too), Firefox and Window Phone 8 - they need to provide better support for overflow scrolling.
- iOS - Remove 300ms delay for click for mobile apps
- WP8 - You can't fucking embed fonts in your phonegap app. It has to be hosted on remote server. Also you can't have ? in local urls (files that you are loading locally). It won't load those files.
Would I use PhoneGap again? Maybe. In my experience PhoneGap doesn't bring much to the table. The core UI element (a thin wrapper around the native WebView) is easily replicated in less than 100 lines of code. The plugins I used were very inconsistent between Android and iOS, so in the end I spent a lot of time either wrapping them in JavaScript to make them consistent, or (re)implementing missing plugins on one platform or another (or both where they were substandard).<p>Yeah, it lowers the barrier to entry if you are a web developer looking to wrap your web site up as a native app, but if you have even basic skills in your target platform(s) it's very easy to replicate its functionality and you get finer control over how it starts up (which was an issue for one app I made) and your distribution file will be much smaller.<p>Would I use HTML5 to create hybrid apps again? For the right project, absolutely. I think other people have mentioned that there's currently no "one size fits all" solution on mobile, and JavaScript frameworks, associated tooling, and mobile browsers are definitely still in their infancy when it comes to building full-blown client-side HTML5 applications. This is one space where things are happening incredibly quickly, and even with what's available today(1), you can get acceptable results. For a small-medium sized business that simply doesn't have the money to develop and maintain applications targeting every platform (including web) hybrid development is a very appealing option.<p>(1) disclaimer: after some investigation of Backbone/Angular I was unimpressed with their ASP/JSP on the client model and rolled my own MVC framework, but literally millions would say I was wrong to do so
Yes, definitely, unless we're talking about a very specific kind of apps.
PhoneGap is perfect for most apps out there even if only deployed to one platform.
I can code in both and can guarantee that setting up the same view takes 5x more time in ObjC than HTML (PhoneGap).<p>However, if you're looking at games or highsecuritt apps, you shouldn't even "try" with PG.<p>I think the author is spreading some erroneous information.
- the delay in tapping is only because he doesn't know how to properly make webapps (ie using clicks rather than touch).
- you do not "need" frameworks. only if you don't know how to do things yourself.
The author's comment that "Sencha does also come with a Look & Feel, but again, it’s the Sencha Look & Feel, not the Android or iPhone one" is false and also is, imo, a silly reason not to use Sencha. Sencha is entirely themeable and it even comes with iOS and Android themes that you can easily enable.<p>Sencha does, however, have a steep learning curve. I think thats probably why the author didn't dive into it deep enough to grok the themes.
Yes - I ran a trial a while back to see just how difficult it would be to get a common HTML/CSS/JavaScript set to work across iOS and Android browser variants for a non trivial graphical app. [It was quite difficult - much simpler to write 2 variants - but that was why I ran the trial]. Using PhoneGap the trial app is doing well as a free download in the Google Play Store and the Apple AppStore.
> It’s the details which eat up your budget.<p>The article hit that spot on. You'll spend more time getting the swipeable cell to bounce and swing correctly than working on the app. It'll be "cheaper" to work with someone who knows the native language. You could learn one of the native language and see if the app sells before jumping to another platform.<p>The bigger problem, IMHO, is that these sort of abstractions, like PhoneGap and Appcelerator (maybe Xamarin too? I don't have any experiences with Xamarin), most of the time will left you clueless when the app crashes.
Thanks for sharing this, Christian. Reading about your research and experience makes me want to give Cordova a try.<p>I'd also like to offer a small piece of feedback concerning your first paragraph, where you wrote "more worse": <a href="http://www.wikihow.com/Use-Worse-and-Worst" rel="nofollow">http://www.wikihow.com/Use-Worse-and-Worst</a><p>This is a minor thing that doesn't take away from your well-researched post in any way. I'm only taking the time to point it out because I enjoyed your writing, and I think all writers can benefit from a little feedback.
Check out <a href="http://www.icenium.com/" rel="nofollow">http://www.icenium.com/</a> by Telerik.<p>They just recently added support for Sitefinity CMS using Icenium as well.