Introduction
Apache Cordova (known by many as "PhoneGap") is the most widely used by developers to create native applications. Cordova/PhoneGap developers write their mobile applications using HTML, JavaScript and CSS. These assets run in a "WebView" within a native application container on the target platform. It is essentially a web application packaged within a native application container where your JavaScript has access to device-level APIs that normal web applications would not. These include such things as: The camera, accelerometer, LEDs, GPS etc.
Pros
- Regardless of server side platform & language experience, a TON of developers have experience with HTML, JavaScript and CSS. Apache Cordova allows developers to immediately leverage existing skills. The value of this is enormous ‚ as it reduces training in a new language and can readily adopted.
- Cordova apps install just like a native application, and are also able to gain app store discoverability.
- Cordova is guided by a plugin architecture, meaning that access to native device APIs can be extended in a modular way (developers love this). There are a lot Cordova/PhoneGap plugins to choose from ‚ enabling developers to focus on the web-based skills they already have. (This is a weakness as well, more on this under cons)
- Cordova is open source and free, so there are no licensing costs.
Cons
- Being free is not a guarantee of success. In fact, the emergence of PhoneGap Build and Icenium are clear demonstrations that a —bare bones— Apache Cordova is incomplete. The strength of being open source ‚ and leveraging the talents of a wide array of contributors is both a blessing and curse. If you need to extend your app with a custom Cordova/PhoneGap plugin, odds are you will find one. Yet it may be out of date and not support the target platforms you need. This is a common problem among all freeware.
- The plugin architecture works well if you can find the plugins you need or if your web developers are capable of changing gears to write their own custom plugin(s) as needed (like always). However, odds are that you chose Cordova, in part, to avoid the need for specialized native platform skills.
- The performance of Cordova/PhoneGap apps has often been criticized. Native UI will always outperform a hybrid solution, but improvements in device hardware and WebView implementations have narrowed the gap. Web developers will need to pay close attention to performance, which means their knowledge of profiling tools as well as which web UI frameworks are mobile-friendly is essential.
Conclusion
As you can see the Pros definitely outweigh the cons, and it was difficult to find true cons. Most of them are true for most other development languages and environments, and are obstacles that separate the fake from true developers. Having just getting started with taking my web talents to Phone Gap in order to assist in my first app, I can tell you from experience it's a pleasure to work with. Also, it's already installed on Mac's and can simply be activated (given that you have NodeJS installed) via terminal! Like with any new environment or development tool, do your own research and meet your own conclusions, but in the app development world, and having come from a Web Development background, there is no better choice.