PhoneGap

PhoneGap (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
Developer(s) Adobe Systems
Stable release 4.2.0 / January 10, 2015
Development status Active
Written in JavaScript, HTML5, CSS3, Java, C++, C# 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 www.phonegap.com
cordova.apache.org

In software development, PhoneGap is a mobile development framework created by Nitobi. Adobe Systems purchased Nitobi in 2011.[3][4] It enables software programmers to build applications for mobile devices using JavaScript, HTML5, and CSS3, instead of relying on platform-specific APIs like those in iOS, Windows Phone, or Android.[5] It enables wrapping up of HTML, CSS 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 underlying PhoneGap is Apache Cordova.[6] The software was previously called just "PhoneGap", then "Apache Callback".[7][8] As open-source software, Apache Cordova allows non-Adobe wrappers around it, such as Intel XDK or Appery.io.

History

First developed at an iPhoneDevCamp event in San Francisco,[9] PhoneGap went on to win the People's Choice Award at O'Reilly Media's 2009 Web 2.0 Conference[10] and the framework has been used to develop many apps.[11] Apple Inc. has confirmed that the framework has its approval, even with the new 4.0 developer license agreement changes.[12] The PhoneGap framework is used by several mobile application platforms such as Asial's Monaca,[13] ViziApps,[14] Worklight,[15][16] Convertigo,[17][18] and appMobi[19] as the backbone of their mobile client development engine. Adobe officially announced the acquisition of Nitobi Software (the original developer) on October 4, 2011.[20] 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.[21] Then it also appears in Adobe Systems as Adobe PhoneGap and also as Adobe Phonegap Build.[22]

Early versions of PhoneGap required a person making iOS apps to have an Apple computer, and a person making Windows Mobile apps to have a computer running Windows. After September 2012, Adobe's PhoneGap Build service allows programmers to upload HTML, CSS and JavaScript source code to a "cloud compiler" that generates apps for every supported platform.[23]

Design and rationale

The core of PhoneGap applications use HTML5 and CSS3 for their rendering, and JavaScript for their logic. Although HTML5 now provides access to underlying hardware such as the accelerometer, camera and GPS, browser support for HTML5-based device access is not consistent across mobile browsers, particularly older versions of Android. To overcome these limitations, the PhoneGap framework embeds HTML5 code inside a native WebView on the device, using a foreign function interface to access the native resources of the device.[24]

PhoneGap is also able to be extended with native plug-ins that allow for developers to add functionality that can be called from JavaScript, allowing for direct communication between the native layer and the HTML5 page. PhoneGap includes basic plugins that allow access to the device's accelerometer, camera, microphone, compass, file system, and more.

However, the use of web-based technologies leads many PhoneGap applications to run slower than native applications with similar functionality.[25] Adobe Systems warns that applications built using PhoneGap 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).[26][27]

Supported platforms

PhoneGap currently supports development for the operating systems Apple iOS, BlackBerry, Google Android,[28] LG webOS, Microsoft Windows Phone (7 and 8), Nokia Symbian OS, Tizen (SDK 2.x), Bada, Firefox OS,[29] and Ubuntu Touch. The table below is a list of supported features for each operating system.[30][31][32]

Feature iPhone /iPhone 3G iPhone 3GS and newer Android 1.0 – 4.4 Windows Phone BlackBerry 10 and PlayBook OS BlackBerry OS 4.6–4.7 BlackBerry OS 5.0-6.0+ Bada Symbian webOS Tizen Ubuntu Touch Firefox OS
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 N/A Yes 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 N/A Yes N/A Yes
File Yes Yes Yes Yes Yes N/A Yes N/A N/A N/A Yes Yes N/A
Geolocation Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Media Yes Yes Yes Yes Yes N/A N/A N/A N/A N/A Yes Yes N/A
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 Yes Yes N/A Yes N/A Yes Yes Yes Yes Yes

See also

