Free software framework for multiplatform hybrid mobile apps
Apache Cordova
![](//upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Apache_Cordova_logo.png/250px-Apache_Cordova_logo.png) |
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
|
---|
Initial release
| 2009
; 15 years ago
(
2009
)
|
---|
|
Stable release
| 12.0.0
[1]
![Edit this on Wikidata](//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png)
/ 22 May 2023
; 12 months ago
(
22 May 2023
)
|
---|
|
Written in
| C#
,
C++
,
CSS
,
HTML
,
Java
,
JavaScript
and
Objective-C
|
---|
Platform
| Android
iOS
,
macOS
Windows (8.1, 10, Phone 8.1)
Electron
[2]
|
---|
Type
| Mobile development framework
|
---|
License
| Apache License 2.0
[3]
[4]
|
---|
Website
| cordova
.apache
.org
|
---|
Apache Cordova
(formerly
PhoneGap
) is a
mobile application development framework
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.
[5]
Apache Cordova enables
software
programmers
to build hybrid
web applications
for mobile devices using
CSS3
,
HTML5
, and
JavaScript
, instead of relying on platform-specific
APIs
like those in
Android
,
iOS
, or
Windows Phone
.
[6]
It enables the wrapping up of CSS, HTML, and JavaScript code depending on 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 nor purely Web-based. They are not native because all layout rendering is done via Web views instead of the platform's native UI framework. They are not Web apps because they 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".
[7]
[8]
PhoneGap was Adobe's commercial version of Cordova along with its associated ecosystem. Many other tools and frameworks are also built on top of Cordova, including
Ionic
,
[9]
Monaca
,
VoltBuilder
, TACO, Onsen UI, GapDebug, App Builder, Cocoon,
Framework7
,
Quasar Framework
, Evothings Studio, NSB/AppStudio, Mobiscroll, and
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]
History
[
edit
]
PhoneGap was first developed at an iPhoneDevCamp event in
San Francisco
in August 2008.
[12]
Apple Inc. has confirmed that the framework has its approval, even with the change to clause 3.3.1 of the Apple iPhone SDK developer license agreement 4.0 adopted in 2010. The PhoneGap framework is used by several mobile application platforms such as Monaca, appMobi, Convertigo, ViziApps, and Worklight as the backbone of their mobile client development engine.
Adobe acquired Nitobi Software (the original developer) on October 3, 2011.
[13]
Coinciding with that, the PhoneGap code was contributed to the Apache Software Foundation to start a new project called Apache Cordova.
[14]
The project's original name, Apache Callback,
[15]
was viewed as too generic.
[
citation needed
]
Then, it also appears in Adobe Systems as
Adobe PhoneGap
and also as
Adobe PhoneGap Build
. The Phonegap Blog shows more details, why finally the name "Cordova" was chosen. It says: "While genesis stories of PhoneGap often vary with the teller, most committers can agree the project was born at Nitobi, when the office was on Cordova Street in Vancouver."
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. This service was discontinued in 2020.
Awards
[
edit
]
PhoneGap won the People's Choice Award at O'Reilly Media's 2009 Web 2.0 Conference.
Design and rationale
[
edit
]
The core of an Apache Cordova application uses
CSS3
and
HTML5
for rendering and
JavaScript
for 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.
[16]
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.
[17]
Supported platforms
[
edit
]
As of version 11, Apache Cordova currently supports development for the
operating systems
Apple
iOS
, Google
Android
,
Windows 8.1
,
Windows Phone 8.1
,
Windows 10
and
Electron (software framework)
(which in turn runs on
Windows
,
Linux
and
macOS
).
[18]
Earlier version of Apache Cordova used to support
Bada
,
BlackBerry
,
Firefox OS
,
[19]
[20]
LG
webOS
, Microsoft
Windows Phone
(7 and 8),
macOS
, Nokia
Symbian
OS,
Tizen
(SDK 2.x), and
Ubuntu Touch
.
[21]
[22]
| This article needs to be
updated
.
Please help update this article to reflect recent events or newly available information.
(
February 2019
)
|
See also
[
edit
]
References
[
edit
]
- ^
https://cordova.apache.org/news/2023/05/22/cordova-cli-12.0.0.html
.
- ^
"Cordova support by platform - Apache Cordova"
.
cordova.apache.org
.
- ^
"PhoneGap License"
. Phonegap.com. Archived from
the original
on 2011-06-17
. Retrieved
2013-10-09
.
- ^
"FAQ | PhoneGap Build | Edge Tools & Services | Adobe & HTML"
. Html.adobe.com
. Retrieved
2013-10-09
.
- ^
"Adobe Announces Agreement to Acquire Nitobi, Creator of PhoneGap"
. Adobe.com. 2011-10-03. Archived from
the original
on 2012-04-13
. Retrieved
2012-04-07
.
- ^
Jose Fermoso (April 5, 2009).
"PhoneGap Seeks to Bridge the Gap Between Mobile App Platforms"
.
GigaOM
. Archived from
the original
on 2009-04-08
. Retrieved
2012-04-07
.
- ^
- ^
"Apache Callback Proposal"
. Wiki.phonegap.com. 2013-08-15. Archived from
the original
on 2011-10-05
. Retrieved
2013-10-09
.
- ^
"The Last Word on Cordova and PhoneGap"
.
The Official Ionic Blog
. 6 March 2014.
- ^
"Apache Cordova"
.
Apache Cordova
.
- ^
"Cordova Contributor's Who's Who"
. apache.org. 2015-11-02. Archived from
the original
on 2015-07-16
. Retrieved
2015-11-02
.
- ^
Myer, Thomas (2011-11-11).
Beginning PhoneGap
. John Wiley & Sons.
ISBN
978-1-118-23932-2
.
- ^
Rao, Leena (2011-10-03).
"Adobe Acquires Developer Of HTML5 Mobile App Framework PhoneGap Nitobi"
.
TechCrunch
. Retrieved
2023-07-20
.
- ^
Finley, Klint (2012-09-24).
"Adobe Launches Hosted PhoneGap Build Service For Creating Cross-Platform Mobile Apps"
.
TechCrunch
. Retrieved
2023-07-20
.
- ^
Wargo, John M. (2015-03-26).
Apache Cordova 4 Programming
. Addison-Wesley Professional.
ISBN
978-0-13-404827-7
.
- ^
"The Development of Mobile Applications using HTML5 and PhoneGap on Intel Architecture-Based Platforms"
. 2012-06-22
. Retrieved
2013-02-17
.
However, HTML5 has some limitations. Most prominent is the lack of API to access device hardware and sensors such as accelerometer, compass, GPS, etc. While native applications can access device hardware, they lack the portability that Web apps provide. Thus, a solution is to code a hybrid application, which cumulatively uses the benefits of native and Web apps.
- ^
Sapan Diwakar (2012-06-21).
"Titanium vs Phonegap vs Native application development"
. Retrieved
2013-02-17
.
- ^
"Cordova support by platform - Apache Cordova"
.
cordova.apache.org
. Retrieved
2023-07-28
.
- ^
"Building Cordova apps for Firefox OS ? Mozilla Hacks ? the Web developer blog"
. 20 February 2014
. Retrieved
26 February
2014
.
- ^
"Using PhoneGap and the Sony Ericsson WebSDK to develop Android apps"
. Android and Me
. Retrieved
2012-04-07
.
- ^
"Platform Support"
. Adobe PhoneGap. Archived from
the original
on 2013-10-26
. Retrieved
2016-02-23
.
- ^
"PhoneGap supported features"
. Phonegap.com. Archived from
the original
on 2011-06-22
. Retrieved
2013-10-09
.
Bibliography
[
edit
]
- Pelletier, Jeff (April 25, 2013).
Mobile App Manual: The Blueprint
(1st ed.). Withinsight Publishing. p. 96.
ISBN
978-0989072106
.
- Shotts, Kerri (February 26, 2013).
PhoneGap 2.x Mobile Application Development Hotshot
(1st ed.).
Packt Publishing
. p. 388.
ISBN
978-1849519403
.
- Gifford, Matt (October 22, 2012).
PhoneGap Mobile Application Development Cookbook
(1st ed.).
Packt Publishing
. p. 320.
ISBN
978-1849518581
.
- M. Wargo, John (June 11, 2012).
PhoneGap Essentials: Building Cross-Platform Mobile Apps
(1st ed.).
Addison-Wesley Professional
. p. 384.
ISBN
978-0321814296
. Archived from
the original
on April 3, 2015
. Retrieved
June 29,
2012
.
- Munro, Jamie (March 29, 2012).
20 Recipes for Programming PhoneGap: Cross-Platform Mobile Development for Android and iPhone
(1st ed.).
O'Reilly Media
. p. 76.
ISBN
978-1-4493-1954-0
.
- Marinacci, Joshua (March 21, 2012).
Building Mobile Applications with Java: Using the Google Web Toolkit and PhoneGap
(1st ed.).
O'Reilly Media
. p. 86.
ISBN
978-1-4493-0823-0
.
- Lunny, Andrew (September 23, 2011).
PhoneGap Beginner's Guide
(1st ed.).
Packt Publishing
. p. 328.
ISBN
978-1-84951-536-8
.
- Ghatol, Rohit (November 14, 2011).
Beginning PhoneGap: Mobile Web Framework for JavaScript and HTML5
(1st ed.).
Apress
. p. 700.
ISBN
978-1-4302-3903-1
.
- Myer, Thomas (December 13, 2011).
Beginning PhoneGap
(1st ed.).
Wrox
. p. 336.
ISBN
978-1-118-15665-0
. Archived from
the original
on June 4, 2015
. Retrieved
October 10,
2011
.
External links
[
edit
]
|
---|
Top-level
projects
| |
---|
Commons
| |
---|
Incubator
| |
---|
Other projects
| |
---|
Attic
| |
---|
Licenses
| |
---|
|