Google I/O 2013 – Alles Wissenwerte zu neuen Google-Produkten
Kommentare

Zur Google I/O gehen heißt erst einmal Schlange stehen! Es fängt beim Ergattern der Tickets an und setzt sich bei vielen weiteren Aktivitäten fort: beim Betreten des Gebäudes, an der Rolltreppe, für das Essen, für den Kaffee und schließlich, um sich einen Platz im Keynote-Saal zu sichern, der Ähnlichkeit mit einem Pop-Konzert hat. Die Menge johlt und wartet auf den Star. In diesem Fall sind die Stars aber weniger die Menschen, sondern eher die zu erwartenden Neuerungen und Meldungen, die hier alle aus erster Hand erhalten wollen.

6000 Leute sind vor Ort, 40.000 nehmen über spezielle Google-IO-Extended-Events in der ganzen Welt teil und 1.000.000 folgen zumindest der Keynote über YouTube. Obwohl in der Keynote nichts über Google Glass berichtet wurde, machte der Begriff „Glasshole“  – als abfälliger Name für jemanden, der ein “Google Glass” trägt – hier die Runde. Amüsant. Anders als in den Jahren zuvor gab es eine einzige lange Keynote, die im Vergleich zu früheren I/Os wenig technisch, sondern eher eine Marketing-Veranstaltung für neue Produkt-Features war. Auch im Bereich der Sessions gab es weniger technische Themen und mehr Infos zu Googles Produkten.

Android

Android als das zurzeit erfolgreichste mobile Betriebssystem hat bis heute 900.000.000 Aktivierungen. Das sind 500.000.000 neue Aktivierungen seit dem letzten Google I/O 2012 (400.000.000 Aktivierungen) und 800.000.000 neue Aktvierungen seit 2011 (100.000.000 Aktivierungen).

Die spannendste technische Neuerung ist das neue Android Studio. Es basiert auf der freien Community Edition von IntelliJ und macht einen sehr guten Eindruck. Google wird zwar das Eclipse-Plug-in weiterhin unterstützen, vertraut für eine bessere Integration aber eher auf IntelliJ. Ein Grund für den Umstieg war, dass der Standard-Build-Prozess nun auf Gradle aufsetzt, welches eine gute IntelliJ-Anbindung bietet. Damit beruhen Development- und Integration-Builds auf derselben Technik.

Das eindrucksvollste Feature des Android Studio ist ein Echtzeitrendering der Layouts auf unterschiedlichen Device-Größen und mit unterschiedlichen Sprachen – auf Wunsch sogar mehrere gleichzeitig. So kann man sein Layout sehr schnell testen und kommt mit einem Klick von den gerenderten Layouts an die entsprechenden Code-Stellen. Dies funktioniert sogar in beide Richtungen und in Echtzeit, ohne dass ein Simulator gestartet werden müsste. Ebenso ist das Tooling für Ressourcen sehr eindrucksvoll.

Für das Ausrollen der Apps über den Play-Store kann man ein Beta-Testing über Staging realisieren. Dabei wird über Google+ Gruppen und Anteile in Prozenten angeben, wer das neue Release als erster bekommt. Über Google+ kann man dann sofort privates Feedback erhalten.

AngularJS

AngularJS ist in diesem Jahr mit einer Session und sogar mit einem speziellen Event vor dem offiziellen Beginn der Google I/O vertreten. Bezüglich der verschiedenen Frameworks zum Erstellen von Webapplikationen wird es durch AngularJS etwas unübersichtlich bei Google, da diese Technik in Konkurrenz zu Dart und GWT steht. Ideen über Integrationen der Techniken existieren, aber eine Orientierung wird dadurch nicht einfacher.

AngularJS ist ein MVC-Framework, das komplett im Browser abläuft. Die drei Hauptpunkte bei AngularJS sind die drei Ds: Data Binding, Dependency Injection und Directiven. Durch ein Data Binding in zwei Richtungen können sehr leicht Daten in ein Modell und wieder zurück abgebildet werden, ohne Code zu schreiben. Für echte Logik braucht man natürlich immer noch Code, in diesem Fall kann man in Controllern eine einfache Form der Dependency Injection nutzen. Vielleicht die wichtigste Technik von AngularJS sind Directives. Diese erfüllen einen ähnlichen Zweck wie Custom Elements in Web Components, nur gibt es sie jetzt schon in einer einfachen Form.

Web Components

Spannende Neuerungen gibt es im Umfeld von HTML5. Mit den sogenannten Web Components kommt ein Satz unterschiedlicher Technologien. Zuerst einmal gibt es Templates, die im wesentlichen HTML-Fragmente sind. Diese werden bereits in eine DOM-Struktur geparst, aber noch nicht dargestellt. Zur Darstellung werden diese über ihre ID herausgesucht, instantiiert, eventuelle Lücken werden gefüllt und schließlich wird die Template-Instanz dargestellt.

