This Week in Dart - Issue 17

Hello fellow Dartisans! Welcome to the seventeenth issue of This Week in Dart! This Week in Dart's aim is to be a useful collection of changes and news from across the Dart ecosystem and its surrounding community.

To contribute to this and future issues, feel free to contribute on GitHub or suggest content for next week on GitHub discussions.

To discuss this week's issue, feel free to join us on the Unofficial Dart Community Discord in the #this-week-in-dart channel.

Announcements

Pub repository field

If you haven't already and your package is open source, consider specifying the repository field in your pubspec.yaml file. The package analysis tools and the pub.dev site use the specified link to populate links on the package site and in the future may use it for git repository verification.

Deprecations

In Dart 2.19, using a colon (:) to separate a named parameter from its default value will result in a warning by the analyzer. While most code should already use an equal sign (=) already, make sure your code is migrated.

You can enable the prefer_equal_for_default_values lint then use the dart fix tool to automatically transition all current usages and avoid future ones.

Community updates

Discussions

Learning materials

Project releases

Project updates

Dart SDK updates

39 unique authors have contributed 125 commits to the Dart SDK in the past week.

The following are some handpicked, interesting changes:

Keep in mind, none of these changes are guaranteed to eventually land in a stable release.

Language updates and discussion

Specification and implementation work continues for records and patterns.

In terms of the specifications, the 2.17 release of the patterns specification was released this week with the following changes:

While not new this week, unnamed libraries have been implemented in the SDK and are set to be supported in Dart 2.19. Unnamed libraries allow users to document a library and associate metadata with a library without needing to decide on a library name.

To learn more about and contribute to discussion of these and other potential changes to the Dart language, visit the Dart language repository.

Package of the week

The package of the week is package:meta!

package:meta is a package built by the Dart team providing a set of annotations to better express developer intentions that can't otherwise be deduced by statically analyzing source code.

Tools such as Dart's analyzer can use the information provided by the tools to provide feedback if your code violates intentions signaled by these intentions.

One popular example is the @required annotation used to signal a named parameter was required before the introduction of the required keyword. Another is @immutable, which lets the analyzer warn you if a class with this annotation is not immutable. To learn more about many of the useful annotations provided, visit the API documentation of package:meta on pub.dev.

These annotations can be used to improve code quality and avoid potential bugs, helping not only you as a developer but also the users of your libraries.

Dart's package ecosystem is growing fast, and we want to help foster that growth. If you know of any great open source projects, let us know by suggesting a package on GitHub discussions.

Upcoming events

Check the Flutter Meetup Network and the Dart Language tag on Meetup to find an event near you or online and connect with other Dart developers!

Let us know about future events on the events discussion board to include here!

Quotes and notes

Share quotes and comments you see and hear about Dart on our quotes discussion board for future inclusion!

I'm simply happy to see more Dart lines of code in the world

—@decadentsavant on Twitter

@dart_lang is the perfect combination of Python, JavaScript, C# and Java! It's so cool to work with honestly! I am loving it so far!

—@MaxProgramming1 on Twitter

Dart jobs

If you know of any jobs which use or are related to Dart, let us know in the Job postings for Dart discussion board, and we will be happy to include them here!