PhoneGap ist ein Framework zur Erstellung hybrider Applikationen für mobile Endgeräte. PhoneGap wurde ursprünglich von der Firma Nitobi produziert, welche 2011 von Adobe Systems gekauft wurde. PhoneGap ermöglicht es, Anwendungssoftware für mobile Endgeräte mit JavaScript, HTML5 und CSS 3 zu schreiben, anstelle von gerätespezifischen Programmiersprachen wie Objective-C oder Java.
Die dabei entstehenden Applikationen sind hybride Applikationen; sie sind weder native Applikationen, weil das Layout mittels Webtechnologien und nicht mit nativen User Interface Frameworks gemacht wird, noch sind sie webbasierte Applikationen, da sie als Apps über die Verkaufsportale der Betriebssystemhersteller verteilt werden können und auf die Programmierschnittstellen der Betriebssysteme der Endgeräte zugreifen können. Ab der Version 1.9 ist es sogar möglich, frei native und hybride Codeteile zu mischen.
PhoneGap baut auf Apache Cordova auf welches von Adobe/Nitobi der Apache Software Foundation gespendet wurde. Apache Cordova hieß ursprünglich ebenfalls PhoneGap, musste aber aus rechtlichen Gründen umbenannt werden, da für Apache Projekte aus markenrechtlichen Gründen keine bereits belegten Namen verwendet werden dürfen. Es wurde zunächst Apache Callback genannt und später in Apache Cordova umbenannt. Bei Adobe Systems taucht es auch als Adobe PhoneGap und Adobe PhoneGap Build auf.
PhoneGap wurde für die Erstellung vieler mobiler Applikationen verwendet, auf der PhoneGap-Website werden 1.890 in den diversen Online Stores vertriebene gelistet. Apple Inc. hat bestätigt, dass das Framework auch mit den 4.0-Entwickler-Lizenzabkommen kompatibel ist.
PhoneGap wird von verschiedenen mobilen Applikationsplattformen wie ViziApps, Worklight, Convertigo appMobi und AppByYou verwendet. Die JavaScript-Bibliothek Sencha Touch ist seit der Version 2.3 kompatibel mit PhoneGap, wodurch eine vereinfachte Integration von APIs, wie Notifikation, Kontakte, Speicher oder Kamera möglich ist.
Geschichte
Erstmals vorgestellt und weiterentwickelt wurde PhoneGap während eines iPhoneDevCamp Events in San Francisco. Bei der O’Reilly Media 2009 Web 2.0 Conference gewann PhoneGap den People’s Choice Award. Am 4. Oktober 2011 verkündete Adobe offiziell die Übernahme von Nitobi Software, der ursprünglich hinter der PhoneGap Entwicklung stehenden Firma. Gleichzeitig wurde PhoneGap der Apache Software Foundation gespendet.
Frühe Versionen von PhoneGap benötigten einen Apple-Computer, um iOS-Applikationen, und einen Windows PC, um Windows-Mobile-Applikationen erstellen zu können. Seit September 2012 ermöglicht Adobes PhoneGap Build Service das Hochladen von PhoneGap-Applikationen in Form von HTML-, CSS- und JavaScript-Sourcecode in einen sogenannten „Cloud compiler“, der die Applikationen für alle unterstützten Plattformen generiert.
Vorgehensweise
PhoneGap-Applikationen verwenden HTML5 und CSS3 für die Darstellung und JavaScript für die Programmlogik. Obwohl HTML5 Zugriff auf mobile Technologien wie Beschleunigungssensor, Kamera und GPS ermöglicht, wird HTML5 noch nicht gleichmäßig für alle mobilen Browser, speziell für ältere Androidversionen, angeboten. Um diese Beeinträchtigungen zu vermeiden, bettet das PhoneGap-Framework HTML5-Code in einer nativen WebView mittels Foreign Function Interface ein. Damit können die nativen APIs der Geräte direkt angesprochen werden.
PhoneGap kann auch mit nativen Plug-ins, welche den Entwicklern per JavaScript aufrufbare Funktionalitäten zur Verfügung stellen, erweitert werden. PhoneGap stellt bereits Plug-ins für den Zugriff auf Kontakte und Termine, Benachrichtigungen, Locale des Benutzers, Speicher und Dateien, Device- und Verbindungsinformationen, Splash Screen, In-App-Browser, Beschleunigungssensor, Kamera, Ton-, Bild- und Videoaufnahme und -abspielung, Kompass und GPS zur Verfügung.
Durch die Verwendung der webbasierten Technologien werden PhoneGap-Applikationen unter Umständen langsamer als native Applikationen mit gleichartiger Funktionalität. Adobe Systems warnt davor, dass mit PhoneGap entwickelte Applikationen möglicherweise von Apple, auf Grund ihrer geringen Geschwindigkeit oder weil sie sich nicht „nativ genug“ anfühlen, nicht akzeptiert werden.
Unterstützte Plattformen
PhoneGap unterstützt derzeit die Entwicklung für die Betriebssysteme Apple iOS, Google Android, LG webOS, Microsoft Windows Phone, RIM BlackBerry und Tizen (SDK 2.x). Erweiterungen von PhoneGap für andere Betriebssysteme und Versionen sind geplant oder werden von anderen Herstellern angeboten. Unterstützt wird unter anderem Nokia Symbian OS, Bada.
Die folgende Tabelle zeigt, welche für Mobile Devices typischen Fähigkeiten je Betriebssystem von PhoneGap unterstützt werden:
Fähigkeiten | iPhone | iPhone | Android | Windows | BlackBerry | Bada | Symbian | webOS | Tizen |
---|---|---|---|---|---|---|---|---|---|
Beschleunigungssensor | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
Kamera | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
Kompass | Nein | Ja | Ja | Ja | Ja | Ja | Nein | Ja | Ja |
Kontakte | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nein | Ja |
Dateien | Ja | Ja | Ja | Ja | Ja | Nein | Nein | Nein | Ja |
Geolocation | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
Medien | Ja | Ja | Ja | Ja | Ja | Nein | Nein | Nein | Ja |
Netzwerk | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
Alarm, Ton, Vibration | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
Speicher | Ja | Ja | Ja | Ja | Ja | Nein | Ja | Ja | Ja |