Das Shadow-DOM ist eine ausformulierte Darstellung von komplexeren DOM-Knoten. So kann z.B. ein Input-Tag je nach Typ aus unterschiedlichen div-Elementen aufgebaut werden. Der Chrome-Browser tut genau dies und wenn man das Feature in den Developer Tools aktiviert, kann man sich genau dieses Shadow-DOM ansehen. Anwendungsentwickler werden nun dieselben Möglichkeiten wie die Browser-Hersteller bekommen und können ebenfalls solche HTML-Komponenten bauen. Dabei befindet man sich innerhalb eines Blocks und kann so z.B. auch lokale CSS-Styles anwenden.

Über Custom Elements kann man nun genau solche Komponenten bauen. Die Definition erfolgt entweder über ein spezielles element-Tag in HTML oder über ein JavaScript-API. Bei der Definition gibt es einen Template-Teil, der das Aussehen der Komponente bestimmt und einen JavaScript-Teil, der z.B. angibt, was beim Laden des Elements passieren soll. Custom Elements können entweder über ihr Markup oder wie alle anderen DOM-Elemente über document.createElement erzeugt werden. Bei der Definition kann man auf bereits bestehende Elemente zurückgreifen und z.B. von einem Button oder einem Input-Feld erben.

Über das link-Tag mit dem Attribut rel=”import” wird es möglich sein, HTML-Blöcke in andere HTML-Dokumente einzubinden. Das Eingebundene kann einfaches HTML sein, allerdings auch Templates oder Custom Components.

Vieles davon läuft bereits in Chrome und Firefox, HTML-Imports sind jedoch bisher noch in keinem Browser umgesetzt. Ob und wann die anderen Browser nachziehen, ist unklar.

Dart

Lars Bak, der ursprüngliche Entwickler von Googles V8 JavaScript-Engine, entwickelt nun für Google die Programmiersprache Dart und die dazugehörige VM. Schon im letzten Jahr war er mit seinen Kollegen bei der Google I/O, der Lärm um Dart ist in diesem Jahr aber ein bisschen abgeebbt und nun eher bei AngularJS zu finden.

Das Dart-Team führt zwei grundlegende Probleme an, die mit der neuen Sprache gelöst werden sollen: Zum einen ist JavaScript zu kaputt, um es noch reparieren zu können, zum anderen kann JavaScript nicht so gut optimiert werden wie eine Sprache mit deklarierten, statischen Typen.

Dart als neue Sprache mit optionaler Typinformation soll beides besser machen. Dabei wird die Ausführung in zwei Phasen geteilt: Deklaration von Typen und dann Ausführungen. Sobald ein Programm ausgeführt wird, kann ein Typ nicht mehr verändert werden. Dies gibt momentan einen Performanz-Vorteil von Faktor 2 gegenüber JavaScript-Code, der in V8 ausgeführt wird. Dies allerdings nur, wenn der Code nativ ausgeführt wird. Dies ist zur Zeit in der Chromium-Variante Dartium möglich. Und die Dart-Entwickler gehen davon aus, dass mehr Performanz zu spannenden neuen Programmen führen wird. Vielleicht im Spiele-Bereich? Dart kann aber auch nach JavaScript übersetzt werden und läuft dann etwas langsamer als von Hand geschriebener Code in jedem Browser.

Fraglich ist, ob die Trennung und Kompilierung mit typischen JavaScript-Bibliotheken funktionieren wird und ob die gewonnene Performanz nicht auch durch Kompilierung in Formate wie asm.js möglich wäre. Spannend ist auch, ob jemals ein anderer Browser-Hersteller Dart implementieren wird.

GWT

Anders als AngularJS und Dart hatte GWT in diesem Jahr keinen eigenen Stand und auch keine Office Hours, um mit den Entwicklern Kontakt aufnehmen zu können. Es gab aber immerhin zwei Sessions zu GWT, eine davon behandelte dessen Zukunft.

GWT wurde bekanntlich vor einem Jahr von Google in die Hände eines Steuerungskomittees übergeben. Seitdem hat sich der Code nach github bewegt und die 2.5.1 Version, die in erster Linie einige Bugs behoben hatte, wurde released. Nun steht die Roadmap für die Version 2.6 bzw. 3.0. Hier soll es höhere Geschwindigkeit und bessere Integration mit JavaScript geben und die wichtigsten Bugs gefixt werden. Java 7 soll unterstützt werden – es gibt dafür sogar schon einen Patch. Sobald Java 8 fertig ist, soll auch dafür Support geben.

Mit der Version 3.0 wird die Unterstützung für alte IE-Versionen aufgekündigt. GWT 2.6 wird Ende 2013 erscheinen, zur Google I/O 2014 soll GWT 3.0 fertig sein. Die neue Entwicklerseite ist nun unter http://www.gwtproject.org/ zu finden.

Die vielleicht wichtigste Neuerung bei GWT könnte der Einstieg des mGWT-Entwicklers Daniel Kurka in das GWT-Team sein. Hier dürfen wir auf Neuerungen im mobilen Bereich hoffen. Dabei wird spannend sein, ob es die Entwickler schaffen werden, mit der Geschwindigkeit Schritt zu halten, mit der neue Funktionen in aktuelle Browser auf mobilen Geräten Einzug halten.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -