Analyzing PhoneGap for mobile application development

Recently I was looking at how we could leverage our existing HTML5/CSS3/JavaScript code and skills to create a mobile application that we could easily deploy to the various stores, mainly Apple, Google Play and Windows.
A few people suggested PhoneGap. But before we jumped all in into PhoneGap development, I wanted to analyze and make sure it could be the answer to what we were looking for.

I put together this very brief analysis of PhoneGap for mobile application development. Though PhoneGap is open source and is advertised as standardized APIs without requiring native SDKs, for all practical purposes I found there were a lot of caveats.

Pros Cons
Leverages HTML5/Javascript/CSS3 skills of developers Need to pay attention to lack of certain features in mobile browsers e.g. SVG
UIWebView control allows using PhoneGap API irrespective of underlying mobile platform
  • Performance of the app using the UIWebView control is slightly lower than using native code app
  • Look and feel of different controls within the UIWebView control differs among the different platforms
  • Since the UIWebView control loads resources locally, cross domain policy needs to be considered for resources located on server
Testing and debugging using desktop browsers and mobile simulators Different IDEs are required for development for each mobile platform
Can copy HTML/CSS/JS source code files for each platform to different codebases thus effectively sharing code
  • Separate codebases still need to be maintained for each platform build
  • Code is not compiled into native language
For builds, Native installers created using target platform tool chain (native SDKs) or cloud based PhoneGap Build (not free)

 

In detail, for each PhoneGap platform:

  • You can develop Android and HP webOS apps on any of the major desktop operating systems – Windows, Mac OS X, or Linux.
  • You can develop Symbian Web Runtime apps on any OS, but you can only run the simulator from Windows.
  • Developing for BlackBerry is similar – the SDK can be installed on Windows or Mac OS X, but, at the time of writing, the simulator only runs on Windows.
  • The Windows Phone 7 SDK only runs on Ubuntu Linux, versions 10.04 and above. (? Unverified)
  • The iOS SDK requires the latest version, 10.6, of Mac OS X (and, according to the OS X EULA, a Mac computer as well though some people claim to have installed it virtually).

 

In short, with a Windows developer PC, a mobile application can be built for multiple platforms including Windows Phone, Android except iOS.

 

Software Requirements for development using PhoneGap for the 3 major platforms

Dev requirement Windows 8 iOS Android
Hardware Windows PC Mac (Windows PC possible if able to install Mac OS X virtually, YMMV) Windows PC or Mac
Operating system Windows 8 Mac OS X Windows, Mac OS X or Linux
SDK Windows 8 store JS templates iOS 6 SDK
  • JDK
  • Android SDK
  • Android Developer Tools
  • Android Platform
  • Android Platform Tools
Recommended IDE Visual Studio 2012 Express or higher XCode 4.5 or higher Eclipse Classic or Higher

 

Some interesting articles/discussions regarding PhoneGap (not in any particular order)