Apache Cordova

Last updated
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]   OOjs UI icon edit-ltr-progressive.svg / 22 May 2023;8 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.

Contents

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

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

PhoneGap won the People's Choice Award at O'Reilly Media's 2009 Web 2.0 Conference.

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. [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

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

Related Research Articles

<span class="mw-page-title-main">Adobe Flash</span> Deprecated multimedia platform used to add animation and interactivity to websites

Adobe Flash is, except in China, a discontinued multimedia software platform used for production of animations, rich internet applications, desktop applications, mobile apps, mobile games, and embedded web browser video players.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

<span class="mw-page-title-main">Apache Flex</span> Software development kit (SDK) for the development and deployment of rich web applications

Apache Flex, formerly Adobe Flex, is a software development kit (SDK) for the development and deployment of cross-platform rich web applications based on the Adobe Flash platform. Initially developed by Macromedia and then acquired by Adobe Systems, Adobe donated Flex to the Apache Software Foundation in 2011 and it was promoted to a top-level project in December 2012.

Mobile app development is the act or process by which a mobile app is developed for one or more mobile devices, which can include personal digital assistants (PDA), enterprise digital assistants (EDA), or mobile phones. Such software applications are specifically designed to run on mobile devices, taking numerous hardware constraints into consideration. Common constraints include CPU architecture and speeds, available memory (RAM), limited data storage capacities, and considerable variation in displays and input methods. These applications can be pre-installed on phones during manufacturing or delivered as web applications, using server-side or client-side processing to provide an "application-like" experience within a web browser.

<span class="mw-page-title-main">Adobe AIR</span> Cross-platform runtime system for building rich web applications

Adobe AIR is a cross-platform runtime system currently developed by Harman International, in collaboration with Adobe Inc., for building desktop applications and mobile applications, programmed using Adobe Animate, ActionScript, and optionally Apache Flex. It was originally released in 2008. The runtime supports installable applications on Windows, macOS, and mobile operating systems, including Android, iOS, and BlackBerry Tablet OS.

iOS SDK Software development kit for iOS

The iOS SDK, formerly the iPhone SDK, is a software development kit (SDK) developed by Apple Inc. The kit allows for the development of mobile apps on Apple's iOS and iPadOS operating systems.

NS Basic is a family of development tools developed and commercially marketed by NSB Corporation in Toronto, Ontario, Canada for iOS, Android, Microsoft Windows, MacOS, Linux, BlackBerry OS, WebOS, Newton OS, Palm OS, Windows CE and Windows Mobile.

A mobile development framework is a software framework that is designed to support mobile app development. It is a software library that provides a fundamental structure to support the development of applications for a specific environment.

<span class="mw-page-title-main">MoSync</span>

MoSync is a discontinued free and open-source software development kit (SDK) for mobile applications. It is integrated with the Eclipse development environment. The framework produces native mobile applications for multiple platforms using C/C++, HTML5 scripting and any combination thereof. The target group for MoSync are both web developers looking to enter the mobile space, as well as the ordinary PC/Mac desktop developer with knowledge in C/C++ development.

Titanium SDK is an open-source framework that allows the creation of native mobile applications on platforms iOS and Android from a single JavaScript codebase. It is presently developed by non-profit software foundation TiDev, Inc.

A mobile enterprise application platform (MEAP) is a suite of products and services that enable the development of mobile applications. The term was coined in a Gartner Magic Quadrant report in 2008 when they renamed their "multichannel access gateway market".

<span class="mw-page-title-main">Sencha Touch</span> JavaScript framework

Sencha Touch is a user interface (UI) JavaScript library, or web framework, specifically built for the Mobile Web. It can be used by Web developers to develop user interfaces for mobile web applications that look and feel like native applications on supported mobile devices. It is based on web standards such as HTML5, CSS3 and JavaScript. The goal of Sencha Touch is to facilitate quick and easy development of HTML5 based mobile apps which run on Android, iOS, Windows, Tizen and BlackBerry devices, simultaneously allowing a native look and feel to the apps.

Adobe Edge is a discontinued suite of web development tools that Adobe Inc. started developing in 2011. The tools enhances the capabilities of other Adobe apps, such as Dreamweaver. The first app in the suite was the eponymous Adobe Edge, released in August 2011 as a multimedia authoring tool designed to succeed the Flash platform. In September 2012, Adobe renamed the app Edge Animate, and announced Edge Reflow, Edge Code, and Edge Inspect. Also packaged with the suite are Edge Web Fonts, the PhoneGap app, and an Adobe Typekit subscription. In October 2015, Adobe announced an end to the development of the Edge family. By the end of September 2019, all Adobe Edge products were removed from the Creative Cloud offering.

<span class="mw-page-title-main">Appcelerator</span> Privately-held mobile technology company

Appcelerator is a privately held mobile technology company based in San Jose, California. Its main products are Titanium, an open-source software development kit for cross-platform mobile development, and the Appcelerator Platform.

<span class="mw-page-title-main">WinJS</span> Open-source JavaScript library

The Windows Library for JavaScript is an open-source JavaScript library developed by Microsoft. It has been designed with the primary goal of easing development of Windows Store apps for Windows 8 and Windows 10, as well as Windows Phone apps for Windows Phone 8.1, Windows 10 Mobile and Xbox One applications using HTML5 and JavaScript, as an alternative to using WinRT XAML and C#, VB.NET or C++ (CX).

<span class="mw-page-title-main">Ionic (mobile app framework)</span> Open-source framework to develop hybrid mobile apps

Ionic is a complete open-source SDK for hybrid mobile app development created by Max Lynch, Ben Sperry, and Adam Bradley of Drifty Co. in 2013. The original version was released in 2013 and built on top of AngularJS and Apache Cordova. However, the latest release was re-built as a set of Web Components using StencilJS, allowing the user to choose any user interface framework, such as Angular, React or Vue.js. It also allows the use of Ionic components with no user interface framework at all. Ionic provides tools and services for developing hybrid mobile, desktop, and progressive web apps based on modern web development technologies and practices, using Web technologies like CSS, HTML5, and Sass. In particular, mobile apps can be built with these Web technologies and then distributed through native app stores to be installed on devices by utilizing Cordova or Capacitor.

Crosswalk Project was an open-source web app runtime built with the latest releases of Chromium and Blink from Google. The project was founded by Intel's Open Source Technology Center in September 2013.

Monaca is a collection of software tools and services for building and deploying HTML5 mobile hybrid apps. Built using open-source Apache Cordova, it provides resources including Cloud IDE, local development tools, a debugger, and backend support.

<span class="mw-page-title-main">React Native</span> Open-source mobile application framework

React Native is an open-source UI software framework created by Meta Platforms, Inc. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP by enabling developers to use the React framework along with native platform capabilities. It is used to develop the Android and iOS applications at Facebook, Microsoft, and Shopify. It is also being used to develop virtual reality applications at Oculus.

<span class="mw-page-title-main">Appery.io</span> App-building platform

Appery.io is a cloud-based HTML5, Ionic, jQuery Mobile, and hybrid app-building platform for developing mobile apps, web apps, and PWAs. Appery.io is a browser-based drag-and-drop visual builder tool that supports Android and iOS with integrated Apache Cordova/PhoneGap output. The platform is used by DIYers to create apps for their customers.

References

  1. Error: Unable to display the reference properly. See the documentation for details.
  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