Mobile development: Native vs PhoneGap - Who wins the battle?
A question that arises when a mobile development project starts to be outlined is whether the development should be native for each one of the supported devices, or to use a hybrid platform like PhoneGap. In this article we will explain the differences, not only from a technical perspective but also time and budget-wise.
Native mobile development – What does it mean?
Each mobile device runs a different operating system… you don’t know what that is? The operating system is the software that is “embedded” in the device, that lets you use its hardware (the camera, GPS, accelerometer, gyroscope) and gives you access to some stock functions, like an email client, a web browser and others. Here are some examples:
- Apple devices run iOS. This is because the company believes in an end-to-end experience, so they control both the hardware and the software.
- Many mobile devices brands, like LG, Samsung and HTC have Android phones. Android is Google’s mobile operating system, and since it’s open source, many manufacturers embraced it as their solution.
- BlackBerry, from Research In Motion, runs BlackBerry OS. They have a philosophy similar to Apple’s.
So, what is native mobile development? It means developing the application in the operating system’s corresponding platform/language, the one that the manufacturer made available. Apple’s mobile development environment is called Xcode, and the programming language it uses is Objective-C. Both Android and BlackBerry mobile development is performed in Java, and there are multiple environments (the so-called IDEs) that can be used. But the fact that both use the same language doesn’t mean you can program an application once that will run in both, as each one has its own SDK (Software Development Kit) to access the specific device’s features.
PhoneGap – What is it?
PhoneGap is a free and open source framework that allows you to create mobile apps using standardized web APIs for the platforms you care about.
What? Let’s start over. PhoneGap lets you do mobile development that will run in every platform. Sounds like a good deal huh? You develop it once, and then publish it for iOS, Android, BlackBerry and others.
So what’s the kick? It uses web-based mobile development, and it provides a way to deal with hardware specific functions like the accelerometer, the gyroscope, the camera and others. Although this is possible, making it look & feel like a natively-programmed app can be a little tough.
Before deciding about your mobile development strategy, ask yourself what your app should do. Ask yourself if your app really needs to be available for every device. Think about the growth potential, today’s need is tomorrow’s lack. If you want to support iOS, Android and BlackBerry, you need to develop three different apps if you go for native, but the rewards can be big… or you might not have a way out.
If you have a travel company and your app is a Q&A branding game, go with PhoneGap. You will save a lot of time and money. But if you want to develop an augmented reality app that uncovers hidden cartoon characters in buildings when you point at them using the camera and GPS, you might consider going native.