Building iPhone Apps with HTML, CSS, and JavaScript
ofps.oreilly.com
ofps.oreilly.com
Out of desperation we even tried including a reverse proxy as part of the app to force meaningful image and css caching. Yes, the webviews were serving content from localhost, which was proxied transparently to our real servers and cached aggressively. Even that wasn't enough.
If you want your app to have a first class user experience, you have to go native. Maybe in the future things will improve, but right now users can tell.
It's also next to impossible to make a native feeling application. Scrolling, transitions, animations are all less fluid.
As for scrolling, a number of JS libraries/frameworks such as SproutCore now implement fake scrollviews using touch events and CSS transforms, transitions and animations. For example: http://touch.sproutcore.com/
As for the cameras, IIRC the Chrome team is proposing APIs for camera access to HTML5.
Can you name any good HTML/CSS/JS iOS "apps"? Either there aren't many (any?) or people don't know about them (which is basically the same thing)
edit: responses noted, guess I didn't read carefully enough
And if you feel the need to be on the app store, grab Titanium, use the Titanium.UI.webview control and point it at your mobile site. We're proably going to do that to make a few of our web apps show up on the stores, because we don't have the resources to develop native Android / IOS versions of the apps we are building. So we'll do Rails apps with HTML5 / CSS3 / JS and jQTouch or jQuery Mobile, and wrap them if people demand appstore access.
1. Apps that are simply web clippings, content aggregators, or a collection of links, may be rejected.
2. https://developer.apple.com/appstore/resources/approval/guid...
So far, I have downloaded several applications, mostly which I don't really need, to test the experience of PhoneGap based application. I should say, given the limitation, its quite impressive. However, if you are being really picky, its easy to notice if you have say, a list on the application, scrolling the list after the view is opened (even if its the second time), the scrolling isn't so smooth and stutter a bit.
Of course, for normal people (aka non-developers), they may not notice, much else know if it is a PhoneGap application or not.
For that matter, if I didn't remember I'd used "Add to Home Screen" to get the 37Signals Chalk app on my iPad's list of apps, I probably wouldn't realize it wasn't native.
http://itunes.apple.com/us/app/3-degrees-of-wikipedia/id3998...
The biggest issue was framerate, which when tracking 4 fingers at the same time, it drops down to 6-8fps on the original iphone. Tracking touches is more cpu intensive than actually drawing the sprites. I capped the framerate at 8 fps and slowed down the tank movement so that this effect wasn't noticeable.
The major upside is that you can test and develop in the browser every change you make without compiling anything, then dump it into the framework and push it to the device. This really speeds up development.