Suche
Breaking Changes und neue Features: Was hat sich geändert?

AngularDart 4.0 veröffentlicht

Ann-Cathrin Klose

AngularDart 4.0 ist da. Updates müssen aufgrund einer Namensänderung manuell vorgenommen werden. Außerdem endet der Support für Google Dart 1.24 in AngularDart nach diesem Release. Wir haben uns angesehen, was es Neues gibt.

Nur vier Monate sind seit dem Release von AngularDart 3.0 vergangen und schon steht ein neues Major Release bereit. Zu den wichtigsten Neuigkeiten gehört wohl der Paketname: aus package:angular2 wurde package:angular, ganz im Sinne der allgemeinen Namensgebung von Angular. Das führt jedoch dazu, dass Updates manuell ausgeführt werden müssen:

dependencies:
  angular: ^4.0.0

Außerdem unterstützte die vorherige Version von AngularDart noch Dart 1.23; AngularDart 4.0 setzt nun Dart 1.24 voraus. Dies soll jedoch die letzte Version des Frameworks sein, das mit diesem SDK-Release arbeitet. Man wolle, so lässt das Team von Google in den Release Notes die Nutzer wissen, eng an der Entwicklung von Dart 2.0 bleiben und in AngularDart 5 bereits ausschließlich das Dart SDK 2.0 unterstützen.

Breaking Changes & Performance

Das ist aufgrund der signifikanten Veränderungen an Dart selbst ein wichtiger Hinweis für alle Entwickler, zumal die kurzen Release-Zyklen von AngularDart für eine schnelle Implementierung der neuen SDK nach deren Veröffentlichung sprechen. Auch Dart 1.24 wurde erst im Juni dieses Jahres fertiggestellt. Zur Vorbereitung des eigenen Codes kann der Strong Mode des kommenden 2.0-Releases, der mit einem veränderten Typsystem einhergeht, bereits jetzt im Rahmen der Alpha-Releases von v2.0 sowie optional in den 1.x-Versionen aktiviert werden.

Zu den Neuerungen in AngularDart Version 4.0 gehören außerdem zahlreiche Breaking Changes, die im Changelog zusammenfasst sind. Dazu gehört der Wegfall von PLATFORM_{PIPES|DIRECTIVES|PROVIDERS}, da die Funktion aus AngularDart 4.0 entfernt wurde. Stattdessen wird nun mit Annotationen in @Directive und @Component gearbeitet. Auch die Arbeit mit Bootstrap in AngularDart 4.0 hat sich verändert. Das Update zählt insgesamt deutlich mehr als 20 Breaking Changes, die Entwickler während der Migration beachten müssen.

Neue Features in AngularDart 4.0

Während die Performance von Version 3.0 einen zentralen Aspekt des Updates darstellte, gibt es in dieser Hinsicht nun nur kleinere Fortschritte zu benennen. So wurde die Größe des generierten Codes reduziert; zur Beschleunigung von Developer-Runtimes wurden außerdem redundante Calls von dbg(...) im Dev-Mode entfernt.

Zu den neuen Features von AngularDart 4.0 gehören unter anderem Functional Directives; für Direktiven wurde im Allgemeinen zudem ein Visibility-Parameter hinzugefügt, mit dem unnötige Code-Generierung im Compiler vermieden werden kann. Das sind nur einige Beispiele für die Neuerungen in AngularDart 4.0.

Inheritance von Metadaten aus Komponenten

Neu ist außerdem die Vererbung von Metadaten aus Komponenten. Diese Metadaten müssen somit nicht mehr für jede Komponente neu spezifiziert werden, sondern können an inputs,
outputs, host bindings, host listeners, queries und view queries vererbt werden. Als Supertypes stehen extends, implements und with zur Verfügung; so können gemeinsame Funktionalitäten in Direktiven und Komponenten per Vererbung weitergegeben werden, wie Leon Senft erklärt.

Folgende Annotationen können vererbt werden:
@ContentChild / @ContentChildren
@HostBinding
@HostListener
@Input
@Output
@ViewChild / @ViewChildren

Templates, Styles und andere Parameter von Direktiven können jedoch nicht vererbt werden. Als Grund dafür verweist Leon Senft, der die neue Funktion bereits getestet hat, darauf, dass für andere Arten von Metadaten noch kein Mechanismus zum Überschreiben von Accessors und Methoden existiert, der die ursprüngliche Implementierung via Supertype referenziert.

Bugfixes und mehr

Außerdem gibt der Compiler nun eine Warnung aus, wenn Annotationen zu privaten Klassen und Funktionen hinzugefügt werden oder Injections in nicht existierende Felder vorgenommen werden sollen. Alle weiteren Bugfixes und Änderungen finden sich im Changelog auf GitHub.

Geschrieben von
Ann-Cathrin Klose
Ann-Cathrin Klose
Ann-Cathrin Klose hat allgemeine Sprachwissenschaft, Geschichte und Philosophie an der Johannes Gutenberg-Universität Mainz studiert. Bereits seit Februar 2015 arbeitete sie als redaktionelle Assistentin bei Software & Support Media und ist seit Oktober 2017 Redakteurin. Zuvor war sie als freie Autorin tätig, ihre ersten redaktionellen Erfahrungen hat sie bei einer Tageszeitung gesammelt.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.