The potential of PhoneGap/Cordova development is quite fascinating. In order to develop the Cross platform application for iOS/Android apps use your current HTML/JS/CSS skills (and team), and other mobile platforms. Later you can update your existing codebase once for all platforms rather than maintaining distinct repositories (or paying specialized developers). This Article will talk about few questions and decisions you should consider before commencing your next cross-platform project.
- PhoneGap or Cordova?
This first choice might be a puzzling one but it’s actually very simple. PhoneGap is a product held by Adobe which at present includes supplementary build services, and it may or may not provide additional services and/or charge payments for use in the future. Cordova is held and maintained by Apache, and will always be preserved as an open source project. At present both have a very similar API. I would endorse going with Cordova, unless you need the additional PhoneGap build services.
- Which Plugins to use?
One of the big parts for the Cordova development is its ‘Plugins’. Cordova distributes with a minimal set of APIs, and projects add what extra APIs they require through Plugins. You can search through all surviving plugins consuming the Cordova Plugin Registry. The core set of Cordova plugins offers access to Battery, Camera, Dialogs, Geolocation, and more, which are in oftenaccessiblethrough all supported platforms.
Also there are third party plugins that which encompasses of the extra functionality like native sharing, analytics, and many other platform and device-specific capabilities, though cross-platform support is typically more limited with third-party plugins. Make sure that you are conscious of which plugins you will need and make sure that they are accessible on the platforms and versions you will be supporting. (Note: Cordova and PhoneGap use the similar plugins.)
- Which Form factors you consider?
Will you support only mobile phone or tablet form-factors, or provide a responsive, universal experience? This question can intensely modify the resource requirements of designer, developer and also tester for the given project. In addition with the each launched version of the App the extra level of Effort is to be needed to the tester too. As each platform and platform version will be launched in the marketas an extra level of work, each form-factor/break point setting will present a new level of effort for designers and developers.
Moreover, at every level of effort for designers/developers a new level of effort for testing requirements will be created for each platform version. So, for a project with three supported versions with two similar form-factors, there are two levels of designer/developer effort and six levels of testing effort included.
Are you handy with Xcode and Eclipse?
There will perhaps be several things that you will dislike about the out-of-the-box Cordova XCodeexecution. For instance, do you need the status bar to be hidden when you launch the app (and/or after the start screen)? Do you need to deactivate Universal application status? You might also need to customize some Cordova application settings or plugins (which are written in Objective-C). If you want to deploy your application to the App Store then at certain point you have to learn some basics of XCode development. Most of the Android settings can be modified directly in the AndroidManifest.xml file so it’s not important to have the knowledge of Eclipse IDE, nevertheless you should be aware of how to sign and publish a Cordova app for Android.
- What about the offline Support?
When there is no internet connection what is your app going to do? Though some apps don’t need any internet access for usual behaviour (e.g. a calculator), some do. Take a moment to study the user-experience for your app when no internet connection is present. There are certain things that won’t work when you’re offline that includes sharing, linking (comprises opening links in an in-app browser), analytics, and file access/transfer (Ajax or else). To detect the connection type and to handle online and offline detection and event handling you can use the Cordova Network/Connection plugin.