Dart 2.3 Announced

With 2.3 Dart is taking a big step forward, with three new features for expressing UI.

Recently, the Dart team announced the stable release of the Dart 2.3 SDK. The new release comes with with new language features, to improve your coding experience. Dart 2.3 SDK is also bringing new tooling support for developing Flutter UI, and two new websites: dart.dev & pub.dev.
 
The company has made several improvements in last few releases, for example simplifying code for constructing widgets, adding automatic int-to-double conversion, and adding set literals. With 2.3 Dart is taking another big step forward, with three new features for expressing UI that is list-based, conditional, or repeated.
 
The new release adds a new spread operator feature for unpacking the elements from one list into another. The code shown below uses buildMainElements() to return a list of widgets, which is then unpacked into the surrounding list using the spread operator
  1. Widget build(BuildContext context) {  
  2.   return Column(children: [  
  3.     Header(),  
  4.     ...buildMainElements(),  
  5.     Footer(),  
  6.   ]);  
  7. }  
Source: Dart 
 
In Dart a common UI task is to include a specific element based on a condition. If, you need to include a Next button on all pages but the last one. With Dart 2.3, you can do this using a collection if.
  1. Widget build(BuildContext context) {  
  2.   return Column(children: [  
  3.     Text(mainText),  
  4.     if (page != pages.last)  
  5.       FlatButton(child: Text('Next')),  
  6.   ]);  
  7. }  
Source: Dart 
 
As UIs are often required to build repeated elements from other repeated elements. You can implement such scenarios using the new collection for feature.
  1. Widget build(BuildContext context) {  
  2.   return Column(children: [  
  3.     Text(mainText),  
  4.     for (var section in sections)  
  5.       HeadingAction(section.heading),  
  6.   ]);  
  7. }  
Source: Dart
 
The company said that as all these three new features are language features, and not markup commands, they are fully composable, and can be used in any context where you work on collections.
 
The company has also added a new UI Guides feature to the IDE support. "UI Guides are horizontal and vertical lines drawn within UI code, making it much easier to see the tree structure of Flutter UI build() methods."
 
The company has also launched a new website for the Dart platform: dart.dev which features an entirely new landing page, explaining the core benefits of the Dart platform. The documentation pages have also been updated to have a better navigation and more visual appeal.
 
You can visit the official announcement here.