Jump to content

Apache Cordova: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Lead: remove unsourced info about Intel XDK and minor cleanup
History: Some cleanup and added maintenance tags
 
(41 intermediate revisions by 32 users not shown)
Line 1: Line 1:
{{Short description|Free software framework for multiplatform hybrid mobile apps}}
{{Infobox software
{{Infobox software
| name = Apache Cordova
| name = Apache Cordova
| logo = Apache_Cordova_Logo.svg
| logo = Apache Cordova logo.png
| logo size = 250px
| logo size = 250px
| screenshot =
| screenshot =
| caption =
| caption =
| collapsible =
| collapsible =
| author = Joe Bowser, Michael Brooks, Rob Ellis, Dave Johnson, Anis Kadri, Brian Leroux, Jesse MacFadyen, Filip Maj, Eric Oesterle, Brock Whitten, Herman Wong, Shazron Abdullah
| author = 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 =
| developer =
| platform = [[Android (operating system)|Android]]<br/>[[iOS (Apple)|iOS]], [[macOS]]<br/>Windows (8.1, 10, Phone 8.1)<br/>[[Electron (software framework)|Electron]]<ref>{{cite web|url=https://cordova.apache.org/docs/en/latest/guide/support/index.html|title=Cordova support by platform - Apache Cordova|website=cordova.apache.org}}</ref>
| platform = [[Android (operating system)|Android]]<br/>[[iOS (Apple)|iOS]], [[macOS]]<br/>Windows (8.1, 10, Phone 8.1)<br/>[[Electron (software framework)|Electron]]<ref>{{cite web|url=https://cordova.apache.org/docs/en/latest/guide/support/index.html|title=Cordova support by platform - Apache Cordova|website=cordova.apache.org}}</ref>
| programming language = [[C Sharp (programming language)|C#]], [[C++]], [[CSS]], [[HTML]], [[Java (programming language)|Java]], [[JavaScript]] and [[Objective-C]]
| programming language = [[C Sharp (programming language)|C#]], [[C++]], [[CSS]], [[HTML]], [[Java (programming language)|Java]], [[JavaScript]] and [[Objective-C]]
| released = {{Start date and age|2009}}
| released = {{Start date and age|2009}}
| latest release version = 10.0.0
| latest release version = {{wikidata|property|edit|reference|P348}}
| latest release date = {{start date and age|{{wikidata|qualifier|single|P348|P577}}}}
| latest release date = {{release date|2020|08|04}}<ref>{{cite web|url=https://github.com/apache/cordova-cli/releases|title=apache/cordova-cli|website=GitHub}}</ref><ref>{{cite web|url=https://www.npmjs.com/package/cordova|title=cordova|website=npm}}</ref><ref>{{cite web|url=https://cordova.apache.org/announcements/2019/03/22/cordova-cli-release-9.0.0.html|title=Cordova-CLI 9.0.0 Released|website=cordova.apache.org|access-date=2019-04-17|archive-url=https://web.archive.org/web/20190417195016/https://cordova.apache.org/announcements/2019/03/22/cordova-cli-release-9.0.0.html|archive-date=2019-04-17|url-status=dead}}</ref>
| latest preview version =
| latest preview date =
| latest preview date =
| language = English
| genre = [[multiple phone web-based application framework|Mobile development framework]]
| genre = [[multiple phone web-based application framework|Mobile development framework]]
| license = [[Apache License 2.0]]<ref>{{cite web|url=http://www.phonegap.com/about/license |title=PhoneGap License |publisher=Phonegap.com |access-date=2013-10-09}}</ref><ref>{{cite web|url=http://html.adobe.com/edge/phonegap-build/faq.html |title=FAQ &#124; PhoneGap Build &#124; Edge Tools & Services &#124; Adobe & HTML |publisher=Html.adobe.com |access-date=2013-10-09}}</ref>
| license = [[Apache License 2.0]]<ref>{{cite web |url=http://www.phonegap.com/about/license |title=PhoneGap License |publisher=Phonegap.com |access-date=2013-10-09 |archive-date=2011-06-17 |archive-url=https://web.archive.org/web/20110617202057/http://www.phonegap.com/about/license |url-status=dead }}</ref><ref>{{cite web|url=http://html.adobe.com/edge/phonegap-build/faq.html |title=FAQ &#124; PhoneGap Build &#124; Edge Tools & Services &#124; Adobe & HTML |publisher=Html.adobe.com |access-date=2013-10-09}}</ref>
| website = {{URL|https://cordova.apache.org}}
| website = {{URL|https://cordova.apache.org}}
}}
}}
'''Apache Cordova''' (formerly '''PhoneGap''') is a [[multiple phone web-based application framework|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.<ref>{{cite web |url= http://www.adobe.com/aboutadobe/pressroom/pressreleases/201110/AdobeAcquiresNitobi.html |title= Adobe Announces Agreement to Acquire Nitobi, Creator of PhoneGap |publisher= Adobe.com |date= 2011-10-03 |access-date= 2012-04-07 |archive-url= https://web.archive.org/web/20120413181632/http://www.adobe.com/aboutadobe/pressroom/pressreleases/201110/AdobeAcquiresNitobi.html |archive-date= 2012-04-13 |url-status= dead }}</ref> Apache Cordova enables [[computer software|software]] [[programmer]]s to build hybrid [[web application]]s for mobile devices using [[CSS3]], [[HTML5]], and [[JavaScript]], instead of relying on platform-specific [[API]]s like those in [[Android (operating system)|Android]], [[iOS]], or [[Windows Phone]].<ref>{{cite web | url= http://gigaom.com/2009/04/05/phonegap-seeks-to-bridge-the-gap-between-mobile-app-platforms/ | title= PhoneGap Seeks to Bridge the Gap Between Mobile App Platforms | author= Jose Fermoso | date=April 5, 2009 | work= GigaOM | access-date=2012-04-07 }}</ref> 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 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.
'''Apache Cordova''' (formerly '''PhoneGap''') is a [[multiple phone web-based application framework|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.<ref>{{cite web |url= http://www.adobe.com/aboutadobe/pressroom/pressreleases/201110/AdobeAcquiresNitobi.html |title= Adobe Announces Agreement to Acquire Nitobi, Creator of PhoneGap |publisher= Adobe.com |date= 2011-10-03 |access-date= 2012-04-07 |archive-url= https://web.archive.org/web/20120413181632/http://www.adobe.com/aboutadobe/pressroom/pressreleases/201110/AdobeAcquiresNitobi.html |archive-date= 2012-04-13 |url-status= dead }}</ref> Apache Cordova enables [[computer software|software]] [[programmer]]s to build hybrid [[web application]]s for mobile devices using [[CSS3]], [[HTML5]], and [[JavaScript]], instead of relying on platform-specific [[API]]s like those in [[Android (operating system)|Android]], [[iOS]], or [[Windows Phone]].<ref>{{cite web | url= http://gigaom.com/2009/04/05/phonegap-seeks-to-bridge-the-gap-between-mobile-app-platforms/ | title= PhoneGap Seeks to Bridge the Gap Between Mobile App Platforms | author= Jose Fermoso | date= April 5, 2009 | work= GigaOM | access-date= 2012-04-07 | archive-date= 2009-04-08 | archive-url= https://web.archive.org/web/20090408054440/http://gigaom.com/2009/04/05/phonegap-seeks-to-bridge-the-gap-between-mobile-app-platforms/ | url-status= dead }}</ref> 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".<ref>{{cite web|url=https://dev.tiki.org/Apache+Callback|title=Apache Callback - Tiki Wiki CMS Groupware :: Development|first=Tiki|last=Community|website=Tiki Wiki CMS Groupware :: Development|access-date=3 April 2018|archive-url=https://web.archive.org/web/20180404073221/https://dev.tiki.org/Apache+Callback|archive-date=4 April 2018|url-status=dead}}</ref><ref>{{cite web |url= http://wiki.phonegap.com/enwiki/w/page/46311152/apache-callback-proposal |title= Apache Callback Proposal |publisher= Wiki.phonegap.com |date= 2013-08-15 |access-date= 2013-10-09}}
The software was previously called just "PhoneGap", then "Apache Callback".<ref>{{cite web|url=https://dev.tiki.org/Apache+Callback|title=Apache Callback - Tiki Wiki CMS Groupware :: Development|first=Tiki|last=Community|website=Tiki Wiki CMS Groupware :: Development|access-date=3 April 2018|archive-url=https://web.archive.org/web/20180404073221/https://dev.tiki.org/Apache+Callback|archive-date=4 April 2018|url-status=dead}}</ref><ref>{{cite web |url= http://wiki.phonegap.com/enwiki/w/page/46311152/apache-callback-proposal |title= Apache Callback Proposal |publisher= Wiki.phonegap.com |date= 2013-08-15 |access-date= 2013-10-09 |archive-date= 2011-10-05 |archive-url= https://web.archive.org/web/20111005154822/http://wiki.phonegap.com/enwiki/w/page/46311152/apache-callback-proposal |url-status= dead }}</ref>
</ref>


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 Framework|Ionic]],<ref>{{cite web|title=The Last Word on Cordova and PhoneGap|url=http://blog.ionic.io/what-is-cordova-phonegap/|website=The Official Ionic Blog}}</ref> [[Monaca (software)|Monaca]], [[VoltBuilder (software)|VoltBuilder]], TACO, Onsen UI, Visual Studio, GapDebug, App Builder, Cocoon, [[Framework7]], [[Quasar framework|Quasar Framework]], Evothings Studio, NSB/AppStudio, Mobiscroll, and [[Telerik|Telerik Platform]].<ref>{{cite web|title=Apache Cordova|url=http://cordova.apache.org/|website=Apache Cordova}}</ref> These tools use Cordova, and not PhoneGap for their core tools.
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 Framework|Ionic]],<ref>{{cite web|title=The Last Word on Cordova and PhoneGap|url=http://blog.ionic.io/what-is-cordova-phonegap/|website=The Official Ionic Blog|date=6 March 2014 }}</ref> [[Monaca (software)|Monaca]], [[VoltBuilder (software)|VoltBuilder]], TACO, Onsen UI, GapDebug, App Builder, Cocoon, Framework7, [[Quasar framework|Quasar Framework]], Evothings Studio, NSB/AppStudio, Mobiscroll, and [[Telerik|Telerik Platform]].<ref>{{cite web|title=Apache Cordova|url=http://cordova.apache.org/|website=Apache Cordova}}</ref> These tools use Cordova, and not PhoneGap for their core tools.


Contributors to the Apache Cordova project include [[Adobe Systems|Adobe]], [[BlackBerry]], [[Google]], [[IBM]], [[Intel]], [[Microsoft]], [[Mozilla]], and others.<ref>{{cite web |url= http://wiki.apache.org/cordova/who |title= Cordova Contributor's Who's Who |publisher= apache.org |date= 2015-11-02 |access-date= 2015-11-02 |archive-url= https://web.archive.org/web/20150716065106/http://wiki.apache.org/cordova/who |archive-date= 2015-07-16 |url-status= dead }}</ref>
Contributors to the Apache Cordova project include [[Adobe Systems|Adobe]], [[BlackBerry]], [[Google]], [[IBM]], [[Intel]], [[Microsoft]], [[Mozilla]], and others.<ref>{{cite web |url= http://wiki.apache.org/cordova/who |title= Cordova Contributor's Who's Who |publisher= apache.org |date= 2015-11-02 |access-date= 2015-11-02 |archive-url= https://web.archive.org/web/20150716065106/http://wiki.apache.org/cordova/who |archive-date= 2015-07-16 |url-status= dead }}</ref>


==History==
==History==
{{Cleanup section|date=August 2024|reason=Verb tense, grammar errors, and writing comprehension. Facts might be good but it doesn't flow.}}
First developed at an iPhoneDevCamp event in San Francisco,<ref>{{cite web|author=Darryl K. Taft |url=http://www.eweek.com/c/a/Application-Development/PhoneGap-Simplifies-iPhone-Android-BlackBerry-Development-788189/ |title=PhoneGap Simplifies iPhone, Android, BlackBerry Development |publisher=Eweek.com |date=2009-03-13 |access-date=2013-10-09}}</ref> PhoneGap went on to win the People's Choice Award at [[O'Reilly Media]]'s 2009 Web 2.0 Conference,<ref>{{cite web|last=Davis |first=Lidija |url=https://readwrite.com/2009/04/02/phone_gap_todays_peoples_choice_winner_at_launch_p/ |title=PhoneGap: People's Choice Winner at Web 2.0 Expo Launch Pad |publisher=Readwriteweb.com |date=2009-04-02 |access-date=2012-04-07}}</ref> and the framework has been used to develop many apps.<ref>{{cite web|url=http://www.phonegap.com/app/ |title=PhoneGap Apps |publisher=Phonegap.com |access-date=2012-12-06}}</ref> [[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.<ref>{{cite web|url=http://www.phonegap.com/2010/04/14/phonegap-and-the-apple-developer-license-agreement/ |title=PhoneGap and the Apple developer license agreement. « PhoneGap |publisher=Phonegap.com |date=2010-04-14 |access-date=2012-04-07 |url-status=dead |archive-url=https://web.archive.org/web/20120415035852/http://phonegap.com/2010/04/14/phonegap-and-the-apple-developer-license-agreement |archive-date=2012-04-15 }}</ref> The PhoneGap framework is used by several mobile application platforms such as [[Monaca (mobile application development tool)|Monaca]],<ref>{{cite web |url=http://monaca.mobi/en/ |title=Develop Awesome PhoneGap Apps with Awesome Tools |publisher=monaco.mobi |access-date=2014-06-10 |archive-url=https://web.archive.org/web/20140620091524/http://monaca.mobi/en/ |archive-date=2014-06-20 |url-status=dead }}</ref> [[appMobi]],<ref>{{cite web|url=http://www.appmobi.com |title=Create Mobile and Web Apps with HTML5 and JavaScript &#124; |publisher=appMobi.com |access-date=2012-04-07}}</ref> Convertigo,<ref>{{cite web|url=http://www.convertigo.com |title=Open Source Mobile Enablement and Enterprise Mashups |publisher=Convertigo |access-date=2012-04-07}}</ref><ref>{{cite web|url=http://phonegap.com/2011/07/07/convertigo-mobilizer-uses-phonegap-build-apis/ |title=Convertigo Mobilizer Uses PhoneGap Build APIs « PhoneGap |publisher=Phonegap.com |date=2011-07-07 |access-date=2012-04-07 |url-status=dead |archive-url=https://web.archive.org/web/20120513040808/http://phonegap.com/2011/07/07/convertigo-mobilizer-uses-phonegap-build-apis/ |archive-date=2012-05-13 }}</ref> [[ViziApps]],<ref>{{cite web|url=http://www.viziapps.com |title=Create Mobile and Web Apps with HTML5 and JavaScript |publisher=ViziApps.com |access-date=2012-04-07}}</ref> and [[IBM Mobile|Worklight]]<ref>{{cite web |url=http://www.worklight.com |title=Mobile Application Platform and Tools |publisher=Worklight |date=2012-01-16 |access-date=2012-04-07 |archive-url=https://web.archive.org/web/20120419142918/http://www.worklight.com/ |archive-date=2012-04-19 |url-status=dead }}</ref><ref>{{cite web|url=http://www.phonegap.com/2011/06/27/how-phonegap-plays-an-important-part-in-our-enterprise-offering/ |title=How PhoneGap plays an important part in our Enterprise offering PhoneGap |publisher=Phonegap.com |date=2011-06-27 |access-date=2012-04-07 |url-status=dead |archive-url=https://web.archive.org/web/20120415220543/http://phonegap.com/2011/06/27/how-phonegap-plays-an-important-part-in-our-enterprise-offering |archive-date=2012-04-15 }}</ref> as the backbone of their mobile client development engine.
PhoneGap was first developed by Nitobi Software at an iPhoneDevCamp event in [[San Francisco]] in August 2008.<ref>{{Cite book |last=Myer |first=Thomas |url=https://books.google.com/books?id=F6BdRqHozfsC |title=Beginning PhoneGap |date=2011-11-11 |publisher=John Wiley & Sons |isbn=978-1-118-23932-2 |language=en}}</ref> 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.{{Citation needed|date=October 2024}}


Adobe officially announced the acquisition of Nitobi Software (the original developer) on October 4, 2011.<ref>{{cite web|last=Shankland |first=Stephen |url=http://news.cnet.com/8301-30685_3-20114857-264/adobe-buys-phonegap-typekit-for-better-Web-tools/ |title=Adobe buys PhoneGap, TypeKit for better Web tools &#124; Deep Tech - CNET News |publisher=News.cnet.com |date=2011-10-03 |access-date=2012-04-07}}</ref> Coinciding 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.<ref>{{cite web|url=http://markmail.org/message/vcrw2swiwiwcojsd |title=finding a new name that isn't PhoneGap - Brian LeRoux - org.apache.incubator.callback-dev |publisher=MarkMail |date=2011-10-28 |access-date=2012-04-07}}</ref> Then, it also appears in Adobe Systems as ''Adobe PhoneGap'' and also as ''Adobe PhoneGap Build''.<ref>{{cite web|url=http://build.phonegap.com |title=Adobe PhoneGap Build |publisher=Adobe Systems Inc.}}</ref> 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."<ref>{{Cite web|url=https://blog.phonegap.com/phonegap-cordova-and-whats-in-a-name-efc2da33bcf1|title=PhoneGap, Cordova, and what's in a name?|last=Team|first=PhoneGap|date=2017-02-16|website=Medium|language=en|access-date=2019-11-10}}</ref><ref>{{Cite web|url=https://www.fyple.ca/company/nitobi-25dgzux/|title=Nitobi in Vancouver, BC|website=www.fyple.ca|access-date=2019-11-10}}</ref>
Adobe acquired Nitobi Software on October 3, 2011.<ref>{{Cite web |last=Rao |first=Leena |date=2011-10-03 |title=Adobe Acquires Developer Of HTML5 Mobile App Framework PhoneGap Nitobi |url=https://techcrunch.com/2011/10/03/adobe-acquires-developer-of-html5-mobile-app-framework-phonegap-nitobi/ |access-date=2023-07-20 |website=TechCrunch |language=en-US}}</ref> The PhoneGap code was subsequently contributed to the Apache Software Foundation to start a new project called Apache Cordova.<ref>{{Cite web |last=Finley |first=Klint |date=2012-09-24 |title=Adobe Launches Hosted PhoneGap Build Service For Creating Cross-Platform Mobile Apps |url=https://techcrunch.com/2012/09/24/adobe-launches-hosted-phonegap-build-service-for-creating-cross-platform-mobile-apps/ |access-date=2023-07-20 |website=TechCrunch |language=en-US}}</ref> The project's original name, Apache Callback,<ref>{{Cite book |last=Wargo |first=John M. |url=https://books.google.com/books?id=O52yBwAAQBAJ |title=Apache Cordova 4 Programming |date=2015-03-26 |publisher=Addison-Wesley Professional |isbn=978-0-13-404827-7 |language=en}}</ref> was viewed as too generic.{{Citation needed|date=July 2023}} It also appears in Adobe Systems as ''Adobe PhoneGap'' and also as ''Adobe PhoneGap Build''.{{Needs citation|date=August 2024}}


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 computing|cloud]] [[compiler]]" that generates apps for every supported platform.<ref>
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.{{Citation needed|date=October 2024}}
Klint Finley.
[https://techcrunch.com/2012/09/24/adobe-launches-hosted-phonegap-build-service-for-creating-cross-platform-mobile-apps/ "Adobe Launches Hosted PhoneGap Build Service For Creating Cross-Platform Mobile Apps"].
2012.
</ref>


==Design and rationale==
==Design and rationale==
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.<ref>{{cite web
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 (disambiguation)|WebView]] on the device, using a [[foreign function interface]] to access the native resources of it.<ref>{{cite web
| url=http://software.intel.com/en-us/articles/the-development-of-mobile-applications-using-html5-and-phonegap-on-intel-architecture-based
| url=http://software.intel.com/en-us/articles/the-development-of-mobile-applications-using-html5-and-phonegap-on-intel-architecture-based
| title=The Development of Mobile Applications using HTML5 and PhoneGap on Intel Architecture-Based Platforms
| title=The Development of Mobile Applications using HTML5 and PhoneGap on Intel Architecture-Based Platforms
Line 55: Line 50:
| author=Sapan Diwakar
| author=Sapan Diwakar
| date=2012-06-21
| date=2012-06-21
| access-date=2013-02-17}}</ref>
| access-date=2013-02-17}}</ref> [[Adobe Systems]] warns that applications built with Apache Cordova may be rejected by [[Apple Inc.|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).<ref>{{cite web
| url=http://www.adobe.com/devnet/phonegap/articles/apple-application-rejections-and-phonegap-advice.html
| title=PhoneGap advice on dealing with Apple application rejections
| publisher=[[Adobe Systems]]
| date=2012-10-29
| access-date=2013-02-17}}</ref><ref>{{cite web
| url=http://www.adobe.com/devnet/phonegap/articles/creating-apps-with-phonegap-lessons.html
| title=Creating apps with PhoneGap: Lessons learned
| publisher=[[Adobe Systems]]
| date=2012-09-17
| quote=''When you add more complex CSS3 elements, heavy transitions, and supporting multiple devices (such as iOS and Android), however, it makes you realize that there are few steps you must iron out to prevent hair loss''
| access-date=2013-02-17
| archive-url=https://web.archive.org/web/20130518085321/http://www.adobe.com/devnet/phonegap/articles/creating-apps-with-phonegap-lessons.html
| archive-date=2013-05-18
| url-status=dead
}}</ref>


==Supported platforms==
==Supported platforms==
As of version 9, Apache Cordova currently supports development for the [[operating system]]s Apple [[iOS (Apple)|iOS]], Google [[Android (operating system)|Android]], [[Windows 8.1]], [[Windows Phone 8.1]] , [[Windows 10]] and [[Electron (software framework)]] (which in turn runs on [[Windows]], [[Linux]] and [[macOS]]). Earlier version of Apache Cordova used to support [[Bada (operating system)|Bada]], [[BlackBerry]], [[Firefox OS]],<ref>{{cite web|title=Building Cordova apps for Firefox OS ✩ Mozilla Hacks – the Web developer blog|url=https://hacks.mozilla.org/2014/02/building-cordova-apps-for-firefox-os/|access-date=26 February 2014|date=20 February 2014}}</ref><ref>{{cite web|url=http://androidandme.com/2009/12/news/using-phonegap-and-the-sony-ericsson-websdk-to-develop-android-apps/ |title=Using PhoneGap and the Sony Ericsson WebSDK to develop Android apps |publisher=Android and Me |access-date=2012-04-07}}</ref> 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 for Adobe PhoneGap/ Apache Cordova 3.<ref>{{cite web | url=http://docs.phonegap.com/en/edge/guide_support_index.md.html#Platform%20Support | title=Platform Support | publisher = Adobe PhoneGap | access-date = 2016-02-23}}</ref><ref>{{cite web|url=http://www.phonegap.com/about/feature |title=PhoneGap supported features |publisher=Phonegap.com |access-date=2013-10-09}}</ref>
As of version 11, Apache Cordova currently supports development for the [[operating system]]s Apple [[iOS (Apple)|iOS]], Google [[Android (operating system)|Android]], [[Windows 8.1]], [[Windows Phone 8.1]], [[Windows 10]] and [[Electron (software framework)]] (which in turn runs on [[Windows]], [[Linux]] and [[macOS]]).<ref>{{Cite web |title=Cordova support by platform - Apache Cordova |url=https://cordova.apache.org/docs/en/11.x/guide/support/ |access-date=2023-07-28 |website=cordova.apache.org}}</ref> Earlier version of Apache Cordova used to support [[Bada (operating system)|Bada]], [[BlackBerry]], [[Firefox OS]],<ref>{{cite web|title=Building Cordova apps for Firefox OS ✩ Mozilla Hacks – the Web developer blog|url=https://hacks.mozilla.org/2014/02/building-cordova-apps-for-firefox-os/|access-date=26 February 2014|date=20 February 2014}}</ref><ref>{{cite web|url=http://androidandme.com/2009/12/news/using-phonegap-and-the-sony-ericsson-websdk-to-develop-android-apps/ |title=Using PhoneGap and the Sony Ericsson WebSDK to develop Android apps |publisher=Android and Me |access-date=2012-04-07}}</ref> LG [[webOS]], Microsoft [[Windows Phone]] (7 and 8), [[macOS]], Nokia [[Symbian]] OS, [[Tizen]] (SDK 2.x), and [[Ubuntu Touch]].<ref>{{cite web | url=http://docs.phonegap.com/en/edge/guide_support_index.md.html#Platform%20Support | title=Platform Support | publisher=Adobe PhoneGap | access-date=2016-02-23 | archive-date=2013-10-26 | archive-url=https://web.archive.org/web/20131026103119/http://docs.phonegap.com/en/edge/guide_support_index.md.html#Platform%20Support | url-status=dead }}</ref><ref>{{cite web |url=http://www.phonegap.com/about/feature |title=PhoneGap supported features |publisher=Phonegap.com |access-date=2013-10-09 |archive-date=2011-06-22 |archive-url=https://web.archive.org/web/20110622040816/http://www.phonegap.com/about/feature |url-status=dead }}</ref>

{{Update|date=February 2019}}
{{Update|date=February 2019}}
{| class="wikitable sortable"
|-
! Feature
! [[Android (operating system)|Android]]<ref>{{cite web|url=https://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html|title=Android Platform Guide - Apache Cordova|website=cordova.apache.org|access-date=3 April 2018}}</ref>
! [[Apple iOS|Apple iPhone /iPhone 3G]]
! [[Apple iOS|Apple iPhone 3GS and newer]]
! [[Bada]]
! [[BlackBerry 10|BlackBerry 10 and PlayBook OS]]
! [[BlackBerry OS|BlackBerry OS 4.6–4.7]]
! [[BlackBerry OS|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}}


==See also==
|-
| [[Camera]]
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{n/a}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}


{{Portal|Free and open-source software}}
|-
| [[Compass]]
| {{Yes}}
| {{n/a}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{n/a}}
| {{n/a}}
| {{Yes}}
| {{n/a}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}


|-
| [[Contact list|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 web application frameworks]]
* [[List of rich web application frameworks]]
* [[Multiple phone web-based application framework]]
* [[Multiple phone web-based application framework]]
Line 262: Line 70:
* [[Xamarin]]
* [[Xamarin]]
* [[Flutter (software)|Flutter]]
* [[Flutter (software)|Flutter]]
* [[Appcelerator Titanium]]
* [[Titanium SDK]]
* [[Appery.io]]


==References==
==References==
Line 384: Line 193:
}}
}}
* {{Official website}}
* {{Official website}}
* [https://sdk.docutain.com/blogartikel/how-to-create-a-cordova-plugin-from-scratch How to create a Cordova Plugin from Scratch]


{{Apache Software Foundation}}
{{Apache Software Foundation}}


[[Category:Apache Software Foundation projects|Cordova]]
[[Category:2009 software]]
[[Category:Android (operating system) development software]]
[[Category:Android (operating system) development software]]
[[Category:Apache Software Foundation projects|Cordova]]
[[Category:BlackBerry development software]]
[[Category:BlackBerry development software]]
[[Category:Communication software]]
[[Category:Communication software]]
Line 394: Line 205:
[[Category:Mobile technology companies]]
[[Category:Mobile technology companies]]
[[Category:Rich web application frameworks]]
[[Category:Rich web application frameworks]]
[[Category:2009 software]]

Latest revision as of 21:02, 2 October 2024

Apache Cordova
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 release2009; 15 years ago (2009)
Stable release
12.0.0[1] Edit this on Wikidata / 22 May 2023; 18 months ago (22 May 2023)
Written inC#, C++, CSS, HTML, Java, JavaScript and Objective-C
PlatformAndroid
iOS, macOS
Windows (8.1, 10, Phone 8.1)
Electron[2]
TypeMobile development framework
LicenseApache License 2.0[3][4]
Websitecordova.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 by Nitobi Software 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.[citation needed]

Adobe acquired Nitobi Software on October 3, 2011.[13] The PhoneGap code was subsequently 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] It also appears in Adobe Systems as Adobe PhoneGap and also as Adobe PhoneGap Build.[citation needed]

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.[citation needed]

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]

See also

[edit]

References

[edit]
  1. ^ https://cordova.apache.org/news/2023/05/22/cordova-cli-12.0.0.html. {{cite web}}: Missing or empty |title= (help)
  2. ^ "Cordova support by platform - Apache Cordova". cordova.apache.org.
  3. ^ "PhoneGap License". Phonegap.com. Archived from the original on 2011-06-17. Retrieved 2013-10-09.
  4. ^ "FAQ | PhoneGap Build | Edge Tools & Services | Adobe & HTML". Html.adobe.com. Retrieved 2013-10-09.
  5. ^ "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.
  6. ^ 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.
  7. ^ Community, Tiki. "Apache Callback - Tiki Wiki CMS Groupware :: Development". Tiki Wiki CMS Groupware :: Development. Archived from the original on 4 April 2018. Retrieved 3 April 2018.
  8. ^ "Apache Callback Proposal". Wiki.phonegap.com. 2013-08-15. Archived from the original on 2011-10-05. Retrieved 2013-10-09.
  9. ^ "The Last Word on Cordova and PhoneGap". The Official Ionic Blog. 6 March 2014.
  10. ^ "Apache Cordova". Apache Cordova.
  11. ^ "Cordova Contributor's Who's Who". apache.org. 2015-11-02. Archived from the original on 2015-07-16. Retrieved 2015-11-02.
  12. ^ Myer, Thomas (2011-11-11). Beginning PhoneGap. John Wiley & Sons. ISBN 978-1-118-23932-2.
  13. ^ Rao, Leena (2011-10-03). "Adobe Acquires Developer Of HTML5 Mobile App Framework PhoneGap Nitobi". TechCrunch. Retrieved 2023-07-20.
  14. ^ Finley, Klint (2012-09-24). "Adobe Launches Hosted PhoneGap Build Service For Creating Cross-Platform Mobile Apps". TechCrunch. Retrieved 2023-07-20.
  15. ^ Wargo, John M. (2015-03-26). Apache Cordova 4 Programming. Addison-Wesley Professional. ISBN 978-0-13-404827-7.
  16. ^ "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.
  17. ^ Sapan Diwakar (2012-06-21). "Titanium vs Phonegap vs Native application development". Retrieved 2013-02-17.
  18. ^ "Cordova support by platform - Apache Cordova". cordova.apache.org. Retrieved 2023-07-28.
  19. ^ "Building Cordova apps for Firefox OS ✩ Mozilla Hacks – the Web developer blog". 20 February 2014. Retrieved 26 February 2014.
  20. ^ "Using PhoneGap and the Sony Ericsson WebSDK to develop Android apps". Android and Me. Retrieved 2012-04-07.
  21. ^ "Platform Support". Adobe PhoneGap. Archived from the original on 2013-10-26. Retrieved 2016-02-23.
  22. ^ "PhoneGap supported features". Phonegap.com. Archived from the original on 2011-06-22. Retrieved 2013-10-09.

Bibliography

[edit]
[edit]