Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Objective-C vs PhoneGap [closed]

Tags:

ios

cordova

There are multiple ways of developing iOS applications. I like to program in Objective-C to make my iOS apps.

But you can do most of the things using jQTouch, jQMobile, PhoneGap etc.

Question:

When is it suitable or appropriate to use the native platform?

like image 474
azamsharp Avatar asked Aug 11 '11 13:08

azamsharp


2 Answers

  1. PhoneGap is essentially a wrapper, so it will always lag behind the latest features, in addition to possibly having bugs in some edge cases.
  2. Not all platform features are going to be available in PhoneGap, so you'll need to know what is not supported before you decide to use it.
  3. Most hardware acceleration features will never be fully available, so if you want to make an advanced game with high end graphics, it's not going to work well.
  4. The maintenance required to do custom modules that are not available out of the box may actually take more time than developing native.
  5. Do you really need to run on more than 2 mobile OSes? Writing for iOS and Android will give you a fairly large market coverage, so you may be better off going native.

PhoneGap is designed for more simple web apps, data driven apps, and social apps that require connectivity to work. You may end up rewriting the app in it native language if your apps becomes popular and you need to support more features, but if you can launch an idea quickly on multiple devices, then you have a competitive advantage in the market.

like image 72
Josh Simerman Avatar answered Oct 22 '22 21:10

Josh Simerman


If you have a need to develop an app for multiple mobile platforms, quickly, with a minimum effort (i.e. implement once), use PhoneGap or similar. These frameworks provide a "lowest common denominator" type of environment, so you lose access, often, to capabilities of the native platform.

On the other hand, if you are developing an app only for iOS, then by all means, develop it in Objective-C as a native app. You then have at your disposal the complete SDK and capabilities of the platform! This is, of course, Apple's recommendation as a best practice for developing iOS apps!

In my own experience, I had a conversation with my CTO before I joined my company about whether we should develop native apps for our platform or use PhoneGap. We agreed that developing native apps was the way to go because we could take advantage of each platform's specific capabilities. Beyond that, a native app would provide a better user experience on the platform, because it would behave more like other native apps the user might be familiar with. Think about that last idea. Think of all your apps you enjoy. As a developer, you can probably tell -- and quickly -- which ones are native and which ones are not, just by using them. Which do you think provide a better user experience? Something to think about. :-)

In the end, it's up to you. You said you like Objective-C programming. So, go for it and go native! On the other hand, if you have multi-platform aspirations, and you are familiar with PhoneGap (or others) or want to learn about them, then go for it! :-)

like image 4
Mark Granoff Avatar answered Oct 22 '22 22:10

Mark Granoff