Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

7/1/22, 11:56 AM What’s new | Dart

What’s new
This page describes what’s new on the Dart website and blog.
To see what’s new in Flutter, visit the
Flutter what’s new page.

For a list of Dart language changes in each Dart SDK, see the language evolution page.
To stay on top of announcements,
including breaking changes,
join the Dart announcements Google group
and follow the Dart blog.

May 11, 2022: 2.17 release


This section lists notable changes made from February 4, 2022,
through May 11, 2022.
For details about the 2.17 release,
see Dart
2.17: Productivity and integration.

In addition to bug fixes and incremental improvements,


we made the following changes to this site:

Introduced the Learning Dart as a JavaScript developer guide,


which aims to leverage your JavaScript programming
knowledge
when learning Dart.
Documented the features and changes introduced in Dart 2.17:
Updated the Named parameters section of the language tour
to reflect support for specifying named arguments
anywhere.
Added documentation for super-initializer parameters.
Expanded the Enumerated types section of the language tour
and documented enhanced enums.
Documented support for signing macOS and Windows executables
compiled with dart compile exe.
Updated the templates supported by dart create
to their new, standardized names.
Accounted for changes to the pub.dev site and the pub tool.
Listed vendors offering Dart package repositories as a service.
Removed documentation for the now discontinued dart pub uploader command.
Expanded the documentation for managing pub project uploaders.
Removed most mentions to the deprecated .packages file,
pointing instead to its
.dart_tool/package_config.json replacement.
Updated the documentation for updating and installing Dart:
Documented how to switch between Dart versions
with Homebrew within the macOS install instructions.
Updated the linux installation instructions
to use SecureApt and follow the latest best practices.
Added support for downloading experimental, Linux RISC-V (RV64GC) builds
from the Dart SDK archive.
Continued work to improve and update documentation
of the unified dart tool:
Expanded documentation about the functionality of the dart fix tool.
Adjusted the guidelines and documentation for the dart doc tool
to match its functionality and underlying behavior.
Added further documentation and samples of dart compile js.
Removed mentions of removed standalone tools.
Updated the documentation and usage of the analyzer and linter:
Documented the analyzer’s new strict language modes.
Incorporated changes to the diagnostic messages and linter rules pages.
Updated documentation and samples
to use the 2.0.0 release of the lints package.
Began an overhaul of the documentation for web compilation:
Documented for the deprecation and planned removal
of the dart2js and dartdevc standalone tools.
Consolidated and clarified the documentation
of dart2js and dartdevc
as the underlying compilers of tools like
dart
compile js and webdev.
Increased documentation coverage of null safety:
Documented the null assertion operator (!) as part of
the Other operators section of the language tour.
Migrated the Low-level HTML tutorials to support null safety
and discuss how to interact with web APIs while using it.
Made miscellaneous other updates:
Documented the native types provided by dart:ffi
for use in C interop.
Introduced a new section to the language tour documenting
initializing formal parameters.
Documented DartPad’s support for packages.
Fixed formatting in the asynchronous programming codelab
and elaborated on why asynchronous code matters.
Updated the security page to match our current security practices.
Added a key binding (/) to automatically focus the search bar.
Google uses cookies to deliver its services, to personalize ads, and to analyze traffic. You can adjust your privacy controls
We published the following articles on the Dart blog: Okay
anytime in your Google settings. Learn more.
Bulk application of fixes

https://dart.dev/guides/whats-new 1/4
7/1/22, 11:56 AM What’s new | Dart

Dart asynchronous programming: Streams


Contributors for Google Summer of Code 2022
Gradual null safety migration for large Dart projects
Hosting a private Dart package repository
Quick fixes for analysis issues

February 3, 2022: 2.16 release


This section lists notable changes made from December 8, 2021,
through February 3, 2022.
For details about the 2.16 release, see
Dart 2.16: Improved tooling and platform handling.

We updated the website infrastructure to a Docker-based setup


to enable easier contributions and more closely align with
the
setup for docs.flutter.dev.

In addition to other bug fixes and incremental improvements,


we made the following changes to this site:

