Once an open source project becomes part of the apache foundation, you know there is some development behind it, with a good issue reporting, feature release and community backing it. We need to mention phonegap as you will come across mentions of it in blogs and stack overflow questions etc. when researching. The build service allows you to deploy apps for platforms you don&apos;t have. For example an iOS app without needing to own a mac. In short, they are similar but not the same. Cordova&apos;s goal is to become redundant, hopefully all browsers will catch up with all the required native technology and we can just use HTML5 only! New point releases nearly every month!
Here are some of the brands you will recognise Microsoft and RIM played a big hand in creating the native platform brings that allows cordova to work so there is some good backing behind the project.
A webview is a native component which is a mini browser in itself. Cordova creates a native container or separate app for every supported platform you need. A cordova app is just a HTML app running from inside a native app. Doesn&apos;t sound like a lot, but we have the freedom to write an app how we like. Using the provided CLI alongside platform tools, you can build release ready apps without the need to start xcode, eclipse or android studio. There are projects available that allow you to download your updated JS over the web when you app requires updating so you don&apos;t even need to release new app versions.
These products all use cordova as their underlying technology. Intel XDK has built in game support for gamepads and rendering libraries. Appery, allows you to develop in the cloud. AppGyver adds extra tooling and their own UI framework. Iconic adds in the angular js framework.
Tizen, open source os that can run in cars, phones, wearable devices – Samsung Gear S watch Samsung Z1 phone released at the start of the year in India uses it. These plugins are provided by cordova and are updated regularly so you can rely on them. You can write your own plugins and then upload them to github etc. to install and share, in a similar way to npm or bower. You can think of plugins as missing browser features or native polyfills.
For example. If you have an accelerometer plugin in your browser it could simulate some predictable motion, rather than just failing or not sending any motion events. It is up the author of a plugin to decide which platforms they support.
Working with new devices is straight forward, as you go back through the older versions support for features you need might be lacking. Polyfilling or emulating features might not be worthwhile. Multiple single page apps can be used in one cordova app, or more than one cordova app can be nested inside a single native app.
IOS users expect apps to work in a certain way as do android users, which way will your app work? Will you alter the app depending on platform or strike some middle ground. Eg, the hardware back button on the android. There are many plugins created by users, mostly on Github, some are designed for previous cordova versions, not being maintained well.
There are normally some helpful people on irc.
Apache Cordova, Hybrid Application Development
Hybrid Application Development
● Developer for 18 years, mostly in web.
● Currently working at Holiday Extras, Kent.
● Big fan of mobile.
● Originally “PhoneGap” made by Nitobi in 2009
● Adobe bought Nitobi in 2011
● Adobe contributed the source to the Apache
Software Foundation, and changed name.
● Now powers Adobe PhoneGap and others.
● Adobe provides extra functionality such as its
● Regular updates.
Who uses it?
● Holiday extras!
What does it give you?
● Boilerplate native container application
containing a web view.
● CLI to build, emulate and run your application.
● Native plugin repository.
Platforms and Plugins
● BlackBerry 10
● Windows Phone 8
● Amazon Fire OS
● Firefox OS
● Ubuntu Touch
● Battery Status
● Device Motion and Orientation
● File System
● Media Capture
● Network Information
● And more....
Your browser is a platform!
● Apps are developed in your browser.
● Native plugins won't work but they can be
Why should you use it?
● Able to use standard web technologies.
● And nearly a similar toolset.
● Quick to release on multiple platforms.
● DRY / Code sharing.
● Select target devices based on OS version.
● Single page app is the norm.
● Client heavy, with offline functionality.
● Cordova app can be nested into an existing
● Use a JS framework that you know.
● JS helpers: rachet, hammerjs, jquerymobile,
It's not all roses
● Need a some native dev experience.
● Still encounter differing device behaviour.
● Different platform expectations.
● Contributed plugins can be of varying quality.