Cross-Plattform Mobile Entwicklung01.04.2011 18:16:20Da in letzter Zeit das iPhone und iPad immer mehr Konkurrenz bekommt - vor allem von Android - müssen immer mehr Applikationen auf mehr als nur einer Plattform entwickelt werden, um das Zielpublikum zu erreichen. Um zu vermeiden die gleiche App für mehrere Umgebungen entwickeln zu müssen - und damit meistens praktisch den doppelten Aufwand zu haben - werden immer mehr Tools und Frameworks entwickelt, womit man mit einer App alle Smartphones und Tablets erreichen kann. Native Apps generierenHierfür gibt es prinzipiell zwei Möglichkeiten: Einerseits kann man auf ein Framework setzen, das mithilfe eines Compilers native Applikationen erzeugt und damit auch das jeweilige “Look and Feel” automatisch von der Plattform übernimmt. Ein Beispiel hierfür ist Appcelerator Titanum Mobile, der es erlaubt mithilfe einer proprietären Entwicklungsumgebung und Javascript native Applikationen für iPhone und Android zu erzeugen. Ermöglicht wird dies dadurch, dass der Entwickler mit JavaScript nicht HTML, sondern direkt native Widgets ansprechen kann. Vor allem auf iPhone erreicht dies bereits ein wirklich gutes Look and Feel sowie brauchbare Performance. Jedoch weder die Umgebung noch das Ergebnis auf Android ist wirklich überzeugend - und für weitere Plattformen muss man auf entsprechende Updates warten. HTML5Allerdings unterstützen alle modernen Smartphones HTML 5, CSS 3 und JavaScript, womit sich leicht interaktive Anwendungen entwickeln lassen. Dies hat den Vorteil, dass meistens keine neue Technologie erlernt werden muss, da HTML5 und JavaScript wohl jedem Webentwickler bekannt sein dürfte. Jedoch kann mit HTML lediglich der Look and Feel der Zielplattformen nachgeahmt werden und fühlt sich bei weitem nicht so an wie die gleichen “nativen” Apps. Dies wird zwar bereits wesentlich durch diverse Frameworks erleichtert und wird von Version zu Version besser, aber es ist wohl nicht zu erwarten, dass diese an die Performance von nativ entwickelten Apps jemals heran kommen. Native Wrapper / “Rahmen Apps”Das Erste was man benötigt, um mithilfe von HTML5 eine “App” zu Entwickeln ist ein “Wrapper” bzw. Rahmen in dem der HTML und Javascript code ausgeliefert und geladen wird. Dieser ist auch dafür zuständig etwaige native Features des Smartphones bzw. Tablets zur Verfügung zu stellen. Zum Beispiel wenn Zugriff auf GPS oder sonstige Sensoren benötigt wird. Phonegap ist eine Open Source Wrapper App, die momentan die meisten Zielplattformen unterstützt. Unter anderem iOS, Android, Blackberry, Web OS und Windows Mobile. HTML5 & JavaScript UI FrameworksUm Applikationen entwickeln zu können die auch wirklich wie “Apps” aussehen und sich dementsprechend verhalten, benötigt man noch ein UI Framework das es ermöglicht das native “Look and Feel” zu immitieren. Hierzu gehören Widgets wie Textboxen, Slider, Dialoge, sowie Layouts als auch Transition Animationen. Zu den UI Frameworks mit den meisten Features zählen: jQuery Mobile (MIT License), jQ Touch (MIT License), Sencha Touch (GPL) und Unify (MIT + Apache License). All diese Frameworks haben ihre ganz eigenen Vor- und Nachteile. Die einfachste Unterscheidung ist durch deren Zielplattform: jQ Touch ist nur auf Smartphones (derzeit nur iOS) optimiert, während die anderen auch versuchen Features für Tables bereit zu stellen. Unify ist speziell darauf abgestimmt mit Phonegap verwendet zu werden. Es zielt darauf ab das “native” Feeling mit HTML5 / JavaScript zu vermitteln - sowohl auf Smartphones und Tablets als auch am Desktop. Prinzipiell scheint es ein vielversprechendes Projekt zu sein, das sich momentan allerdings in meinen Augen noch im Anfangsstadion befindet. jQuery Mobile macht dagegen - obwohl derzeit erst die Alpha Version von 1.0 released wurde - einen sehr ausgereiften Eindruck, auch wenn noch einige Probleme ungelöst scheinen. ProblemeIm Grunde leiden alle UI Frameworks an den selben drei fundamentalen Problemen:
FazitWenn man eine App für Smartphones plant, ist es wichtig zu berücksichtigen wie sich die Zielgruppe verändern wird. Wenn immer nur eine oder maximal zwei Plattformen benötigt werden für eine App mit beschränktem Umfang, lohnt es sich wahrscheinlich die Usability so sehr zu optimieren und sie tatsächlich zwei Mal zu implementieren. Für langfristige Projekte kann man allerdings davon ausgehen, dass man durchaus Mithilfe von HTML5, CSS und JavaScript brauchbare, userfreundliche Apps entwickeln kann - Vor allem wenn die bestehenden Frameworks noch die letzten Probleme lösen. Das UI Design und Testen auf allen Plattformen nimmt einem natürlich kein Framework ab. Meine persönlichen Favorites sind derzeit Phonegap mit jQuery Mobile - und der Hoffnung, dass das ScrollView Experiment bald richtig funktioniert. Geschrieben von Herbert Poul |
