It totally depends on your needs
After publishing my first app several months (native Android, database driven, restful connecting app), I decided to rewrite my app by using phonegap (since I want to clone the app to iOS, so instead of doing it in ObjC, why not javascript ?)
When on Android, it costed me, a Java developer, 3 weeks to learn and code everything from scratch. Banging my head to the wall several times for how to make the ListAdapter sync with the Restful Service from my server, how to theme the app (quite hard in my opinion, especially when it comes to special effects like transparent, border,...), and also, how to structure your code base effectively (if you are familiar with Java, you will find that all the classes are very coupled to each others, since that is what most of the tutorials write about)
When on Phonegap, everything is done in 1 week. Css, html, with onsenui
and angular
make the GUI development just like about 1 st year student 's assignment and theming is just a piece of cake. I don't need to run it on the real device, just use browser during the development, change code and refresh are enough. Angular
provides 2 way binding with the DOM, and this makes a huge awesomeness when collecting and showing data. For example:
<ul ng-each="for sentence in sentences" >
<li>{{ sentence.title }} </li>
</ul>
When the variable sentences
is changed (retrieved from server), the DOM is automatically changed as well. However, javascript is only javascript. I found myself struggling many time when debugging the app, especially when doing the MapReduce functions with PouchDB (big mistake, have to go back to cordova-sqlite-plugin
tonight) and most of the time, I have to read the log in order to figure out the problem (Chrome 's tools and Firebug cannot catch the breakpoint). Also, it is hard to restructure your app (javascript, again) so if you don't organise carefully your code base at the first sign, you might end up with a mess (and debugging is a real pain, again). PhoneGap is also Web based, so sometimes, you will hear that "because on this platform, it does not support that bla bla bla" (e.g, localStorage
) and you have to stand for it if you cannot find any good plugin.
Conclusion Except for the limitation of the web-based storage, PhoneGap works quite well with the database driven, simple GUI app (and most of the database driven apps currently has a simple GUI anyway). If you gonna develop that kind of app, then stick with it