Dart 2.3 angekündigt: Optimiert für die Entwicklung der Benutzeroberfläche

Heute (8. Mai 2019) geben wir die Veröffentlichung des Dart 2.3 SDK mit neuen Sprachkonstrukten bekannt, die Ihre Entwicklungserfahrung beim Erstellen von Benutzeroberflächen verbessern, neue Unterstützung für Flutter UI-Entwicklungstools und zwei neue Websites: dart.dev und pub.dev .


Beschleunigungsimpuls


Jedes Jahr freuen wir uns auf eine StackOverflow-Entwicklerumfrage unter Entwicklern, die einen vollständigen Datensatz zu Entwicklungstrends und der Stimmung der Entwickler in Bezug auf verschiedene Technologien enthält. In diesem Jahr zeigten die Daten eine Zunahme der Popularität und Bekanntheit von Dart, das zuerst in die Liste der Lieblingssprachen aufgenommen wurde und neben anderen populären Sprachen wie JavaScript, C # und Go und vor C ++, F # und R einen Platz einnahm Zu dieser Zeit belegten unsere guten Freunde in der Flutter Community den dritten Platz in der Liste unserer bevorzugten Frameworks . Im vergangenen Monat berichtete Codementor bei einer Umfrage, welche Programmiersprachen unterrichtet werden sollten und welche nicht, ebenfalls über gute Nachrichten:


"Die beiden Programmiersprachen, die wirklich den Titel" Most Advanced "erhalten haben, sind Dart und Ruby." Codementor, April 2019 [Quelle]

Wir möchten uns bei allen Entwicklern in der Dart-Community bedanken. Für uns ist es sehr wichtig zu sehen, wie Sie Dart akzeptieren, Feedback geben und weiterhin bei uns sein, wenn wir versuchen, die beste Client-optimierte Sprache für schnelle Anwendungen zu erstellen, die auf jeder Plattform funktionieren.


Neue Sprachfunktionen für die Entwicklung der Benutzeroberfläche


In Bezug auf die Entwicklung von "Kunden" ist es wichtig zu sagen, dass eines der langjährigen gemeinsamen Projekte der Dart- und Flutter-Teams hervorragende Möglichkeiten bietet, eine Benutzeroberfläche mit Dart zu erstellen, ohne dass eine Auszeichnungssprache erforderlich ist. Wir glauben, dass die Verwendung einer Sprache für Verhalten und Präsentation genügend Vorteile hat. Dazu gehören das Reduzieren von Kontextwechseln, das Erlernen von zwei Sprachen und die Verwendung aller Abstraktionen einer universellen Programmiersprache beim Erstellen einer Benutzeroberfläche.


In den letzten Versionen haben wir verschiedene Verbesserungen vorgenommen, z. B. die Vereinfachung des Codes zum Erstellen von Widgets , das Hinzufügen einer automatischen Int-to-Double- Konvertierung und das Hinzufügen von Set-Literalen . In Dart 2.3 machen wir mit drei neuen Designs einen weiteren großen Schritt nach vorne, um eine Benutzeroberfläche für Listen, Bedingungen und Wiederholungen in Listen zu erstellen.


Die Benutzeroberfläche kann als Baum von Widgetknoten betrachtet werden. Einige Knoten enthalten Listen mit Widgets, z. B. eine Liste mit scrollbaren Elementen. Oft werden diese Listen aus anderen Listen zusammengestellt. Zu diesem "" wir einen Spread-Operator hinzugefügt, "" Elemente einer Liste in eine andere zu "" . Im folgenden Beispiel gibt buildMainElements() eine Liste von Widgets zurück, die dann mit dem Operator verbreiten in eine externe Liste entpackt werden:


 Widget build(BuildContext context) { return Column(children: [ Header(), ...buildMainElements(), Footer(), ]); } 

Eine weitere häufige Aufgabe der Benutzeroberfläche besteht darin, ein bestimmtes Element basierend auf einer Bedingung einzuschließen. Beispielsweise können Sie die Schaltfläche Weiter auf allen Seiten außer der letzten aktivieren. Mit Dart 2.3 können Sie dies mithilfe der Sammlung tun, wenn :


 Widget build(BuildContext context) { return Column(children: [ Text(mainText), if (page != pages.last) FlatButton(child: Text('Next')), ]); } 

