Packages like Freezed compensate for missing Dart language features such as sealed unions and offer many useful features.
Many Flutter packages rely on build_runner, a build system for Dart code generation.
Unfortunately, build_runner takes long time to run because by default it analyzes all the Dart source files in your project.
There are two ways to mitigate this:
- move all files that depend on codegen to a separate package
- add a
build.yamlfile that specifies a subset of files to be processed:
targets: $default: builders: freezed:freezed: generate_for: include: - lib/models/**.dart
Setting this up correctly can save you a lot of time in the long run. 👍
You can use a suffix such as
*.codegen.dart for all files that need to be processed by
build_runner and update the
build.yaml like this:
targets: $default: builders: freezed:freezed: generate_for: include: - lib/**.codegen.dart
This way you can place the files anywhere you want in your project.
This tip was inspired by this thread on Twitter.
Level up your Flutter app’s performance. Get full visibility into your Flutter app’s performance, including crashes, exceptions in Dart, network health, custom traces, and more. Solve your trickiest issues, optimize user journeys, and wow your end users - again and again.