References

  1. "PhoneGap License". Phonegap.com. Retrieved 2013-10-09.
  2. "FAQ | PhoneGap Build | Edge Tools & Services | Adobe & HTML". Html.adobe.com. Retrieved 2013-10-09.
  3. "Adobe Announces Agreement to Acquire Nitobi, Creator of PhoneGap". Adobe.com. 2011-10-03. Retrieved 2012-04-07.
  4. "Andre Charland's Answers on PhoneGap". Quora. Retrieved 2012-04-07.
  5. Jose Fermoso (April 5, 2009). "PhoneGap Seeks to Bridge the Gap Between Mobile App Platforms". GigaOM. Retrieved 2012-04-07.
  6. "Apache Cordova gets a new look - The H Open Source: News and Features". H-online.com. 2012-02-22. Archived from the original on 7 December 2013. Retrieved 2012-04-07.
  7. Apache Callback Project Incubation Status
  8. "Apache Callback Proposal". Wiki.phonegap.com. 2013-08-15. Retrieved 2013-10-09.
  9. Darryl K. Taft (2009-03-13). "PhoneGap Simplifies iPhone, Android, BlackBerry Development". Eweek.com. Retrieved 2013-10-09.
  10. Davis, Lidija (2009-04-02). "PhoneGap: People's Choice Winner at Web 2.0 Expo Launch Pad". Readwriteweb.com. Retrieved 2012-04-07.
  11. "PhoneGap Apps". Phonegap.com. Retrieved 2012-12-06.
  12. "PhoneGap and the Apple developer license agreement. « PhoneGap". Phonegap.com. 2010-04-14. Retrieved 2012-04-07.
  13. "Develop Awesome PhoneGap Apps with Awesome Tools". monaco.mobi. Retrieved 2014-06-10.
  14. "Create Mobile and Web Apps with HTML5 and JavaScript". ViziApps.com. Retrieved 2012-04-07.
  15. "Mobile Application Platform and Tools". Worklight. 2012-01-16. Retrieved 2012-04-07.
  16. "How PhoneGap plays an important part in our Enterprise offering « PhoneGap". Phonegap.com. 2011-06-27. Retrieved 2012-04-07.
  17. "Open Source Mobile Enablement and Enterprise Mashups". Convertigo. Retrieved 2012-04-07.
  18. "Convertigo Mobilizer Uses PhoneGap Build APIs « PhoneGap". Phonegap.com. 2011-07-07. Retrieved 2012-04-07.
  19. "Create Mobile and Web Apps with HTML5 and JavaScript |". appMobi.com. Retrieved 2012-04-07.
  20. Shankland, Stephen (2011-10-03). "Adobe buys PhoneGap, TypeKit for better Web tools | Deep Tech - CNET News". News.cnet.com. Retrieved 2012-04-07.
  21. "finding a new name that isn't PhoneGap - Brian LeRoux - org.apache.incubator.callback-dev". MarkMail. 2011-10-28. Retrieved 2012-04-07.
  22. "Adobe PhoneGap Build". Adobe Systems Inc.
  23. Klint Finley. "Adobe Launches Hosted PhoneGap Build Service For Creating Cross-Platform Mobile Apps". 2012.
  24. "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.
  25. Sapan Diwakar (2012-06-21). "Titanium vs Phonegap vs Native application development". Retrieved 2013-02-17.
  26. "PhoneGap advice on dealing with Apple application rejections". Adobe Systems. 2012-10-29. Retrieved 2013-02-17.
  27. "Creating apps with PhoneGap: Lessons learned". Adobe Systems. 2012-09-17. Retrieved 2013-02-17. 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
  28. "Using PhoneGap and the Sony Ericsson WebSDK to develop Android apps". Android and Me. Retrieved 2012-04-07.
  29. "Building Cordova apps for Firefox OS ✩ Mozilla Hacks – the Web developer blog". 20 February 2014. Retrieved 26 February 2014.
  30. http://docs.phonegap.com/en/edge/guide_support_index.md.html#Platform%20Support
  31. "PhoneGap supported features". Phonegap.com. Retrieved 2013-10-09.
  32. http://www.htmlpanda.com/blog/phonegap-app-development-supported-platforms-with-native-features/

Bibliography

External links

The Wikibook Android has a page on the topic of: PhoneGap