Auf dem Google Developer Day 2008 in Sydney hat Lars Rasmussen, Leiter der Entwicklungsabteilung von Google Australien, einen Überblick über das Google Web Toolkit (GWT) geliefert. ZDNet fasst seine Präsentation "AJAX mit dem Google Web Toolkit" zusammen und zeigt, was das GWT 1.5 Neues bietet.
Das GWT ist ein browserunabhängiges Open-Source-Framework. Es ermöglicht Entwicklern, AJAX-Anwendungen in Java zu schreiben und den Bytecode dann in Java-Script kompilieren zu lassen. Rasmussen erklärte, dass sich Google nicht wegen einer bestimmten Vorliebe für diese Sprache entschieden habe. Vielmehr seien eben für Java Unmengen von Tools verfügbar. Der endgültige Code soll schneller und kompakter sein als selbst geschriebener.
Das GWT ermöglicht Software-Entwicklung mit AJAX-Funktionen. Hier einige seiner Vorteile:
- Java-IDEs: Entwickler können jede beliebige Java-IDE benutzen oder sogar mit einem einfachen Texteditor arbeiten.
- Schneller Zyklus aus Bearbeitung, Testen, Fehlersuche und Umgestaltung: Der Entwickler kann im Browser-Code auf Java-Ebene debuggen. Er startet den Browser im Debugging-Modus, bearbeitet den Java-Code, aktualisiert den Browser und kann die Änderungen sofort sehen.
- Unit Testing: Die GWTTestCase-Klasse lässt sich in JUnit integrieren.
- Wiederverwendung durch JAR-Dateien: Module oder JAR-Dateien einer Anwendung können von anderen Anwendungen referenziert werden.
- GWT bietet eine optimale Nutzung objektorientierter Designkonzepte.
- Javadoc: Stellt die Dokumentation der GWT-API bereit.
- Fehler zur Kompilierzeit: Mit Eclipse können Fehler schon bei der Codeeingabe behoben werden.
Folgende Eigenschaften des GWT erfüllen die Prinzipien der Web-Usability:
- Bereitstellung einheitlicher UI-Elemente
- reine Tastaturbenutzung und Schriftgrößeneinstellungen wird ermöglicht
- Benutzer behält die Kontrolle über den Browser
- schneller Start der Anwendung
- Bedienung wie eine normale Webanwendung, bietet aber zusätzliche Funktionen
Den Browserverlauf kontrollieren
Die History-API des GWT ermöglicht den Zugriff auf den Stack des Browserverlaufs. Dadurch lässt sich kontrollieren, was passiert, wenn der Benutzer auf die Schaltflächen "Zurück" und "Aktualisieren" klickt. Auf diese Weise kehrt die Anwendung auch beim Klicken des Zurück-Buttons in denselben Zustand zurück.
Hier einige zentrale Merkmale der API:
- Der historyToken-Parameter repräsentiert den aktuellen Stand des Browserverlaufs. Jeder Eintrag in der Verlaufsliste wird also als Token bezeichnet.
- Der HistoryListener wird ausgelöst, wenn die Zurück- oder Vorwärts-Schaltfläche angeklickt wird. Der Entwickler kann ihn implementieren, um benachrichtigt zu werden, wenn es eine Änderung des Browserverlaufs gibt.
- Es lassen sich auch neue Einträge in der Verlaufsliste erstellen, etwa mit History.newItem(token).
- Die Hyperlink-Klasse liefert einen Link zu einem anderen Zustand der Anwendung und erstellt einen neuen Eintrag in der Verlaufsliste, ohne die Seite neu zu laden.
Das GWT bietet eine Möglichkeit zur Internationalisierung von Anwendungen und Bibliotheken. Mit dem I18N-Paket lassen sich Anwendungen in andere Sprachen übersetzen. Zum Erstellen lokalisierter Nachrichten wird die Messages-Schnittstelle implementiert. Anschließend fügt man die entsprechenden lokalisierten Properties-Dateien hinzu. Die Properties-Dateien speichern die übersetzten Strings.
Das Aussehen von Widgets mit CSS verändern
Mit dem GWT kann man das Aussehen von Widgets mithilfe von CSS ändern und so Code und Präsentation trennen. Jedes Widget verfügt über einen Stilnamen, über den es per CSS identifizierbar ist.
Um beispielsweise die Schriftgröße aller Buttons zu ändern, bietet sich Folgendes an:
.gwt-Button { font-size: 150%; }
Optimierte Permutationen
Der GWT-Compiler erstellt mehrere Kompilierungen auf Grundlage aller möglichen Permutationen und speichert sie in einer Datei (suffix.cache.html).
Der Endbenutzer lädt nur die für den jeweiligen Zweck optimierte Kompilierung herunter, etwa eine Kompilierung für Firefox 3 und UK-Englisch. Diese Eigenschaft verbessert die Performance, denn der Benutzer lädt nur das herunter, was für ihn relevant ist.
JavaScript Native Interface (JSNI)
JSNI ermöglicht das Integrieren von JavaScript in den Java-Code unter Verwendung des Schlüsselbegriffs native. Der JavaScript-Code in JSNI-Methoden wird in einen Kommentarblock eingekapselt. Dieser beginnt mit /*-{ und endet mit }-*/. Er wird zwischen die Parameterliste und das schließende Semikolon eingefügt.
Was bietet GWT 1.5 Neues?
Einige Features der Version 1.5 sind:
- Unterstützung für Java 5 (enums, annotations, autoboxing etc.)
- ein verbesserter Compiler, um Anwendungen schneller zu machen
- Ergänzungen zur UI-Bibliothek, beispielsweise Widget-Animationen
- eine DOM-API, um die DOM-Entwicklung zu vereinfachen
- Verbesserungen bei der Internationalisierung
- Unterstützung von Zugangs- und Barrierefreiheit
- Verbesserungen der JRE Emulation Library
Download-Informationen
Wer das GWT einmal ausprobieren möchte, kann es unter code.google.com/webtoolkit[1] herunterladen.
URLs in diesem Artikel:
[1] = http:/