26.02.2014 Aufrufe

smart developer Ein Code für alle (Vorschau)

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Schwerpunkt<br />

HTML5 mit Jo und PhoneGap<br />

ter und folgen Sie den Anweisungen, um<br />

PhoneGap <strong>für</strong> Ihre jeweilige Plattform zu installieren.<br />

(Es gibt <strong>für</strong> jede Plattform eine eigene<br />

Seite mit Informationen <strong>für</strong> Neueinsteiger<br />

[4]; nutzen Sie die Test-App, um sicherzustellen,<br />

dass die Installationsumgebung<br />

korrekt eingerichtet wurde.)<br />

Um Jo zu installieren, müssen Sie nur die<br />

nötigen Dateien an den passenden Ort kopieren.<br />

Erstellen Sie im entsprechenden www-Verzeichnis<br />

Ihres mobilen Betriebssystems einen<br />

Ordner namens jo und kopieren Sie dann die<br />

Datei jo.js aus dem Unterordner js, den Sie<br />

in Jos Installationsverzeichnis finden, direkt<br />

dort hinein. Kopieren Sie dann den gesamten<br />

Ordner css ins Verzeichnis jo in Ihrem Projektverzeichnis.<br />

Zu guter Letzt müssen Sie noch die Datei<br />

index.html abändern, um das Jo-Framework<br />

und die zugehörigen CSS-Dateien einzubinden.<br />

Wenn Sie schon einmal am Editieren<br />

sind, können Sie auch gleich eine Datei hinzufügen,<br />

in der Ihr Programmcode sowie die<br />

Daten aus dem Google Maps API [5] gespeichert<br />

werden, sodass Sie die gespeicherten<br />

Standorte auf einer Karte abbilden können.<br />

Fügen Sie im Abschnitt HEAD den <strong>Code</strong> aus<br />

Listing 1 hinzu, außerdem müssen die beiden<br />

folgenden <strong>Code</strong>zeilen in den Startup-Abschnitt<br />

Ihres Betriebssystems eingefügt werden<br />

(beispielsweise in die Funktion<br />

onDevice Ready).<br />

jo.load();<br />

App.init();<br />

Erstellen Sie im Anschluss eine leere Datei<br />

namens main.js.<br />

Planen der App<br />

Da wir eine eher „klassische“ App erstellen<br />

wollen, fangen wir mit dem Hauptmenü-<br />

Bildschirm (oder Karte) mit drei Menüelementen<br />

an: Track (Standort Aufzeichnen),<br />

Saved Prints (Abgespeicherte Routen) und<br />

Options (Optionen). Beim Nachprogrammieren<br />

jedes Menüelements werden Sie jeweils<br />

ein anderes Jo-Widget kennenlernen. Wäre<br />

dies hier kein Programmierprojekt, dann<br />

wäre es wohl am sinnvollsten, wenn Ihre<br />

App gleich nach dem Hochfahren den Track-<br />

Bildschirm, d.h. den Bildschirm mit der<br />

Standort-Aufzeichnungsfunktion, zeigen<br />

würde, da Anwender wahrscheinlich diese<br />

Funktion als Erstes ausprobieren wollen.<br />

Sie können sich Ihre App so vorstellen,<br />

dass jede einzelne ihrer Funktionen eine<br />

Karte in einem Stapel darstellt. Dieser Ansatz<br />

funktioniert bei Jo sehr gut. Jede Jo App<br />

wird als joScreen dargestellt, der die BODY-<br />

Elemente des Browsers abstrahiert. Apps<br />

können dem Bildschirm joCard-Elemente<br />

hinzufügen. JoCards werden über einen<br />

joStack (oder joStackScroller) verwaltet,<br />

außerdem können Programmierer mittels<br />

dieser Elemente push- und pop-Methoden<br />

auf die aktiven Karten anwenden.<br />

Für jede der drei oben beschriebenen<br />

Funktionen müssen Sie Karten erstellen.<br />

Aber zunächst brauchen Sie eine Struktur, in<br />

die Ihre Karten eingebettet werden können.<br />

Das App-Skelett<br />

Sicherlich wollen Sie den globalen Namespace<br />

von JavaScript nicht unnötig verschmutzen.<br />

Deswegen ist es am besten, den<br />

App-<strong>Code</strong> in ein Objekt zu verpacken und<br />

mittels des Module Pattern <strong>alle</strong> „Innereien“<br />

der App dort einzubetten, sodass kein anderer<br />

JavaScript-<strong>Code</strong> darauf zugreifen kann.<br />

Wenn Sie die Programmzeilen aus Listing<br />

2 zu der Datei main.js hinzufügen, erstellen<br />

Sie damit ein App-Objekt mit ein paar internen<br />

Daten (die Sie später noch brauchen<br />

werden) und Funktionen. Nachdem Sie dann<br />

Ihren joScreen erstellt haben, wird <strong>alle</strong>s, was<br />

Sie auf dem Bildschirm platzieren, auch auf<br />

<strong>alle</strong>n anderen Bildschirmen der App sichtbar<br />

sein. Wenn Sie joNavbar verwenden, wird<br />

damit auf <strong>alle</strong>n App-Bildschirmen eine Titelleiste<br />

eingeblendet, außerdem ein plattformspezifischer<br />

Back-Button (bei webOS-Apps<br />

wird beispielsweise die gängige Zurück-Geste<br />

benutzt). Der Befehl return am Schluss gibt<br />

<strong>alle</strong> Daten und Funktionen zurück, die Sie<br />

außerhalb Ihres Objektes zur Verfügung stellen<br />

wollen. In diesem Fall geben Sie nur die<br />

init-Funktion selbst zurück, da dadurch <strong>alle</strong><br />

anderen von Ihnen benötigten Prozesse angestoßen<br />

werden.<br />

Die Menü-Karte<br />

Bei Jo steht Ihnen ein äußerst einfach zu benutzendes<br />

Menü-Widget zur Verfügung namens<br />

joMenu. Um ein joMenu zu erstellen,<br />

müssen Sie dem Widget ein Objekt-Array<br />

übergeben, das die Menüoptionen und IDs<br />

enthält. Die Klickevents im Menü werden abgefangen<br />

und über die ID der gewählten Option<br />

wird dann die entsprechende Karte ge-<br />

Listing 1: index.html wird erweitert<br />

<br />

<br />

<br />

<br />

<strong>smart</strong>-<strong>developer</strong>.de 02/2011 13

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!