This Week in Dart - Issue 5
Hello fellow Dartisans! Welcome to the fifth 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
This week saw the release of Dart 2.17.3, a patch release which fixed the following issues:
- A Dart VM compiler crash (flutter issue #100375)
- No code completion when writing method overrides (SDK issue #49027)
- The
dart pub login
command failing to write credentials (pub issue #3424) - Failed constant analysis of enhanced enums (SDK issue #49097)
To learn how to update your Dart version, check out Get the Dart SDK or download the update from the Dart SDK archive.
Community updates
Discussions
- Very Good Livestream: Dart Frog Demo
- Introducing Jaspr - A complete web-framework written in Dart
- Create videos in Dart with Cutting Room
- .dart and .dartServer is stored in home folder on macOS
- sameRuntimeType() function
Learning materials
- Type Promotion | Decoding Flutter
- Writing code as a mathematician
- Dart Essentials
- Dart-lang | Features you didn’t know exists
- Byte sized tip: Dart and GraphQL (Flutter and GraphQL)
- Total Dart Language and Flutter app development Series
- Write BETTER code with Dart 2.17 (Included in Flutter 3)
- How to Create DartPad Examples from GitHub Gists
- Master Backend with Dart Learn inside VS Code
Project releases
- package:structured_async was released
Structured asynchronous programming in Dart. - package:normal_distribution was released
A minimal Dart module for working with normal distributions. - package:creator_core was released
A state management library that enables concise, fluid, readable and testable business logic code. - package:jaspr was released
Experimental web framework that feels like Flutter but supports server-side rendering. - package:domino_html was released
Helper methods to build HTML elements with proper attributes usingpackage:domino
.
Project updates
- Dart Code (for VS Code) v3.42.0 was released
- package:ffigen v6.0.0 was released
- package:googleapis v9.0.0 was released
- package:talker v1.0.0 was released
- package:solana v0.25.0 was released
- package:dartbag v0.4.0 was released
- package:spider v3.0.0 was released
Dart SDK updates
31 unique authors have contributed 92 commits to the Dart SDK in the past week.
The following are some handpicked, interesting changes:
- [cfe/ffi] Only keep Finalizables alive after their declaration
- [CFE] Speedup dill serialization after slowdown in 548bff1
- [vm, gc] Don't double initialize typed data in compressed pointers mode
- [release] Add 2.17.3 release notes
- [vm] Represent the slow object copy from_to table with a heap array
- [ Service / AOT ] Include line numbers for Functions in AOT snapshots
- [vm] New async/async* implementation in JIT mode
- Make path argument optional for Uri.http(s)
Keep in mind, none of these changes are guaranteed to eventually land in a stable release.
Language updates and discussion
Work and discussion around the potential of adding augmentation libraries to Dart continues.
Augmentation libraries allow splitting a Dart library into files. Unlike part files, each augmentation has its own imports and top-level scope. Augmentations can add new top-level declarations, inject new members into classes, and wrap functions and variables in additional code.
To read more about augmentation libraries and their underlying motivations, including class size, generated code, and macros, see its feature specification.
To learn more about and contribute to discussion of this and other potential changes to the Dart language, visit the Dart language repository.
Package of the week
The package of the week is dcli!
dcli provides an API and tooling for building cross-platform command line (CLI) applications and scripts using the Dart programming language.
You can learn more about dcli by reading its extensive documentation found at dcli.onepub.dev.
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!
Virtual
- FIG | DIG | 2022-06-06
Dart and Flutter interest group Q&A and general discussion. - Dart/Flutter Code Lab | 2022-06-07
A one-hour code lab that is meant to motivate and have you practice learning Dart/Flutter with others.
Let us know about other future events on the events discussion board.
Quotes and notes
Share quotes and comments you see and hear about Dart on our quotes discussion board for future inclusion!
Dart jobs
The following are some jobs that will provide you the opportunity to use or even build Dart.
If you know of any jobs which use or are related to Dart, let us know in the Job postings for Dart discussion board.
- The Dart and Flutter teams have job openings across a wide variety of roles. See Flutter and Dart team job openings for more information.