This Week in Dart - Issue 16
Hello fellow Dartisans! Welcome to the sixteenth 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
Deprecations
Multiple deprecations to error types will be made in dart:core
alongside Dart 2.19:
- Deprecated
FallThroughError
. Has not been thrown since Dart 2.0. - Deprecated
RangeError.checkValidIndex
in favor ofIndexError.check
. - Deprecated
IndexError
constructor in favor ofIndexError.withLength
constructor.
You should remove and migrate all use cases of these now deprecated classes and constructors.
Community updates
Official
Discussions
- Considering deprecating and discontinuing package:oauth2
package:markdown
proposal to improve ease of use- Comparing Dart and TypeScript
- Seeking contributors for probability distributions library in Dart
Learning materials
- (Video) Parallel Beauty - with Isolates into the Mandelbrot set
- (Video) Meet Mason: Intro to Templating and Custom Code Generation
- (New book) Dart Apprentice: Fundamentals
- (New book) Dart Apprentice: Beyond the Basics
- (Online tutorial) Dart Tutorial - Learn Dart Programming
Project releases
- very_unofficial_parser was released on GitHub
Fan-made, handmade, recursive-descent parser for the Dart programming language. - package:streamdeck was released
A Dart package for building plugins for the Elgato Stream Deck. - package:ease_http was released
Based on Dart http package, makes http package more powerful and easier to use. - package:gcp was released
Utilities for running Dart code correctly on the Google Cloud Platform. - package:console_markdown was released
A console markdown for formatting and color, using chalk as a dependency. No setup required, quick and easy to use. - package:pumli was released
PlantUML interface for Dart. Provides easy PlantUML diagram conversion from Dart. - package:dino was released
A Dart dependency injection library aimed to be flexible, predictable, and easy to use.
Project updates
- Dart Code (for VS Code) v3.52.1 was released
- package:dart_frog v0.3.0 was released
- package:ziggurat v0.55.0 was released
- package:unpub v2.1.0 was released
- package:twitter_api_v2 v4.4.0 was released
- package:at_client v3.0.44 was released
- package:slang v3.4.0 was released
- package:bones_ui v2.0.24 was released
Dart SDK updates
43 unique authors have contributed 150 commits to the Dart SDK in the past week.
The following are some handpicked, interesting changes:
- [analyzer] Recursive top-level inference
- [vm/aot/tfa] Fix handling of type parameter nullability in factory constructors
- [analysis_server] Add a new warning when a colon is used as the separator for a default value
- [vm] More efficient 'is' tests for record types
- [corelib] Deprecate checkValidIndex and avoid using it in the core library
- [analysis_server] Add a fix for implicit call tear-offs
- [dart2wasm] Refactor function collector
- [vm/compiler] Remove quadratic time spent verifying handle lifetime
Keep in mind, none of these changes are guaranteed to eventually land in a stable release.
Language updates and discussion
This week saw the patterns proposal be accepted to be implemented in a future Dart version. Beyond that, the 2.16 version of the patterns feature specification was released updating the syntax of switch expressions to eliminate case
and default
.
Beyond that, the 1.1 version of the in-progress sealed types feature specification was released. To avoid unnecessary breaking changes, the sealed
keyword is no longer a built-in identifier, now relying on the context of preceding mixin
or class
.
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 mason_cli and the rest of the mason ecosystem.
package:mason_cli
allows developers to create and consume reusable templates called bricks.
The CLI tool has support for creating new bricks, searching for existing breaks, installing and removing bricks, and even bundling bricks like is done in package:very_good_cli
.
To find or share bricks, they even have a special site and platform, BricksHub.
To learn more about the mason ecosystem and how to use the CLI, see its page on pub.dev or Felix Angelov's recent introduction at Flutter Vikings.
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!
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!