This Week in Dart - Issue 7
Hello fellow Dartisans! Welcome to the seventh 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
The next stable release of Dart, likely 2.18, will see the removal of the deprecated dart2js
and dartdevc
commands.
To compile web applications for production, instead use dart compile js
, and to develop web apps use tools like webdev
.
A future release of Dart, possibly 2.19, will see complete support for mixin of classes that don't extend Object
removed. See the breaking change request for more information on the change and migration help.
Community updates
Discussions
- Dart is Boring
- Dart as first language
- Build a CLI Tool with Dart
- Supabase Happy Hour #8 - Let's grow wings and Flutter!
Learning materials
- Really Null Safety in Flutter/Dart
- Debouncer mixin for Dart
- Merging maps in Dart
- Classes The Fast and Easy Way - Learn Dart Programming 13
- Deploy Dart Server to Heroku - Server Deployment Tutorial
- 5 Dart Tips - Flutter
Project releases
- package:mattermost_api was released
An implementation of the Mattermost API as of 4.0.0. - package:fennec was released
A Dart web framework with the principal goal make server side web development easier and faster to develop. - package:h3_dart was released
A Dart version of the H3 Core library, a hexagon-based geographic grid system. - package:adderlink was released
A Dart library for controlling Adderlink devices over a network. - package:couchdb_dart was released
A small simple package to make it easier to use a CouchDB server.
Project updates
- package:shelf_hotreload v1.3.0 was released
- package:protobuf v2.1.0 was released
- package:usage v4.1.0 was released
- package:enough_convert v1.6.0 was released
- package:glob v2.1.0 was released
- package:w_common v2.0.0 was released
- package:basics v0.8.0 was released
- package:simplytranslate v1.2.0 was released
- package:reflection_factory v1.2.0 was released
- package:geocore v0.9.0 was released
- package:moment_dart v0.7.0 was released
Dart SDK updates
35 unique authors have contributed 141 commits to the Dart SDK in the past week.
The following are some handpicked, interesting changes:
- Reland "[data driven] support moving symbols across packages"
- [vm, gc] Remove the growth policy's hard limit when concurrent marking is available
- [dart2wasm] Fix a number of minor JS interop issues
- [vm, gc] Parallelize scavenging large arrays
- quick-fix to wrap in
unawaited
- [vm, compiler] Implement all remaining assembly intrinsics for RISC-V
- [analyzer] Add a quick fix for avoid_renaming_method_parameters
Keep in mind, none of these changes are guaranteed to eventually land in a stable release.
Language updates and discussion
Changes and improvements to the language specification are continuously being discussed and implemented.
Recently, static programming through macros has been the focus of many discussions. An in-progress proposal raising reflected imports as a solution to some usability problems with macros was added this week.
To learn more and perhaps comment on reflected imports, see the Reflected Imports 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 freezed!
package:freezed
is a package for Dart that provides code generation for immutable classes and has a simple syntax/API without compromising on the features.
freezed provides many features focused around generating classes representing models, including support for data classes, unions, pattern matching, handled serialization, and more.
You can learn more about freezed, how to set it up, and how to use it on its pub page.
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 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.