Most businesses today want mobile apps for iOS and Android. They don’t care too much about the other popular mobile platforms because these two giants let them reach nine out of ten users.
However, when you are building an enterprise mobile app for a company that has implemented BYOD and needs to support BlackBerry and Windows mobile devices too, you are forced to develop four separate apps. Or, when an app achieves universal popularity, most app owners want to make sure that they dominate the same category on all mobile platforms.
Having flirted with website and web app development before hitching my cart to the mobile app development bandwagon, I felt that I should give a shot to cross-platform mobile development. When I started out, my web development skills were a little rusty while I was pretty good at iOS app development and average at Android app development. I chose PhoneGap because it supports a large number of development platforms: iOS, Android, BlackBerry, Windows, Symbian, and even Tizen.
Beginning PhoneGap Development
Once I was up to speed on HTML5, JS and CSS3, I had to learn how PhoneGap worked. I spent a lot of time reading and skimming through the documentation, app building and GitHub pages for PhoneGap.
Most web developers don’t realize that you need to put in a lot of effort to understand how PhoneGap works. But you won’t lack for resources and sound advice from the community while you’re at it. While developing my first app (for iOS, Android and Windows), I ran into many problems. Some of them arose from my rusty skills, but I felt few had a lot to do with the nature of cross-platform development.
These are the most common problems that an app built on PhoneGap can run into:
- Mobile apps with numerous graphic elements or animations may slow things down on some mobile devices and make the app browsing experience a little choppy. Even with general apps there is a noticeable lag as most mobile phones are not fast enough to run hybrid apps. Android, especially, with its numerous versions of OS and devices, is a bigger nightmare than usual.
- The app cannot take the benefit of ALL the features of a phone. And trying to use device features requires a lot of hard work. Also, if you want to build an app for the latest version of any operating system, you need to wait for the PhoneGap update. It is bound to stay one step behind native platforms.
- The code you write runs everywhere – but you also need to do some coding and tweaking specific to different mobile platforms. This is pretty time consuming. Also, for newbies, fixing (and even identifying) errors can be a huge headache.
- I did not enjoy building and deploying on PhoneGap as I have to wait for PhoneGap to finish building. It can take from 2 to 20 minutes – if you’re impatient, this is a problem. Otherwise, it is not much of an issue.
While these are pretty common problems, there are solutions to most of them. And if you become an expert at PhoneGap development, there are many obvious advantages:
- You write one code, tweak it a little for all operating systems, and you have apps for 2-6 mobile platforms.
- PhoneGap is better than most other platforms that offer multi-platform development capability as it enables expert developers to support native features and functionality in the app.
Should a native app developer try hybrid app development with PhoneGap?
I, personally, did not have a very good experience with PhoneGap (although I have an app with PhoneGap that works okay on three mobile platforms) as my web development skills needed some work. So, it took too much time to develop, debug, submit and re-submit the app for approval. But as the demand for apps that run across mobile platforms increases, it is important to build expertise in development with a multi-platform app development technology.
If you are already into native app development, you know Java or Objective-C; those skills will also be needed.
You first foray in PhoneGap app development is bound to be a little deflating (as it is difficult to get good results without delving deep in the technology), but it can help you cut down the time and effort for development once you get better at it.