This Week in Dart - Issue 2
Hello fellow Dartisans! Welcome to the third 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.1, a patch release which fixed the following issues:
- An analyzer plugin crash (issue #48682)
LateInitializationError
onlate
Finalizable
variables (issue #49005)- AOT compilation failure with
dart compile
on macOS 10.15 (issue #49010)
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
Official
Discussions
- Flutter Propels Dart, frameworks, language adoption and cross platform development
- How I switched to Flutter and lost 10 kilos
- Bring your multi-platform apps to Linux desktop with Flutter 3
- Dart And Other Programming Languages
- Emerald - JSON serializer/deserializer for JIT (uses dart:mirrors)
- Add function to the Dart Embedder API to prevent GC from running
- Dart2js uses JavaScript's RegExp implementation instead of Dart's own
Learning materials
- What's new in Dart 2.17
- A simple Service Locator for Dart and Flutter projects
- Learn Dart Programming (by Codemy)
Project releases
- package:lindenmayer_systems was released
A Dart library to handle generative grammars known as L-Systems (Lindenmayer Systems). - package:cutting_room was released
Compose and render videos with compositions, backed by FFMPEG. - package:dart_pusher_channels was released
An unofficial pure Dart implementation of Pusher Channels. - package:kroki was released
Package for accessing Kroki.io web service for converting diagram syntax to a svg rendering. - package:google_vision v0.2.0 was released
Add Google Vision functionality into Dart applications.
Project updates
- package:enough_email v2.0.0 was released
- package:sass v1.52.0 was released
- package:dart_appwrite v5.0.0 was released
- package:units_converter v2.0.0 was released
- package:twitter_api_v2 v2.0.0 was released
- package:meta v1.8.0 was released
Dart SDK updates
31 unique authors have contributed 112 commits to the Dart SDK in the past week.
The following are some handpicked, interesting changes:
- [analyzer] AddMissingEnumCaseClauses to handle final and static fields
- [js_runtime] Use Math.clz32
- [analyzer] support code completion for errors and enable-experiment
- [dart2wasm] Implement FunctionType Type
- Add experimental flag inference-update-2
- [vm, compiler] Support ShadowCallStack on Fuchsia RISC-V
- bump to linter 1.24.0
- [vm] Ensure transitive object copy allows low safepoint latencies
- [corelib] Fix bug in VM implementation of BigInt.bitLength
- [cfe] Prefix name in enhanced enum constructor
- [analysis_server] Always show TODOs via LSP if configured as warning/error
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 static metaprogramming (or macros) in Dart is still ongoing. You can read more about macros in the work in progress macro feature specification and Static Metaprogramming in Dart motivation documents.
One concern with macros has been the code duplication risk. Recently, a feature called "aspect macros" has been discussed as a potential solution. An AspectMacro
is used by another macro, to generate shared helper code which will not be duplicated across every library where that helper was needed. To learn more, see the aspect macros ideas document.
To learn more about and contribute to discussion of current and future changes to the Dart language, visit the Dart language repository.
Package of the week
The package of the week is hive!
Hive is a lightweight and blazing fast key-value database written in pure Dart. Some of its defining features are as follows:
- Cross platform support: mobile, desktop, browser
- Simple, powerful, & intuitive API
- Strong encryption built in
- No native dependencies
Hive is also looking for new maintainers willing to support the project and its continued stability. For more information, see their call for a maintainer on GitHub.
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
Find an event near you or online and connect with other Dart developers!
Always be sure to check the Flutter Meetup Network and the Dart Language tag on Meetup for more events as well.
Let us know about other future events on the events discussion board.
Virtual
- Flutter Humpday Morning Coffee | 2022-05-25
Will start off with introductions and then we will talk about what's new in Flutter world. Then we will move on to what you are working on or what is something you have learned.
United States
- Flutter Silicon Valley Meetup #2 | Palo Alto, CA, US | 2022-05-25
The second meetup for Flutter Silicon Valley, with a community Q&A led by the Google Flutter team, as well as other talks by Dart and Flutter professionals. - Google I/O Extended NYC 2022 | New York, NY, US | 2022-05-26
Google I/O Extended will be hosted at the flagship Samsung AI space in NYC, where you will participate in cutting-edge experiences, take part in interactive technology installations, browse the newest products and enjoy the event at an amphitheater with a larger-than-life, three-story screen.
Europe
- Flutter Zürich Hybrid Meetup May 2022 | Zürich, CH | 2022-05-23
Presentations and networking both on-site and on Google Meet: Flutter Web CI/CD Pipeline with GitHub and Firebase, What's new in Flutter 3.0 and where it stands compared, and a community round table. - #BackToSchool - Intro to Flutter and Google I/O Recap | Düsseldorf, DE | 2022-05-23
We'll begin with a short intro to Flutter and its ecosystem followed by a chat about the fresh Flutter updates from this year's Google I/O.
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.