Schließlich ist es häufig erforderlich, eine Liste doppelter Elemente zu erstellen. Sie können eine solche Liste mit der Sammlung erstellen für :


 Widget build(BuildContext context) { return Column(children: [ Text(mainText), for (var section in sections) HeadingAction(section.heading), ]); } 

Da dies drei neue Funktionen der Sprache sind, nicht Markup, können sie in jedem Kontext verwendet werden, in dem Sie mit Sammlungen arbeiten. Diese Designs sind in der Flutter 1.5- Version enthalten und in der Dart 2.3- Version verfügbar, die Sie bereits herunterladen können. Wir haben auch neue Regeln hinzugefügt, die Sie im Analysator konfigurieren können , sodass die Verwendung der neuen Verbreitung , Sammlung if und Sammlung für Funktionen empfohlen wird.


Weitere Informationen zu allen Arbeiten, die zum Hinzufügen dieser Funktionen durchgeführt wurden, finden Sie in einem kürzlich erschienenen Artikel von Bob Nystrom (auch bekannt als munificentbob ), einem Ingenieur im Dart-Team.


Wir möchten uns auch bei den Entwicklern bedanken, die an der UX-Forschung teilgenommen haben und die für die Bildung dieser neuen Sprachkonstrukte wichtig waren.


IDE- und Editorfunktionen


Zusätzlich zu den Entwicklungsverbesserungen bei Dart haben wir die Unterstützung für IDEs erweitert, indem wir neue Funktionen für UI Guides hinzugefügt haben. UI Guides Hilfslinien sind horizontale und vertikale Linien, die im Benutzeroberflächencode angezeigt werden. Dies erleichtert das Anzeigen der Baumstruktur der build () -Methode in Flutter. Unten finden Sie ein Beispiel (aus der Calculator-Anwendung), in dem die Benutzeroberflächenhandbücher zeigen, dass die Benutzeroberfläche aus einer Expanded Column mit mehreren KeyRows , von denen jede NumberKeys enthält.



UI Guides sind in Version 35.2 des Plugins für IntelliJ IDEA und Android Studio verfügbar. Wählen Sie zum Aktivieren Preferences > Languages & Frameworks > Flutter > UI Guides . Wir hoffen, VS Code in späteren Versionen ähnlich unterstützen zu können.


Schließlich haben wir festgestellt, dass Entwickler häufig die Code-Vervollständigung in ihren IDEs verwenden, um die APIs zu lernen. Die Code-Vervollständigung funktionierte gut für das Lernen von APIs in Bibliotheken, die Sie bereits importiert haben, war jedoch für APIs in Bibliotheken, die noch nicht importiert wurden, nicht verfügbar. Unsere Tools können jetzt den letzten Anwendungsfall unterstützen: Sie können die Code-Vervollständigung für jedes Präfix veranlassen, und Sie sehen Abbrüche für alle APIs im aktuellen Paket, für Pakete, von denen es direkt abhängt, und für das SDK. Wenn Sie die Fertigstellung aus einer Bibliothek auswählen, die noch nicht importiert wurde (als Auto import markiert, wie in der nächsten Animation gezeigt), fügt das Tool eine Importanweisung für Sie hinzu.



Diese automatische Importfunktion ist in VS Code im Dart-Plugin ab Version 2.26, in IntelliJ 2019.1 und in der kommenden Version von Android Studio 3.5 verfügbar.


Neue Dart- und Pub-Sites


Last but not least waren wir in den letzten Monaten sehr damit beschäftigt, eine neue Website für die Dart-Plattform zu erstellen : dart.dev



Die Website verfügt über eine vollständig aktualisierte Homepage, auf der die wichtigsten Vorteile der Dart-Plattform erläutert werden. Wir haben auch die Dokumentationsseiten aktualisiert, um eine bessere Navigation und eine bessere visuelle Attraktivität zu erzielen. Schließlich haben wir den gesamten Inhalt umfassend neu organisiert, um das Auffinden zu erleichtern, und neue Seiten für den zuvor fehlenden Hauptinhalt hinzugefügt.


Ebenso haben wir die Website für Pub-Pakete visuell aktualisiert und auf eine neue praktische URL verschoben : pub.dev


Wir freuen uns auf Ihr Feedback auf beiden Seiten. Wenn Sie ein Problem finden oder einen Vorschlag haben, erstellen Sie ein issue im dart.dev-Problem oder im pub.dev-Problem- Tracker. Vielen Dank für Ihre Unterstützung!

Source: https://habr.com/ru/post/de451318/


All Articles