jQTouch ist eine im März 2009 von David Kaneda vorgestellte Erweiterung des JavaScript-Frameworks jQuery. Sie ermöglicht die Nutzung der von nativen Smartphone-Anwendungen bekannten Animationen und Navigationskonzepten in Web-Anwendungen. Durch die Nutzung von HTML, CSS und JavaScript unterstützt jQTouch die Plattformen iOS, Android und Palm webOS. Die aktuelle Version 1.0 beta 2 steht unter einer Open Source MIT Lizenz und wird von Jonathan Stark im Auftrag des Unternehmens Sencha Inc. betreut.
Erstmals veröffentlicht wurde jQTouch im März 2009 als alpha 2 Release. Es folgte im August die erste Beta-Version, die schon im Oktober von beta 2 mit überarbeitetem Animations-Code und großen Performance-Optimierungen abgelöst wurde. Im März 2010 gewann jQTouch auf der SXSW-Konferenz den Hive Award im Bereich „Consumer Software“. Im Juni ging das Projekt in der Firma Sencha Inc. auf und wird seither von Jonathan Stark betreut, der baldige Verbesserung der Unterstützung für Android ankündigte.
jQTouch besteht aus einer JavaScript-Datei, die unter Nutzung des JavaScript-Frameworks jQuery einige für mobile Anwendungen wichtige Funktionen bereitstellt (Touch-Events, Animationen, Historie), und aus in Themes gegliederte Stylesheets, die anhand vordefinierter CSS-Klassen die Eingabeelemente der Web-Anwendung wie Benutzeroberflächen von mobilen Plattformen aussehen lassen.
Mit verschiedenen Themes lassen sich unterschiedliche Oberflächen simulieren. Nach dem Download sind direkt zwei Themes vorhanden, wovon eines die iOS-Oberfläche des iPhones nachbildet und das andere ein dunkleres, am Design der jQTouch-Website angelehntes Interface ermöglicht.
Die durch die Stylesheets ermöglichte Anzahl an Elementen entspricht nicht den vielen auf den Plattformen verfügbaren Interface-Elementen. Sie bildet jedoch die Wichtigsten und Gebräuchlichsten ab, so dass sich damit problemlos einfache Anwendungen erstellen lassen. Zudem kann das Stylesheet beliebig um eigene Elemente erweitert werden.
Die bereitgestellten Animationen sind an den aus mobilen Anwendungen bekannten Übergängen orientiert. Da sie jedoch im mobilen Browser ausgeführt werden, sind sie teilweise nicht so flüssig und beeindruckend wie in nativen Anwendungen. Das Alter der Hardware hat einen wesentlichen Einfluss auf die Ausführungsgeschwindigkeit.
Auch, dass das für jQTouch zwingend notwendige jQuery nicht für mobile Geräte entwickelt wurde, stellt ein Problem dar. Die Anwendungen brauchen relativ lange bis sie zur Nutzung bereit sind. Die Menge der zu übertragenden Daten ist mit ca. 100 Kilobyte für eine mobile Verbindung sehr viel.
Bei den technischen Funktionen bietet jQTouch keine eigene Unterstützung. Der Programmierer ist auf die vom ausführenden Webbrowser bereitgestellte Funktionalität angewiesen. Ein Hybrid-Container kann hier jedoch eine Lösung sein (vgl. Abschnitt 4.2).
Die Plattformunterstützung von jQTouch ist bisher stark auf Apple iOS ausgerichtet. Die Benutzeroberfläche ist mit den iOS-Bedienelementen identisch. Da zur Ausführung jedoch nur ein WebKit-Browser benötigt wird, funktionieren die Anwendungen auch auf Plattformen wie Google Android, Windows Mobile, RIM BlackBerry oder Palm webOS.
Die Dokumentation für jQTouch ist sehr spärlich, wurde aber nach der Übernahme der Betreuung des Projekts durch Jonathan Stark ausgebaut. Unter anderem gibt es einige Beispielanwendungen, aus denen sich viele konkrete Anwendungsfälle direkt ableiten lassen. Die in einer Google Group organisierte Support-Community ist sehr aktiv.
Mit der zugesicherten weiteren Unterstützung von Sencha Inc. durch Jonathan Stark hat das Projekt beste Voraussetzungen für die Zukunft. Die angekündigte bessere Unterstützung von Android ist vermutlich nur der erste Schritt.
Beurteilung
jQTouch ist ein solides Framework zum Erstellen mobiler Anwendungen. Die bereitgestellten Oberflächen und Animationen reichen aus, um schnell einfache mobile Anwendungen oder Prototypen zu erstellen. Die einfache Erweiterbarkeit mit eigenem JavaScript-Code und Stylesheet-Definitionen kann jedoch nicht darüber hinwegtäuschen, dass bei der Entwicklung schnell die Grenzen von jQTouch erreicht sind. Die Geschwindigkeit der Anzeige und Reaktion auf Eingaben ist nicht mit der von nativen Anwendungen vergleichbar.