Apache Cordova
100px | |
Original author(s) | Joe Bowser, Michael Brooks, Rob Ellis, Dave Johnson, Anis Kadri, Brian Leroux, Jesse MacFadyen, Filip Maj, Eric Oesterle, Brock Whitten, Herman Wong, Shazron Abdullah |
---|---|
Developer(s) | Apache Cordova |
Stable release | 6.1.0 / March 23, 2016 |
Development status | Active |
Written in | C#, C++, CSS, CSS3, HTML, HTML5, Java, JavaScript and Objective-C |
Operating system | Android, BlackBerry, Firefox OS, iOS, Symbian, Ubuntu Touch, webOS, Windows Phone, Windows 8 |
Available in | English |
Type | mobile development framework |
License | Apache 2.0 License[1][2] |
Website | cordova |
Apache Cordova (formerly PhoneGap) is a popular mobile application development framework originally created by Nitobi. Adobe Systems purchased Nitobi in 2011, rebranded it as PhoneGap, and later released an open source version of the software called Apache Cordova.[3][4] Apache Cordova enables software programmers to build applications for mobile devices using CSS3, HTML5, and JavaScript instead of relying on platform-specific APIs like those in Android, iOS, or Windows Phone.[5] It enables wrapping up of CSS, HTML, and JavaScript code depending upon the platform of the device. It extends the features of HTML and JavaScript to work with the device. The resulting applications are hybrid, meaning that they are neither truly native mobile application (because all layout rendering is done via Web views instead of the platform's native UI framework) nor purely Web-based (because they are not just Web apps, but are packaged as apps for distribution and have access to native device APIs). Mixing native and hybrid code snippets has been possible since version 1.9.
The software was previously called just "PhoneGap", then "Apache Callback".[6][7] As open-source software, Apache Cordova allows wrappers around it, such as Appery.io or Intel XDK.
PhoneGap is Adobe’s productized version and ecosystem on top of Cordova. Like PhoneGap, many other tools and frameworks are also built on top of Cordova, including Ionic,[8] Monaca, TACO, the Intel XDK,[9] and the Telerik Platform.[10] These tools use Cordova, and not PhoneGap for their core tools.
Contributors to the Apache Cordova project include Adobe, BlackBerry, Google, IBM, Intel, Microsoft, Mozilla, and others.[11]
Contents
History
First developed at an iPhoneDevCamp event in San Francisco,[12] PhoneGap went on to win the People's Choice Award at O'Reilly Media's 2009 Web 2.0 Conference,[13] and the framework has been used to develop many apps.[14] Apple Inc. has confirmed that the framework has its approval, even with the new 4.0 developer license agreement changes.[15] The PhoneGap framework is used by several mobile application platforms such as Asial's Monaca,[16] appMobi,[17] Convertigo,[18][19] ViziApps,[20] and Worklight[21][22] as the backbone of their mobile client development engine.
Adobe officially announced the acquisition of Nitobi Software (the original developer) on October 4, 2011.[23] Coincident with that, the PhoneGap code was contributed to the Apache Software Foundation to start a new project called Apache Cordova. The project's original name, Apache Callback, was viewed as too generic.[24] Then, it also appears in Adobe Systems as Adobe PhoneGap and also as Adobe Phonegap Build.[25]
Early versions of PhoneGap required an Apple computer to create iOS apps and a Windows computer to create Windows Mobile apps. After September 2012, Adobe's PhoneGap Build service allows programmers to upload CSS, HTML, and JavaScript source code to a "cloud compiler" that generates apps for every supported platform.[26]
Design and rationale
The core of Apache Cordova applications use CSS3 and HTML5 for their rendering and JavaScript for their logic. HTML5 provides access to underlying hardware such as the accelerometer, camera, and GPS. However, browsers' support for HTML5-based device access is not consistent across mobile browsers, particularly older versions of Android. To overcome these limitations, Apache Cordova embeds the HTML5 code inside a native WebView on the device, using a foreign function interface to access the native resources of it.[27]
Apache Cordova can be extended with native plug-ins, allowing developers to add more functionalities that can be called from JavaScript, making it communicate directly between the native layer and the HTML5 page. These plugins allow access to the device's accelerometer, camera, compass, file system, microphone, and more.
However, the use of Web-based technologies leads some Apache Cordova applications to run slower than native applications with similar functionality.[28] Adobe Systems warns that applications may be rejected by Apple for being too slow or not feeling "native" enough (having appearance and functionality consistent with what users have come to expect on the platform). This can be an issue for some Apache Cordova applications.[29][30]
Supported platforms
Apache Cordova currently supports development for the operating systems Apple iOS, Bada, BlackBerry, Firefox OS,[31] Google Android,[32] LG webOS, Microsoft Windows Phone (7 and 8), Nokia Symbian OS, Tizen (SDK 2.x), and Ubuntu Touch. The table below is a list of supported features for each operating system.[33][34]
Feature | Android 1.0 – 4.4 | Apple iPhone /iPhone 3G | Apple iPhone 3GS and newer | Bada | BlackBerry 10 and PlayBook OS | BlackBerry OS 4.6–4.7 | BlackBerry OS 5.0-6.0+ | Firefox OS | Symbian | Tizen | webOS | Ubuntu Touch | Windows Phone |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Accelerometer | Yes | Yes | Yes | Yes | Yes | N/A | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Camera | Yes | Yes | Yes | Yes | Yes | N/A | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Compass | Yes | N/A | Yes | Yes | Yes | N/A | N/A | Yes | N/A | Yes | Yes | Yes | Yes |
Contacts | Yes | Yes | Yes | Yes | Yes | N/A | Yes | Yes | Yes | Yes | N/A | N/A | Yes |
File | Yes | Yes | Yes | N/A | Yes | N/A | Yes | N/A | N/A | Yes | N/A | Yes | Yes |
Geolocation | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Media | Yes | Yes | Yes | N/A | Yes | N/A | N/A | N/A | N/A | Yes | N/A | Yes | Yes |
Network | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Notification (alert, sound, vibration) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Storage | Yes | Yes | Yes | N/A | Yes | N/A | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
See also
- List of rich Internet application frameworks
- Multiple phone web-based application framework
- RhoMobile Suite
References
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
Bibliography
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
External links
The Wikibook Android has a page on the topic of: PhoneGap |
- No URL found. Please specify a URL here or add one to Wikidata.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Apache Callback
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Klint Finley. "Adobe Launches Hosted PhoneGap Build Service For Creating Cross-Platform Mobile Apps". 2012.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.