Süße Lösungen für die Webanwendungs-Entwicklung

Wer schicke und touchige Applikationen für iPhone, iPad oder auch Android-basierte Geräte gestalten will, hat grundsätzlich zwei Möglichkeiten. Zum einen natürlich die native Programmierung mit den jeweiligen Entwickler-Kits, in den jeweils vorgesehenen Programmiersprachen und -frameworks. Unter iOS gilt es dann, Objective-C zu lernen und zu hoffen, dass sich Apple nicht an der einen oder anderen Eigenschaft unserer Applikation stört und die Aufnahme in den AppStore verweigert. Unter Android hingegen ist Java die Umgebung der Wahl, um native Apps zu programmieren. Probleme mit dem Market gibt es hier zwar auch, aber die haben glücklicherweise nichts mit Aufnahmeverfahren zu tun.

Aus vielerlei Gründen kann es aber durchaus sinnvoll sein, auf den ganzen nativen Quatsch zu verzichten und sich mit den guten alten Webtechnologien HTML, CSS und JavaScript auseinanderzusetzen. Damit lassen sich nämlich ebenfalls treffliche Apps realisieren. Wenn man weiß, wie:

Vor ein paar Tagen veröffentlichte JavaScript-Guru Thomas Fuchs ein paar Tipps zur Performance von iPad-Web-Applikationen (die natürlich genauso für’s iPhone und vermutlich auch für Android gelten.) Sein Fazit: Weniger ist mehr! Bilder reduzieren, wenig Transparenz und Schatteneffekte verwenden, JavaScript-Aufwand gering halten.

Bereits seit Frühjahr 2009 gibt es jQTouch, welches ein Framework für die Entwicklung von iPhone- und Android-Apps darstellt und auf der JavaScript-Bibliothek jQuery aufsetzt. (jQTouch-Apps laufen übrigens auch unter webOS, offiziell supportet wird es aber nicht.) jQTouch kombiniert bestimmte JavaScript- und CSS3-Techniken, erkennt Tap-Gesten, stellt zwei Basis-Stylesheets im typischen iPhoneOS-Look nebst passender Übergangs-Effekte zur Verfügung, und verpackt das Ganze in einer hübschen und sehr leicht zu begreifenden API, die sogar Webdesigner ohne professionelle Coding-Kenntnisse verstehen. Nachdem ich mir den kurzen und gut gemachten Screencast von Peepcode angesehen habe, konnte ich ohne größere Schwierigkeiten meine erste iPhone-WebApp für einen Kunden entwickeln, die hoffentlich in den nächsten Tagen mal erscheinen wird.

Wer es eine Runde fetter mag, wird wahrscheinlich mit Sencha Touch glücklich. Das neue Framework ist quasi so etwas wie der gemeinsame Nachfolger von ExtJS und jQTouch und wird von der frisch umbenannten Firma Sencha (ehemals ExtJS) angeboten. Da jQTouch jedoch parallel weitergeführt wird, stellt sich die Frage, worin der Unterschied der beiden Frameworks besteht, zumal der Erfinder von jQTouch nun bei Sencha arbeitet. Zum Glück gibt es Klärung in Form eines Blogartikels: jQTouch and Sencha Touch: Which is right for you?. Die Quintessenz: Sencha Touch richtet sich an echte Entwickler, welche meist eine andere (strukturiertere) Vorgehensweise bei der Erstellung von Applikationen haben als die Webdesigner-Frickler wie ich. Für letztere ist jQTouch gedacht, weil es einsteigerfreundlicher und zugänglicher ist, aber natürlich nicht so mächtig.

Was Sencha Touch drauf hat, kann man am besten in den Demo-Apps beobachten: Erkennung von Swipe- und Zoom-Gesten, iPad-typische PopOvers, eigenes JavaScript-basiertes Scrolling auf beliebigen Seitenelementen, Offline-Caching und mehr. Beeindruckend – das Solitaire-Game kann man auf dem iPad nicht von einer nativen App unterscheiden.

Ohne mich komplett intensiv damit auseinandergesetzt zu haben, verspricht Sencha Touch jetzt schon, zu einer Art »Xcode für WebApps« zu werden – das Schlechteste wär’s nicht, denke ich.

update am 16. August 2010: Am Wochenende wurde jQuery Mobile vorgestellt, das ab Jahresende höchstwahrscheinlich ungefähr ähnliche Dinge anbieten soll wie SenchaTouch. Auffällig hierbei die große Anzahl von aktuellen und zukünftigen Plattformen, die zumindest teilweise unterstützt werden sollen. Wenn das ganze mit jQuery-Syntax daherkommt, könnte das zu einem der interessantesten Tools werden – allerdings ist es noch verfrüht, die Sache zu beurteilen, denn noch hat man keine Zeile Code gesehen!