PhoneGap: good or bad?

There exist a lot of mobile app development frameworks. Cross-platform tools reduce barriers to entry and democratise app development, by allowing developers from any language (HTML, Java, C++), any background (hobbyist, pros, agencies, corporates) and any skill level (visual designer to hard-core developer) to build mobile apps. Just imagine that by using a cross-platform tool and covering just two platforms such as Android and iOS, you will cover 91% of the whole smartphone market. Sounds appealing:)

PhoneGap and Sencha are the most widespread: they are used by 32% and 30% of cross-platform developers, irrespective of their primary tools. I`m suggesting to have a closer look at PhoneGap which turns to be the most popular tool.

How it works

The cross-platform capabilities of PhoneGap are reached this way: a native project is generated, distinctive for each platform, which includes a browser (a native webView component) as the main component. This browser is able to display HTML/JavaScript code as a usual web page. The file system of this project acts the part of a file server, which gives access to the page. Also there is an object that allows PhoneGap to standardize the access to native features of mobile devices running the supported operating systems, such as camera, compass, accelerometer, contacts etc.

Good moments

-The most obvious one is cross-platform capabilities. Currently PhoneGap supports the following platforms: iOS, Android, webOS, Windows Phone, BlackBerry, Symbian OS, Tizen.

-PhoneGap app is written upon HTML, JavaScript and CSS, with the opportunities of using numerous external libraries;

-Adjustments can be performed via browser; remote adjustments can be performed on a mobile device via “weinre”.

A blot on the landscape:)

-Many users complain of the irresponsiveness of PhoneGap apps. Here I`m talking about one of the specifics of the PhoneGap development: the 300 millisecond lag between touch and click event on touchscreens. The solution to this problem can be easily found around the Internet. There are several JavaScript libraries, and their work principle is the same – tracking such events as TouchStart and TouchEnd – and at the moment when the latter is done, runs a click event.

  • Users feel uncomfortable when touching a button and it doesn`t work. This is one of the most widespread bugs in PhoneGap apps. This bug appears due to improperly created interface, and it raises the problem of touching. The fact is that we look at the touchscreen at an angle and the visual contact area between the finger and the screen differs from the real contact area. This can be corrected quite simply – proper layout of the app page. For example, the area of response can be made bigger than the button itself.
  • On average, an app has 5 to 15 pages. But unfortunately, JavaScript apps have no mechanism to store and transmit data between the pages. One of the simplest ways to solve this problem is using one-page apps. These are apps that display the same page, which has changing content. This approach however causes lags in the app.

-Nevertheless this is a cross-platform tool, UI should be optimized for different platforms. But it’s much faster, than creating another native app from scratch;

As you can see, these drawbacks are not quite ‘drawbacks’ in their nature, but rather technical conditions of PhoneGap, which you should consider, like in a usual development process for any other platform.

Certainly, PhoneGap is not a “miracle cure” but can be a good way out if wisely used. And what are your thoughts on PhoneGap?

Anna Kozik

Business Development Manager

%d bloggers like this: