
Apps kann man nicht nur mit dem Gespann ObjectivC/Cocoa bauen, sondern auch mit HTML5/Javascript. Für den ernsthaften Webprogrammierer ist das eine sehr sinnvolle Alternative, kann er doch auf sein lang angehäuftes Wissen aufbauen. Das Prinzip ist ähnlich der Wap- oder i-mode-Philisophie. Alle Inhalte (HTML/Javascript/CSS) liegen auf einer Seite, dynamische Inhalte werden über Ajax nachgeladen. Natürlich kann der Kram händisch mit dem wunderbaren Editor namens vi zusammengebastelt werden. Dann flanscht man das ganze Verzeichnis in die Entwicklungsumgebung für das iPhone, schiebt noch phonegap mit hinein und dann wird eine App gebaut, die dann alles Statische enthält. Auf das iPhone kopiert darf der Handschmeichlerwischer die App wie gewohnt starten.
So eine WebApp hat doch einige Unterschiede zu einer altbackenen Webseite: der größte Unterschied ist eben, dass alles auf einer Seite bleibt. Ein Wechsel zu einer Seite würde sofort den Safari ins Gespräch bringen. Augenfälligster Unterschied ist die völlig andere Naviagtion, die etwas an die Pionierzeiten des Webs, nämlich an Gopher erinnert. Damals gab es Navigations- und Inhaltsseiten. Man navigierte also durch Listen und landete auf einer lesenwerten Seite. Von dort aus konnte man nur zurück, aber nicht weitersurfen. im Prinzip ist das bei mobilen Webapps auch so. Bis auf eine zarte Fußleiste folgt die Gesamtnavigation dem alten Prinzip aus den Pionierzeiten des Netzes.

Nicht nur Eigentlich folgen die Gestaltungsrichtlinien von mobilen Apps den Gedanken, die Entwickler schon lange pflegen: zurück zur schnörkellosen Funktionaltät. Lynx lässt grüßen. Dennoch isr es sinnvoll und wohl auch nötig, sogenannte Frameworks zu verwenden. Immerhin ist das alles noch so ein HTML-Geschnurpsle und man tut gut daran, da eine höhere Abstraktiosstufe zu beschreiten. Wie schon erwähnt, geht es nicht nur um die Gestaltung, sondern auch um die Handhabung der Navigation, Links und Seiten. Am Markt sind mindestens zwei Systeme, die auf jQuery aufsetzen. Da ist das jQTouch und das noch im α-Status befindliche jQuery mobile, auch liebvoll jQmobile genannt. Beide Systeme verfolgen ähnliche, aber dennoch verschiedene Ansätze und da ich mich die letzten 14 Tage ausführlich mit beiden Libraries beschäftigt habe, hier nach dem Bild der vereisten Fischauktionshalle einige Worte zu dem heiklen Thema.

Die Unterschiede rühren aus der Zielstellung. jQtouch ist das Werkzeug, das für die Weiterverarbeitung in phonegap vorbereitet ist. Ziel ist also die native App für das iPhone und auch Android. Da die Anwendung nicht auf einem Server läuft, gilt auch die Ajax-Crossdomain-Einschränkung nicht und die jQtouch-basierte App kann selbstverständlich beliebige Daten von beliebigen Server holen. Dazu brauchts dann weder einen Proxy, noch JSONP. Nun gibt es ein Problem: der Webview auf dem iPhone unterstützt keine fixpositionierten Bereiche. Das ist sofern ein Problem, weil viele Apps im unteren Bereich eine Navigationsleiste mit schwarzweißen Icons haben. ¬Sam Shull löst das Problem mit Javascript, in dem er nach jeder Bewegung die Position neuberechnet. Das ist nicht wirklich performant. Das Scrollen ist bei der jQtouch-Lösung nicht wirklich geschmeidig und fällt jedem iPhonenutzer sofort ins Auge. Besonderheiten auf dem iPhone, wie der Fullscreenmode einer Webapp werden unterstützt. Das heisst, wenn ich die URl im Safari eingebe und dann auf den Plus-Knopf drücke, dann wird ein Icon auf HOME gelegt, das dann die Webapp ohne das Safari-Gedöns startet. Das wird mit CSS-Tricks (
body {min-height:460px}) erreicht.Funktionen und Styling werden über CSS-Klassen geregelt. Zwei Themen sind beigepackt: es gibt die klassische Apple-like Anmutung und eine aus dem Darkbereich. Möchte man eine dritte Lösung, muss an vielen Stellen Hand angelegt werden. Das Formularstyling ist recht spartanisch. Es quasi nur gestylt ein Schieberegler fehlt völlig. Flanscht man den Slider aus der UI-Lib in ein Formular mit festen Navibereichen rein, dann wird bei Betätigung des Schiebereglers das Layout zerschossen.
jQuery Mobile hat einen völlig anderen Ansatz. Die Library soll auf möglicht vielen Geräten lauffähig sein. Das heißt im Umkehrschluss, das dieser iPhone-typische Fullscreenmode nicht funzt. Außerhalb verbietet die Lib das Ajax-Aufrufen zu entfernten Servern. Wahrscheinlich konnten sich die Entwickler ein Kompilieren mit phonegap nicht vorstellen. Beide Probleme sind durch eine Patch der jquery.mobile.js erledigt. Nach diesem unnachhaltigen Eingriff funktioniert jQmobile ähnlich wie jQtouch. Vom Styling her verfolgt jQmobile intern einen gänzlich anderen (objektorientierten) Weg. Das Austaggen von Elementen durch den Entwickler führt intern zu weiteren Class-Names, die dann das eigentliche Styling vornehmen. Damit ist eine komfortable Themenverwaltung möglich. Das Prozedere hat auch einen Nachteil: fügt man per Ajax oder allgemein mit Javascript weitere DOM-Elemente ein, dann wirkt auf diese Elemte das Styling nicht. Um das zu fixen, kann man nach Einfügen der Elemente die Methode
page() auf selbige oder ihrem Vaterelement anwenden. Das Problem der fixen Navigationsbereiche hat jQmobile grundsätzlich anders als jQtouch gelöst: der Binnenraum wird nicht neuberechnet. Es gibt kein rollbaren Binnraum, sondern die ganze Seite ist rollbar und nach Abschluss der Bewegung werden die fixen Bereich wieder drübergemappt. Das fühlt sich neben dem schwungvollen Scrollen an sich auch viel natürlicher an.

Zusammenfassend lässt sich sagen, beide Framework beherrschen das sogenannte Hijax. Das ist die Methode, Links und Formularabschickungen in Ajaxaufrufe zu verwandeln. Das Styling verfolgt verschiedene Strategien. Um mal schnell da ist jQtouch das geeignetere Framework. Anspruchsvollere Projekte sind wohl nur mit jQMobile zu realisieren. Bei jQmobile muss der Entwickler noch Hand anlegen, falls er die WebApp zu einer nativen App kompilieren möchte, es sei denn er benötigt keine aktuellen Daten oder nutzt konsequent JSONP. Die Dokumentation ist im jQMobile-Bereich deutlich besser. Fachbücher im deutschen Sprachraum sind beim Stand von IUI-Webkit, jQtouch läuft im Bereich Visionen. Patrick Lobacher hat in der letzten t3n einen Artikel über jQMobile geschrieben, der die Integration in TYPO3 beschreibt. Allerdings ist das recht fragmentarisch und erlaubt nur sehr einfache Projekte ist mehr als Impuls zu verstehen.
Weihnachten hat natürlich auch weniger wohlwollende Komponenten. Die schlimmst Komponente ist eben diese Weihnachtsstimmung, aus der kaum jemand entfliehen kann. Reden wir nur vom Radio (=Hörrundfunk, jaja – das gibt es noch). Es gibt kaum Fluchtpunkte. Im Hauptstromradio läuft seit Jahren dieser unsägliche, kulturbolschewistische seichte Quatsch aus derm Land jenseits des großen Teiches. Die Farbe Weiß und Glöckchen spielen ein große Rolle. Das ist schlimm und ich frage mich, für wen das gemacht ist – oder ist das der Massengeschmack?? Schauen wir in Richtung Kulturradio wie RIAS oder Deutschlandfunk: da läuft zwar kein AmiXmas-Kitsch, dafür wird lang und breit erzählt, wei andere Kulturen oder wie der Deutsche früher das Fest beging. Das ist dann auch nicht besser. Es gibt wahre Erlösung: obiger Radiosender aus Frankreich vermeidet das Fest und ist einfach nur gut.
Es ist nicht nur die Zeit der gegenseitigen Beglückungen (die über das Bild des Weihnachtsmanns geschickt anonymisiert sind), sondern auch die Zeit der Besinnung und des Endspurtes. Unsereins ist immer noch mit der iPhone-App für die weltweite Hotelimmobilienfirma beschäftigt. Auch ein schönes Thema und soll ja auch bald fertig sein.
Zigeunerzinken, das sind die (geheimen) Symbole, die früher die fahrenden Leute steganografisch neben Haustüren gemalt haben. So etwa: „Einsame Frau ist naiv und gegen Atomkraft“. Da wusste der nachfolgende Bittsteller gleich wie er sie klarmachen kann. Und heute: da gibts natürlich auch solche Tags. Die Deutung ist nicht ganz klar. Da sehe ich einen Podex und einen aufgerichteten Johannes – Achtung Fleischflötenspieler unterwegs?Wenige Tage vor dem großen christlichen und Konsumfeste kommt nun tatsächlich die Sonne raus. In der großen Weltpolitik ist nun auch wieder der große Stänkerer und Frauenverführer Julian in den Bereich des Vergessens geraten.
Gut so – Zeit für einen neuen Lebensmittelskandal: Tannenbäume sondern Konservierungsstoffe ab oder Weihnachtsgänse unfriedlich geschlachtet. Es gibt immer viele Möglichkeiten. Auch wenn das angedeutete Fiasko vermutlich ausbleibt, haben sich doch alle Bedenkenträger (Wohlfahrtsverbände, Kirchen … ) pünktlich zu Beginn der Zeit des großen Fressens gegen die Schlemmerei ausgesprochen. Selbst Glühwein und anderer Süßkram wurden angeprangert. Protestantische Leistungsethik (=Genuss durch Verzicht) ist ja nett, aber ein wenig Spaß sollte wohl doch einmal ihm Jahr erlaubt sein.

![[]](/rainer/img/indicator.gif)
