Die Verwendung mobiler Endgeräte boomt. Nur ist der mobile Bereich ein extrem heterogenes Umfeld – sowohl was die Hardware angeht, aber auch was die Bedienkonzepte,  verwendeten Programmiersprachen und Betriebssysteme betrifft.

Zwar ist native Programmierung von mobilen Applikationen (Apps) immer noch die Regel, aber diese hat die Einschränkung, dass Sie sich auf eine Hardware samt speziellem Betriebssystem oder gar nur eine spezielle Version davon konzentrieren. Wollen Sie mehrere Welten unterstützen, müssen Sie gegebenenfalls für jedes Zielsystem eine eigene App erstellen, die funktional identisch zu einer bereits vorhandenen App für ein weiteres Zielsystem ist. Eine Alternative bietet die Verwendung klassischer Web-Technologien als Basis einer App. Insbesondere HTML und CSS werden in Verbindung mit JavaScript mittlerweile von allen relevanten Herstellern mobiler Endgeräte unterstützt und die neuen Möglichkeiten von HTML5 und CSS3 eröffnen sehr interessante Perspektiven. So hat man jedochl das Problem, dass man aus einem Browser auf dem mobilen Gerät keinen direkten Zugang zur Hardware und wichtigen nativen Softwarebestandteilen hat.

Dieses Problem lässt sich lösen, indem man ein zusätzliches Framework wie PhoneGap verwendet. Derartige Web-Apps lassen sich zudem wie native Apps auf einem Endgerät installieren. Denn PhoneGap erzeugt aus reinem Web-Code native Applikationen. Oder genauer – PhoneGap packt sie in native Apps ein. Dazu wird ein Foreign Function Interface (FFI) gegenüber einer eingebetteten WebView- oder Webkit-Engine (als grob gesagt dem Webbrowser) auf dem mobilen Gerät bereitgestellt (der sogenannte PhoneGap-Wrapper). So können mit PhoneGap erstellte Apps auch in einem der spezifischen Marktplätze bereitgestellt werden.

Bild 1: WebApps erstellen mit PhoneGap

Bild 1: phonegap.com

Das spannende an PhoneGap ist also einmal, dass Sie für eine Vielzahl von Zielplattformen (Android, iOS, Windows Phone und noch einige weitere) mit einem einheitlichen Quellcode rein auf Basis von Web-Technologien Apps programmieren können und dennoch aus JavaScript nahezu alle Features eines mobilen Endgeräts ansprechen können. Dazu zählen hardwarenahe Dinge wie Kompass- und, Ausrichtungssensoren, GPS oder die Kamera, aber auch Softwareelemente wie das Adressbuch eines Smartphones oder der local Storage. Die meisten dieser Möglichkeiten waren schon in der ersten Version von PhoneGap integriert, das Framework wird jedoch auch immer um neue Features erweitert. In den derzeit aktuellen Versionen von PhoneGab gibt es etwa für Android und iOS die Möglichkeit, einer App einen Splashscreen voranzustellen. Dazu erweitert PhoneGap das navigator-Objekt des DOM um ein entsprechendes splashscreen-Objekt, das mit den Methoden show() angezeigt und mit hide() wieder weggeblendet werden können. So ließe sich diese Funktion anwenden (show()), wenn man eine typische Basis-Webseite einer PhoneGap-App schematisch betrachtet:

Bild 2: WebApps mit PhoneGap

Bild 2: Der App einen Splashscreen voranstellen

Nachdem das Gerät fertig initialisiert ist, wird ein Splashscreen angezeigt. Sobald notwendige weitere Initialisierungsschritte erledigt sind, kann man den Splashscreen mit hide() ausblenden.

Ein weiteres recht neues Feature im PhoneGap-API ist ein InAppBrowser. Damit können Sie in Ihrer App (fremde) Web-Inhalte in einem integrierten Browser anzeigen. Für die nächste Zeit ist zu erwarten, dass die Features von PhoneGap immer weiter wachsen und Web-Apps den Möglichkeiten von nativen Apps in keiner Weise nachstehen.

Bild 3: WebApps erstellen mit PhoneGap
 Bild 3: InApp Browser

Apps mit PhoneGap entwickeln

Apps mit PhoneGap entwickeln

Weiterführende Informationen zum Thema PhoneGap finden Sie in Apps mit PhoneGap entwickeln.