Switched to documenting the new dart doc tool which replaces dartdoc.
Documented the new platform entry to specify supported platforms
within a package’s pubspec.yaml.
Updated the diagnostic messages and linter rules pages.
Documented how to ignore all linter rules in a file.
Removed mentions of the old standalone tools from the Dart SDK overview.
Update remaining mentions of the old standalone tools
to their dart tool equivalents.
Added clarifications to the
PREFER using interpolation to compose strings and values
Effective Dart guideline.

December 8, 2021: 2.15 release


This section lists notable changes made from September 9, 2021,
through December 8, 2021.
For details about the 2.15 release,
see Announcing Dart 2.15.

In addition to bug fixes and incremental improvements,


we made the following changes to this site:

Added Concurrency in Dart, which discusses features such as


isolates that enable parallel execution of Dart code.
Documented pub features added or improved in 2.15:
Added a page for a new pub subcommand, dart pub token,
and a page about custom package repositories
Added information about package retraction
Added the false_secrets field to the pubspec page
Updated the syntax for hosted dependencies
Removed all entries for Dart 1 books
Expanded on DartPad troubleshooting tips
Updated the diagnostic messages page
Updated the linter rules page;
removed references to deprecated rule sets such as
effective_dart
Updated the instructions for installing and using
Dart DevTools
Added information about what the Dart runtime provides,
and clarified compilation formats

September 8, 2021: 2.14 release


This section lists notable changes made from May 20, 2021,
through September 8, 2021.
For details about the 2.14 release, see
Announcing Dart 2.14.

In addition to bug fixes and incremental improvements,


we made the following changes to this site:

Fleshed out the page on fixing type promotion failures.


Documented how to use the .pubignore file,
a feature that was introduced in Dart 2.14.
Added coverage of the unsigned shift operator (>>>),
which was introduced in Dart 2.14.
Built out the linter rule page;
updated Effective Dart to link to it.
Added pages for the
dart create and dart test commands.
Finished converting examples from using old command-line tools
(for example, dartfmt) to using the unified dart tool
(for
example, dart format).
Updated site code to use the recommended linter rules,
instead of pedantic.
Updated the lists of core libraries and commonly used packages.
Added a redirect from dart.dev/jobs to flutter.dev/jobs,
to make it easier to find open positions on
the Dart and Flutter
teams.
Google uses cookies to deliver its services, to personalize ads, and to analyze traffic. You can adjust your privacy controls
Finished migrating all analyzed or tested code to null safety,
updating text to match.
Found more site code that hadn’t been Okay
anytime in your Google settings. Learn more.
analyzed; fixed that.

https://dart.dev/guides/whats-new 2/4
7/1/22, 11:56 AM What’s new | Dart

We published the following articles on the Dart blog:

Experimenting with Dart and Wasm


How Dart’s null safety helped me augment my projects
Implementing structs by value in Dart FFI

May 19, 2021: 2.13 release


This section lists notable changes made from March 4, 2021,
through May 19, 2021.
For details about the 2.13 release, see
Announcing Dart 2.13.

In addition to bug fixes and incremental improvements,


we made the following changes to this site:

Updated the typedef section of the language tour to reflect


non-function type aliases,
which were introduced in Dart 2.13.
Published or updated documentation related to the command line and servers:
Using Google Cloud describes Google Cloud products that
Dart servers can use,
often with the help of pre-packaged
Docker images.
The HTTP server tutorial,
which featured the discontinued http_server package,
has been temporarily replaced by
an “under construction” page that
links to helpful documentation and samples.
The command-line tutorial has been completely updated.
Published some other new pages:
Null safety codelab teaches you about Dart’s null-safe type system,
which was introduced in Dart 2.12.
Numbers in Dart has
details about differences between native and web number implementations.
Using Google APIs points to resources to
help you use Firebase and Google client APIs from a Dart app.
Writing package pages gives tips for
writing a package README that works well on pub.dev.
Fixing type promotion failures
has information to help you understand
why type promotion failures occur, and gives
tips on how to fix them.
The new dart run page
describes how to run a Dart program from the command line.
Continued work on migrating code to null safety, in particular the
streams tutorial.
Made miscellaneous other updates:
Removed references to Stagehand, in favor of dart create.
Changed analytics options for dart.dev example code from
using pedantic to using the recommended rules in
lints.
Added Docker as a way to get Dart.
Updated the language evolution page to reflect Dart 2.13.

