Responsive Apps mit Polymer

Vielversprechend einfach

Auf der GWT.create als Vorabversion vorgestellt, ist Polymer nun in Version 1.0 erschienen. Wir haben uns die vielversprechende Bibliothek näher angesehen und für Sie getestet. Das Polymer Projekt (www.polymer-project.org) wird von Google entwickelt und hat zum Ziel, wiederverwendbare Komponenten für das moderne Web bereitzustellen. Diese sollen dabei höchsten Performance –Ansprüchen genügen, ein modernes Aussehen haben und „responsive“, also auf unterschiedliche Endgeräte abgestimmt, sein. 

Web-Anwendungen von verschiedenen Anbietern unterscheiden sich sehr stark in Design und Bedienung. Während Unterschiede beim Design gewollt sind, wäre es für User vorteilhaft, wenn die Bedienung gleicher Funktionalitäten in unterschiedlichen Anwendungen ähnlich von Statten geht. Dies wird bei klassischen Desktop oder nativen Mobile-Apps durch die vom Betriebssystem vorgegebenen Bedienelemente erreicht. Bei Web-Anwendungen existieren jedoch nur sehr wenige standardisierte Bedienelemente, wie beispielsweise Buttons oder Textfelder. Komplexe Bedienelemente werden in der Regel von Web-EntwicklerInnen maßgeschneidert erstellt, oder es wird auf nicht standardisierte Oberflächen-Bibliotheken zurückgegriffen. Web Components haben sich zum Ziel gesetzt, diese Lücke zu schließen und Standards für Eingabeelemente oder Komponenten, welche für die Web-Entwicklung benötigt werden, zu schaffen. Konkret bedeutet dies, dass die bekannten HTML Tags mit Web Components erweitert werden. Browser werden dann in der Lage sein, diese Komponenten zu verarbeiten und beispielsweise für Tabs immer dasselbe Eingabeelement anzuzeigen. Dadurch wird nicht nur ein einheitliches Look and Feel erreicht, der Aufwand für EntwicklerInnen reduziert sich auch entsprechend, da die Komponenten wiederverwendet werden können.

Polymer ist eine Bibliothek, die auf dem Web Component Standard aufbaut und es erlaubt, eigene Web Components zu erstellen. Zusätzlich stellt es einige Web Components zur Verfügung. Diese sind im Material Design, wie es von Google in seinen Produkten verwendet wird, gehalten. Polymer bietet ein simples two-way Databinding, welches eine Verwendung in Anwendungen erlaubt, ohne allzu viel Programmcode erstellen zu müssen. Einbindung und Verwendung der Bibliothek gestalten sich hierbei sehr einfach und halten sich an aktuelle W3C Drafts. Polymer legt besonders Wert darauf, die Entwicklung von Responsive-Apps zu unterstützen. So sind die Polymer Components sowohl auf Desktop Systemen mit Maus und Tastatur, als auch auf Geräten mit Touch Eingaben gleichermaßen bedienbar. Ebenfalls wurde die Darstellung der Komponenten für hohe und niedrige Auflösungen optimiert.

Polymer wurde primär für moderne Browser gebaut. Mit Hilfe der Brückentechnologie „Polyfills“ wird aber die Kompatibiltät zu klassischen Browsern mittels Javascript sichergestellt. Dadurch ist es für EntwicklerInnen möglich, zeitgemäße Anwendungen zu erstellen und aktuelle Funktionen zu nutzen, ohne BenutzerInnen, die an einen älteren Browser gebunden sind,  außen vor lassen zu müssen.

Fazit

Die Umsetzung von Polymer ist sehr vielversprechend. Es lässt sich einfach in Projekte einbinden und sofort verwenden. Eine von Vaadin zur Verfügung gestellte GWT-Anbindung ermöglicht es, Polymer auch in GWT Projekten in Verbindung mit Java zu verwenden. Die mitgelieferten Komponenten machen einen optisch sehr ansprechenden Eindruck. Auch einige der restlichen Features, wie ein einfacher Push Mechanismus oder die Anbindung an Google Services wirken sehr durchdacht. Ob sich die Bibliothek aber auf lange Sicht durchsetzen wird und wie die Stabilität bei der Weiterentwicklung aussehen wird, lässt sich derzeit noch nicht sagen. Auch wird es interessant sein, wie sich große Polymer Projekte in Browsern, die Web Standards nur sehr beschränkt einhalten, wie dem Internet Explorer, verhalten werden.

Autor: Andreas Feuerstein