Was ist PhoneGap?
Vor etwas über einer Woche habe ich in diesem Blog über Appcelerator/Titanium geschrieben. Mein Fazit war: trotz schwieriger Installation und dürftiger Doku ist Titanium eine interessante Software, wenn man native Apps für Android Smartphones oder iPhones ohne Kenntnisse von Java oder Objective C entwickeln will. Zielgruppe: Web Developer.
Kurz nachdem ich die Artikel über Titanium geschrieben hatte, stolperte ich über die Bücher von Jonathan Stark. In ihnen wird beschrieben, wie man Web Apps für iPhone und Android entwickeln kann. Es ist aber auch jeweils ein Kapitel enthalten, in dem beschrieben wird, was man tun kann, um aus der Web App eine native App zu machen. Und dieses kleine Kunststück soll PhoneGap schaffen. Ok, der Köder war geschluckt. Das musste ich ausprobieren.
Auf der PhoneGap Website steht in etwa (frei übersetzt):
PhoneGap ist ein Open Source Entwicklungs-Framework zum Erstellen von Apps für verschiedene mobile Endgeräte. Baue Apps in HTML, CSS, JavaScript und nutze dennoch die Core Features der SDKs von iPhone/iTouch, iPad, Google Android, Palm, Symbian und Blackberry.
Als da wären GPS, Kamera, Audio, etc.
Plug and Play
war gestern, es lebe die Kommandozeile.
Ohne viele Umschweife: ohne Kommandozeile geht gar nichts. Entscheide Dich jetzt
Wenn Du nichts mit der Kommandozeile zu tun haben willst, dann kannst Du Dich jetzt anderen Dingen zuwenden. Denn PhoneGap ohne Kommandozeile – ich denke, das geht nicht.
Insofern kannst Du Dir jetzt eventuell die Installation sparen. Und die ist keine Kleinigkeit. Wenn’s doch nur PhoneGap wäre. Aber es kommt wieder so einiges zusammen. Zum Glück musste ich nicht bei Null anfangen. Die Java JDK und Android SDK hatte ich ja schon wg. Titanium. Es mussten dann noch Eclipse (Entwicklungsplatform), ein Plugin für Eclipse (ADT – Android Development Tools), Apache Ant, Ruby und schließlich PhoneGap installiert und konfiguriert werden.
Sei doch nicht so native
Ein Klick und aus der Web wurde eine native App. Schön wär’s. Die Umwandlung einer Web App in eine native App erfordert so einige Schritte. Und mehrfach ist dabei die bereits erwähnte Kommandozeile beteiligt. Wobei ich nicht ausschließen kann, dass es verschiedene Wege zum Ziel geben könnte. Und möglicherweise ist meiner etwas umständlich. Ich weiß es nicht mit Sicherheit – aber mein Weg funktioniert, und das ist immerhin auch schon viel wert. Dies sind die Schritte:
- Bereitstellung der Web App
Alle Files, die benötigt werden, müssen innerhalb dieser Ordnerstruktur sein. - Umwandlung der Webapp in eine Struktur, die in Eclipse importiert werden kann
In diesem Prozess werden neue Ordner angelegt und Dateien erzeugt. Wird über Kommandozeile gestartet. - Import in Eclipse
Import dieser neu erzeugten Struktur in Eclipse. Dort ist noch eine kleine Konfigurationseinstellung vorzunehmen. - Bearbeitung in Eclipse (oder einem anderne Editor)
Nun kann man die Dateien, falls es denn erforderlich ist, auch noch weiter bearbeiten. Eclipse beobachtet das und erstellt on the fly jeweils ein aktuelles Installationspaket. Bei Android sind das die Dateien mit der Endung apk.
Wenn man sich an die Installationsanleitung hält, dann wird man feststellen, dass Eclipse in der installierten Version kein Syntax-Highlighting für HTML, CSS und JavaScript bietet. Wer sich mit Eclipse auskennt, kann dieses Feature sicherlich nachinstallieren (bin für entsprechende Tips dankbar…). - Testen im Emulator oder auf dem Smartphone.
Ich teste auf meinem Smartphone. Dazu installiere ich die apk-Datei via Kommandozeile auf meinem Handy.
Funktioniert
Erstaunlich, aber es funktioniert. Phonegap (und all die anderen Beteiligten) machen aus einer Web App eine native App. Und im Gegensatz zu Titanium ist die eigentliche Programmierung bedeutend einfacher, denn man muss NICHTS zusätzlich schreiben. Bei Titanium muss erst ein Fenster erstellt werden, dann eventuell ein Webview, in den man die Web App lädt. Man hat da mit einigen Dingen zu tun, die man erst wieder lernen muß und die auch eventuell Probleme bereiten. Phonegap ist da einfacher. Außer den Methoden zum Ansprechen der Kern-Features (Kamera, etc) muss (zunächst) nicht viel dazu gelernt werden. Der Installationsaufwand ist beträchtlich. Das Handling gewöhnungsbedürftig (Kommandozeile). Aber das Ergebnis ist gut, es funktioniert. Daumen hoch und Verneigung vor den PhoneGap Team. Gute Arbeit!!
Links:


Pingback: Zeitschrift Website Boosting – Ausgabe 10 | Tobias Scheible