I've been developing with Phonegap quite a while ago.
NOTE: this is all based on my own experience
Pro's:
- You don't need any 'native' experience, only intermediate 'web development skills' will be enough.
- For 95% you don't have to worry if it'll work on both iOS and Android, because Phonegap does all your worries, Just use the Phonegap Libs.
- As for my experience, for iOS it is really easy and fast to test.
- Another part of my team was building the 'android version'. Don't worry, you don't need to. That was a personal choice. In the end we merged everything together and only needed rechecks on a few things. (e.g. different layouts on different pages. See the Cons for more about this.)
Cons
- You have to think about the buttons you are going to use. Android devices have an own 'back' button. As for iOS you need to develop this in your application. This is a choice of your own, but you might ending up designing two pages.
- Performance wise Phonegap is not the best.. I cannot tell you the exact reason for this, core-wise. Our application didn't need a highly graphical interface, but Phonegap seemed to struggle with 'decent' webpages already. So, when you are planning to build a game or some app that needs high graphical performance, you'd better go native.
Then I did some quick research for you.
- Here I found a nice mobile framework comparison. (via this SO q.)
- Here is a really well-written article comparing Titanium, Phonegap and Native application development.
- Here are pro's and cons listed.
Binding all together, it really depends on the purpose of your application.
When designing a game or other application that needs high graphical performance, you'd better go native programming.
When you are planning to build a light weight application and you already have web development knowledge, I recommend Phonegap.