Morgan :)
@__davidmorgan__
Followers
892
Following
156
Media
1
Statuses
227
Google SWE for 17 years; maintainer of build_runner for Dart and Flutter codegen; author of built_collection and built_value :)
Lausanne, Switzerland
Joined November 2016
Another perfect fit for extension types: file paths. I was writing path handling code and kept messing up due to relative vs absolute paths, and thought ... maybe `AbsolutePath` and `RelativePath` as extensions on `String`? Did exactly what I wanted :) https://t.co/qUL2zsk894
github.com
This repository is home to tooling related Dart packages. - dart-lang/tools
3
2
73
Happy Friday! No revolutionary `build_runner` release this week I'm afraid. Actually I've been sidetracked by `package:watcher` most of these last three weeks or so. It does the file watching in the Dart analyzer and `build_runner`. I've been finding+fixing lots of edge cases
github.com
This repository is home to tooling related Dart packages. - dart-lang/tools
7
6
137
"We were so impressed [by Jaspr] that we migrated our entire documentation infrastructure β both https://t.co/ehHEdj98Xf and https://t.co/w5bl4hbP3h β over to it." I'm beyond grateful for this shout-out by the @FlutterDev team and so happy to finally share this!!
docs.flutter.dev
Get started with Flutter. Widgets, examples, updates, and API docs to help you write your first Flutter app.
Flutter 3.38 is here! π©΅ β¨ This release cleans up your UI code with new Dot Shorthands, making development faster and more readable. Get the details of all thatβs new β https://t.co/kWuLvFZRTQ
23
45
376
I just released `build_runner 2.10.3` with another performance improvement, if you have a big codebase you will be happy, benchmark results: 1000 files: 2x faster (5s -> 3s) 2000 files: 5x faster (25s -> 5s) 5000 files: 27x faster (424s -> 15s) https://t.co/RKJsGJAEly
pub.dev
A build system for Dart code generation and modular compilation.
23
47
371
Do *NOT* accept such builds times from Flutter. Always check is taking the time, e.g. here this was caused by 1) choice by slang i18n package to generate 1 enormous function with all messages for each locale 2) quadratic behavior in Dart's register allocator cont
5
8
122
Please use Dart outside of Flutter more :)
@mraleph @dart_lang You guys should encourage Dart use outside of Flutter more.
21
15
159
Another `build_runner` performance improvement published today as `2.10.1`. If `source_gen:combining_builder` (used by json_serializable, built_value, ...) was slow for you it should now be much faster. https://t.co/RKJsGJA6w0
3
7
70
Happy Friday! Was gonna make a bad joke about AOT compiles but I stopped myself JIT.
2
0
50
Released: `build_runner` 2.10.0 which adds AOT compile of builders for faster builds. For now it's behind a flag, write `--force-aot` on the command line for the new mode. Please send any feedback my way, if all goes well it will be on by default in a future release.
pub.dev
A build system for Dart code generation and modular compilation.
9
10
105
Which shell do you use? After bash I used zsh for a while, then fish. I really like fish. https://t.co/jCUtT0xfaG
https://t.co/0w9xCUxKsN
1
0
0
I always enjoy when I get to use Dart extension types. Now used internally in `package:watcher` where they add static safety with no runtime cost around use of `FileSystemEvent`. https://t.co/PDYUMVqrHb
github.com
This repository is home to tooling related Dart packages. - davidmorgan/tools
2
1
21
Dart: do you use `var` or `final` for locals? I prefer `final`, but it's a long story. https://t.co/ivHHbvRs38
16
6
60
Released `build_runner` 2.9.0. Visible changes: log output, particularly in watch mode, is further streamlined. Behind the scenes: this is a big refactor to how builders are compiled and run in preparation for using AOT compile. So, please let me know if you see any new
pub.dev
A build system for Dart code generation and modular compilation.
5
5
53
Taking over `package:watcher`, which is what `build_runner` and the analyzer use to monitor for file changes. There are some minor bugs and inconsistencies, probably a breaking release will be needed to get everything in line, if you use `package:watcher` you may want to follow
github.com
Currently the behavior with symlinks is undefined + untested. Add test coverage, decide the new behavior, do a breaking release. As part of this change, fix behavior when there are cyclic symlinks ...
1
1
39
Dart: why would you `omit_local_variable_types`? The lint forces types on the left hand side of a local variable declaration + assignment to be omitted. A lot of the discussion around this and related lints misses what I think is the critical point here: that types on the left
1
2
22
Do you develop plugins for Flutter? Investigating a rare corner case causing IDE/tool slowness, if it affects you, please let me know! - you work on a plugin - you have other packages nested in the plugin package - you "flutter pub get" in the nested packages
github.com
Create a package with a plugin Inside it, i.e. in a nested folder, create a package with a path dependency onto the plugin Run flutter pub get in the nested folder Note: this is a common pattern fo...
0
2
18
Released `build_runner 2.8.0`: - clearer errors if the build fails; highlighted red - removed the "deleting declared outputs" warning - a bunch of internal refactoring/cleanup that 99% of you don't care about :) https://t.co/RKJsGJAEly
pub.dev
A build system for Dart code generation and modular compilation.
8
6
110
If you've ever wanted proper "undefined" behavior, or untagged unions in dart_mappable, you can have it now: https://t.co/G5sovUTvQH
pub.dev
Untagged Unions and Undefined Types for dart_mappable
1
3
16
Released built_value 8.12 using the new build_runner "triggers". Files that don't use built_value are skipped quickly as "not triggered". ``` dart run build_runner build 2s built_value_generator:built_value on 1001 inputs: 999 not triggered, 2 output; spent 1s analyzing ``` If
2
0
25
When I tell a dev tool to do something I don't want it to immediately ask me back: how? This mostly happens when there are multiple functionally equivalent way to do the same thing; for example, relative vs package imports in Dart. In such cases I want opinionated tools that
0
1
4