I thought to put down some of my thoughts about PhoneGap as it might help somebody to save his/her time.
In last one year I have tried a few times to learn PhoneGap, to no avail. I have been doing web and Android development for a few years, and not new to these tools, but somehow this PhoneGap thing never worked for me.
The biggest problem I have faced is the obsolete and outdated documentation, examples and tutorials. Old examples and old code which just wastes your time and gets you nowhere. I wonder how they even roll out any new change without documenting it first.
The very first problem starts with the terms ‘phonegap’ and ‘cordova’. As of writing of this post, which is 30th of April 2013, for a beginner there is no clear mention of what is the difference between cordova and phonegap. It has been almost 2 years that Adobe acquired PhoeGap and renamed it to Cordova (why, I would ask) but they failed to mention it anywhere in the documentations.
in early 2012 I downloaded phonegap and it was cordova version 2.4 even back then. Yet even today when I find tutorials, they refer to it as phonegap and not cordova. This shows how old these tutorials are, and keep you wondering if cordova and phonegap the same thing.
I also found 4 books, two of them published in 2012, and still no mention of the term Cordova except in one of them, and only at a few places because for the rest it is still calling phonegap-x.x.js.
Also, in the latest code as of today, i.e. cordova-2.6.0, the app is initialized using some app.initialize() method in the example which comes with it. However I failed to find anywhere this method documented. All the books and examples are still starting the apps with old <body onLoad=”init()”> way.
Not only this, I also copied pasted codes to my test projects, and they didn’t work. Also trying to switch from app.initialize() to <body onLoad=”init()”> caused the example to fail to do anything.which according to its brief online mention says it should do the same thing.
Now the books, when they say to unzip the cordova-2.x.x-ios.zip file, you wonder where this file exists, because it simply doesn’t exist any more. Makes you wonder how to learn this thing at all. A careful look also shows that in the books or documentation it is looking for this file in folder iOS, notice capital letters, however in the download the folder is ios with small letters. This means somebody updated the downloadable files, removing the ios related installer, but didn’t mention anywhere how to go about with it now.
Given all the frustration and waste of time due to above, I have decided not to waste time on PhoneGap and go with Objective C. Take a longer learning path but do it the right way. As for Android, I can program it native anyways. And as for BB, will simply outsource it to do it in its own C++.
As an end note, for quality and performance oriented app, using PhoneGap, AppMobi, App Maker, Appcelarator and any similar tools for non-native development will only disappoint you in the end. For real work, you have no choice but to go native.