This Week in Dart - Issue 9
Hello fellow Dartisans! Welcome to the ninth 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 previously deprecated dartanalyzer
tool is set to be removed from the Dart SDK in Dart 2.19. You should migrate your usage and tooling to instead use the dart analyze
command that is part of the unified dart
tool.
DartPad, the online code playground for Dart and Flutter, now has built-in support for creating and sharing GitHub gists from within the editor.
Community updates
Discussions
- I've migrated a text editor library (13K LOC) from no state management (spaghetti code) to state management...
- Dartness: the dart web framework
- Compiler optimizations of final & immutable datatypes?
- Obstacles in Dart Decompilation & the Impact on Flutter App Security
- What is Flutter? Mobile app development for Android, iOS, and more
Learning materials
- Dart Null safety codelab - Null-aware operators
- Initialize Objects Without Data - Learn Dart Programming
Project releases
- package:elixir was released
Tool for commentingdart analyze
results on GitHub pull requests. - package:secretary was released
A sophisticated tool for managing queues of asynchronous tasks, with a stream interface, strong typing and lots of helpful options. - package:dartness_server was released
A framework for building efficient, scalable dart server-side applications. It provides an easy and quick way to develop modern standalone server. - package:shelf_swagger_ui was released
Present clean and professional documentation with Swagger + shelf.
Project updates
- Dart Code for VS Code v3.44.0 was released
- package:bones_ui v2.0.13 was released
- package:objectbox v1.6.0 was released
- package:appwrite v6.0.0 was released
- package:jaspr v0.1.5 was released
- package:openfoodfacts v1.20.0 was released
- package:mysql1 v0.20.0 was released
- package:fennec v0.0.9 was released
Dart SDK updates
29 unique authors have contributed 106 commits to the Dart SDK in the past week.
The following are some handpicked, interesting changes:
- [vm] New implementation of sync* based on suspend/resume stubs
- [analysis_server] fix RemoveUnnecessaryParentheses with space
- [dart:html] Add MathMLElement
- This is a precursor CL to a client side only InterfaceType class...
- [vm, gc] Make force-growth a thread-local property
- [CFE] Add constant replacer
- [vm] Avoid clobbering array length in AllocateArray stub on ARM
- Remove dartanalyzer from built SDK
- Bump DevTools to version 2.15.0
Keep in mind, none of these changes are guaranteed to eventually land in a stable release.
Language updates and discussion
While large changes have been minimal over this past week, there are constant changes and improvements to the language being discussed and implemented.
One commonly requested one is the introduction of expanded capability modifiers for classes and mixins. These keywords can limit some functionality of these types, such as subclassing, implementing, or unlimited declarations. Allowing the creator to limit these capabilities can not only enable for easier API expansion over time but is necessary for some features such as pattern matching.
To read more about these potential capability modifiers, reference the working proposal of Type Modifiers.
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 sass!
package:sass
is the primary implementation of Sass, an expansive, CSS extension language. As the primary implementation, it receives new features before any other implementation. It's fast, easy to install, and it can compile to pure JavaScript to easily integrate into modern web development workflows.
Sass has been an important part of the web development landscape for many years, improving the productivity of all types of developers. The primary implementation being in Dart for the past few years showcases the strength of Dart beyond UI programming, instead as a general-purpose language.
To incorporate Sass into your Dart web application workflow, consider the third-party sass_builder package, which transpiles Sass files using Dart's build system.
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.