Difference between Phonegap and
Native
application development
The development for Android and iOS apps requires obtaining
the respective SDKs. For iOS, this means learning Objective-C and also learning
Cocoa Touch. Android programming is very similar to Java, but with
Android-specific APIs and frameworks. In addition to the native application
development for these plat-forms, there are also several third party APIs that
can assist in the development process. In this post I will present a brief
description of the available APIs for development as well as their pros and cons.
1. Native application
development [iOS SDK][Android SDK]
Xcode is the official toolset provided by Apple for any Mac
and iOS development. Google recommends using Eclipse for development on Android.
iOS development requires familiarity with Objective C. Its syntax is quite
different from other traditional programming languages like Java and C++ and
requires some adaptation. In addition to this, the development environment is
pretty big and complex. Android also requires the use of its own SDK but the
advantage as compared to iOS development is that it is based on Java.
Advantages
- The native applications allow the full use of the device capabilities which might be missing in some third party APIs.
- The response time of native applications is generally good.
Disadvantages
- Requires learning different languages for development on different platforms.
- The code base developed for one platform cannot be easily adapted for another platform.
2. PhoneGap
Development
Using PhoneGap, developers can applications using
HTML/CSS/JS, including JavaScript classes that give access to device hardware
and other iOS API featurs like contacts, filesystem, camera, microphone, GPS,
etc. The final application is wrapped within a platform native 'Web View'
browser object, and essentially becomes a stand-alone web application with the
ability to access some device- specific features.
Advantages
- One can use plain old Javascript or even other libraries like jQuery, Prototype, Sencha Touch, MooTools, etc to handle the interaction.
- Allows the development for several platforms at once, e.g. Android, iOS, Windows etc.
Disadvantages
- The applications are web applications inside a Web-View. Browser performance doesn't come close to native application component performance.