We published the following articles on the Dart blog:

AngularDart, Flutter, and the web: Spring update


Announcing Dart support for GitHub Actions
Dart in Google Summer of Code 2021

March 3, 2021: 2.12 release


This section lists notable changes made from October 2, 2020,
through March 3, 2021.
For details about the 2.12 release, see
Announcing Dart 2.12.

In addition to bug fixes and incremental improvements, we made the following changes to this site:

Updated and fleshed out null safety docs. Notably:


Provided a migration guide.
Added a FAQ.
Created Unsound null safety.
Simplified the null safety homepage.
Refreshed Effective Dart, updating code to be null safe and
changing rules to reflect new guidance.
Refreshed the language tour, updating code to be null safe and
adding information about new features such as
late
variables.
Updated the language evolution page
to add information about language versioning
and to reflect Dart 2.12.
Updated the library tour, samples, and codelabs
to reflect sound null safety.
Updated pages across the site to use the dart tool
instead of deprecated commands.
Started adding pages for various
dart commands, including
dart analyze, dart compile, dart fix,
and dart format.
Created a page documenting the quality and support of Dart team packages.
Google uses cookies to deliver its services, to personalize ads, and to analyze traffic. You can adjust your privacy controls
Replaced the Platforms page with a new Overview page. Okay
anytime in your Google settings. Learn more.
Created this page (“What’s new”).

https://dart.dev/guides/whats-new 3/4
7/1/22, 11:56 AM What’s new | Dart

We also switched from Travis CI to GitHub Actions, and we made multiple CSS changes to improve site legibility.

We published the following articles on the Dart blog:

Preparing the Dart and Flutter ecosystem for null safety


announced null safety API stability and
invited developers to publish
stable, null-safe versions of their packages.
Dart and the performance benefits of sound types
demonstrated how soundness and null safety enable Dart compilers to
generate faster, smaller code.
Why nullable types?
expanded on a discussion on the /r/dart_lang subreddit,
answering the question “Why not get rid of null
completely?”
Announcing Dart null safety beta
invited developers to start planning their migration to null safety.

October 1, 2020: 2.10 release


This section lists notable changes made from
July 1 through October 1, 2020.
For details about the 2.10 release, see Announcing
Dart 2.10.

In addition to bug fixes and small improvements,


we made the following changes to this site:

Added a dart tool page


to document the new command-line interface to the Dart SDK.
The new dart tool is analogous to
the flutter tool in the Flutter SDK.
Previously, the dart command only ran command-line apps.
We updated the previous
dart page accordingly
and plan to update references to other tools over time.
Updated the package changelog documentation
to recommend a standard format for CHANGELOG.md files.
This new format
lets tools
(such as the relaunched pub.dev)
parse changelogs.
Changed an Effective Dart guideline to favor
using Object instead of dynamic.
For details, see the revised guideline
AVOID
using dynamic unless you want to disable static checking.
Updated the diagnostic messages page to
include more messages produced by the Dart analyzer.
Updated the evolution page
to include 2.9 and 2.10.
Reorganized the language specification page
to make it easier to find the PDF version of
the latest, in-progress specification.
Added or updated docs related to sound null safety,
a feature that’s coming to the Dart language:
Clarified how to use experiment flags with IDEs.
Updated the null safety page, adding information about
how to enable null safety.
Added a deep dive into null safety,
Understanding null safety,
written by Dart engineer Bob Nystrom.

We published the following articles on the Dart blog:

Exploring collections in Dart helps you use collections


(lists, maps, sets, and more), with special attention to
2.3 language
features like collection if, collection for, and spreads.
Google Summer of Code 2020 results describes the results of
five projects that the Dart team mentored.
Introducing a brand new pub.dev announces the relaunch of
the pub.dev site, with new package scoring metrics, improved
search,
and a redesigned UI.

We also improved the blog navigation,


adding announcement and archive tabs, plus a link to dart.dev.

Tip:
All articles in the Dart blog are free to read.

Google uses cookies to deliver its services, to personalize ads, and to analyze traffic. You can adjust your privacy controls
Okay
anytime in your Google settings. Learn more.

https://dart.dev/guides/whats-new 4/4

You might also like