With mobile trends taking over the tech scene, an overwhelming number of app development programs are becoming available. We thought it would be helpful to start profiling some of these that are garnering a lot of attention, to provide some additional insight.
What is PhoneGap?
PhoneGap is a mobile development framework built on top of the Apache Cordova platform, allowing developers who don't have experience in JAVA or Objective-C to create applications on the most popular mobile platforms (Android, iOS, Windows Phone) by using JavaScript, HTML5 and CSS.
While you could look at the PhoneGap application like it's a hybrid "web page" saved on your device, in reality it allows developers to reuse some of the most common mobile platform/device features like cameras, contact lists, device storage, and native notifications.
Building and compiling your applications is made easy with "Adobe® PhoneGap™ Build". No longer does it need to be done locally. You can upload the source of your application to their server with minimal configurations and, a few minutes later, you can download the installation packages for the platforms you selected.
Below is a chart showing which APIs are available for each device
What are the disadvantages of using PhoneGap?
PhoneGap is a wrapped "webview" (native browser) with a possibility of reaching native features of the device and platform. The HTML, CSS and JavaScript are not converted into native code; it's still a web page in a browser with some platform features, but the main difference is that it doesn't have the typical navigation bar and is in full-screen mode.
Below are a few issues we ran into while developing apps with PhoneGap:
Performance issues (DOM manipulation, data manipulation)
CSS is not the best substitute for native effects and animations
Apps that require rich animations and/or effects tend to be choppy and unresponsive (because usually the effects are done with CSS and JavaScript)
No possibility of creating background services
At times, the documented features of PhoneGap don't work as they should
Having a lot of graphical assets on your app can cause the performance to drop and, in worst case scenarios, even kill the app with a "memory limit reached" error
Each platform has its own webview that differs depending on the version and when targeting older devices some inconsistencies may become apparent
Not all native features are accessible through the Cordova platform
When should I use it?
PhoneGap is the right option for you if you want a fast and inexpensive solution for making simple mobile apps that can function on different platforms.
If you’re new to mobile development, but you have a background in web development, PhoneGap can be used as a gateway in learning how mobile apps work and might even push you to try your hand at creating mobile apps in their native language.
For a list of apps that were created with PhoneGap, check here.
Overall, PhoneGap is nice tool for creating simple and affordable mobile apps. However, you should never expect it to perform tasks it wasn’t meant to complete. If you begin to see that your applications are becoming bigger and harder to maintain, or start to have performance issues, it may be time to start thinking about moving to native app development.
*If you’re interested in learning more about mobile development, check out this blog post written by our Mobile Developer, Tadas Z.