5 ms·
Depending on what you need your application to do, I would definitely go down the web app + PhoneGap route. It's extremely easy to develop and test the app in
by semanticist 16y ago
Depending on what you need your application to do, I would definitely go down the web app + PhoneGap route.
It's extremely easy to develop and test the app in a webkit browser, and then in the relevant phone simulators, and PhoneGap will very very easily wrap your web app into a native application - it also provides extra JavaScript APIs to access some hardware features, like the camera and geolocation and so on.
You can use any of the existing common mobile web app frameworks (I actually wrote about my experiences with several of them just last weekend: http://semantici.st/archives/223:ios-webapp-frameworks-roundup http://semantici.st/archives/223:ios-webapp-frameworks-round...), or do something entirely custom. You can certainly get a 'native enough' UI experience on iOS - I've not tried Android yet.
However, if you're planning to do anything that's really performance-limited this approach won't work. The performance is exactly as you'd get in a normal mobile web app, and if you're expecting to do, say, gaming or perhaps something complicated using the camera (like 'Layar' or 'Word Lens' type AR), you'll need to be writing native code.
- whatever_dude 16y agoHow is performance in the browser for PhoneGap applications? I'm not expecting anything native, but I tested some of the sample apps on my Android phone and they were... /underwhelming/ - clicking anything would take around 3 seconds just to switch to a new view, etc.
- semanticist 16y agoMy experience - at the moment - is specifically with jQTouch and iPhones. I've found that it performs well for simple views, but haven't tried anything complex. In general, PhoneGap's going to perform the same as if you tried it in the phone's browser. From some stuff I tried before, Android browser performance was noticeably slower than iPhone browser performance, but not so much as to make it unusable. I suspect it'll depend heavily on the device you're testing.
- parad0x 16y agoI totally agree with this approach. It's what we use, and it's really quick to get started with.
- matty 16y agoTo get an idea how terrible PhoneGap can work in practice, check out the O'Reilly iPad app. The performance just isn't there for some applications.
- wrs 16y agoNot just the performance. A lot of the UI behavior was just wrong. Scrolling in particular was a disaster. Maybe they were using PhoneGap badly, but still--in a native iOS app it's quite easy to get scrolling to work right, and apparently in PhoneGap it's not.
- pedalpete 16y agono idea why you would get downvoted for this, it is clearly just a well stated opinion without flame etc. However, PhoneGap shouldn't be completely to blame for any one applications performance. If many PhoneGap applications performed poorly, then you could make the case. PhoneGap apps should perform as well as any web-based app on the same device. It is up to the developer to make efficient use of javascript animations, etc. in order to provide the best user experience.
- semanticist 16y agoRemember that PhoneGap really isn't anything more than a thin wrapper around a web app. Performance/usability is going to be heavily influenced by how you write that web app. I'd be more interested to know what web framework O'Reilly used that was slow, rather than it being PhoneGap per se.
- matty 16y agoThey used PhoneGap, in fact it was Nitobi that created the app. http://blog.safaribooksonline.com/2010/10/18/an-update-on-our-ipad-app-safari-to-go/ http://blog.safaribooksonline.com/2010/10/18/an-update-on-ou...
- semanticist 16y agoHave you personally used PhoneGap? It sounds like you don't quite understand how it works. For an iOS PhoneGap project, inside the Xcode project there is a 'www' directory into which you stuff your HTML, JavaScript, and CSS files from your mobile web app. PhoneGap then creates a webview and loads your index.html in it. PhoneGap by itself cannot be used to make any kind of an application. You also need a web app that works outside of PhoneGap (barring some PhoneGap-specific JavaScript APIs which you can optionally include to get access to device-specific information and features), and that web app presumably would either use one of the common frameworks or be written from scratch. Hence my point that what's more interesting to know is what web app framework they used, since that'll have a bigger impact on performance and especially usability than just "it's PhoneGap".