Viewing version 5.15.0. Open the latest package page.
flutter_gen_runner
5.15.0The Flutter code generator for your assets, fonts, colors, … — Get rid of all String-based APIs.
Readme
The Flutter code generator for your assets, fonts, colors, … — Get rid of all String-based APIs.
Inspired by SwiftGen.
Motivation
Using asset path string directly is not safe.
# pubspec.yaml
flutter:
assets:
- assets/images/profile.jpg
❌ Bad
What would happen if you made a typo?
Widget build(BuildContext context) {
return Image.asset('assets/images/profile.jpeg');
}
// The following assertion was thrown resolving an image codec:
// Unable to load asset: assets/images/profile.jpeg
⭕️ Good
We want to use it safely.
Widget build(BuildContext context) {
return Assets.images.profile.image();
}
Installation
As a part of build_runner
-
Add build_runner and FlutterGen to your package's pubspec.yaml file:
environment: sdk: ^3.7.0 dev_dependencies: build_runner: ^2.12.0 flutter_gen_runner:flutter_gen_runnernow relies on post-process builders withbuild_to: source, sobuild_runner >=2.12.0is required. -
Install FlutterGen
flutter pub get -
Use FlutterGen
dart run build_runner build
Pub workspaces
FlutterGen also supports dart pub workspaces.
Run build_runner from the workspace root, and make sure each workspace member
that should be built has resolution: workspace in its pubspec.yaml.
# workspace root pubspec.yaml
environment:
sdk: ^3.7.0
workspace:
- packages/app
# packages/app/pubspec.yaml
name: app
resolution: workspace
dev_dependencies:
flutter_gen_runner:
build_runner: ^2.12.0
dart run build_runner build --workspace
FlutterGen will resolve each package from the active build target instead of the
process working directory, so package-local pubspec.yaml configuration and
output paths continue to work in workspace builds.
If generated source files were removed manually while .dart_tool/build is
still present, run dart run build_runner clean from the workspace root before
running build --workspace again. The current post-process builder flow can
re-materialize files reliably after a clean build, but a warm incremental build
may skip unchanged manifests.
For workspace builds, use Dart >=3.7.0 together with build_runner >=2.12.0.
Pub Global
Works with macOS, Linux and Windows.
dart pub global activate flutter_gen
You might need to set up your path.
Homebrew
Works with macOS and Linux.
brew install FlutterGen/tap/fluttergen
asdf
Works with macOS and Linux. asdf-fluttergen is compatible with mise.
# add plugin
asdf plugin add fluttergen
# or
asdf plugin add fluttergen https://github.com/FlutterGen/asdf-fluttergen.git
# install fluttergen
asdf install fluttergen latest
See also: FlutterGen/asdf-fluttergen
GitHub Actions
Works with macOS and Linux.
- uses: FlutterGen/setup-fluttergen@v1
with:
version: ${{ fluttergen_version }}
See also: FlutterGen/setup-fluttergen
Usage
Run fluttergen after the configuration pubspec.yaml.
fluttergen -h
fluttergen -c example/pubspec.yaml
fluttergen --workspace -c pubspec.yaml
Use --workspace to treat the config file as a workspace root pubspec and run
generation for each listed workspace member. Without --workspace, the command
generates for exactly one package.
When --workspace is enabled, the root pubspec.yaml is used only to discover
workspace members from its workspace: section. FlutterGen then switches to
each member package and loads that package's own pubspec.yaml and, if
present, its local build.yaml.
That means workspace-wide command execution behaves like this:
- Root
pubspec.yaml: selects which packages to visit. - Member
pubspec.yaml: providesflutterandflutter_genconfiguration. - Member
build.yaml: overrides generator options for that member only.
The --build option is only available in single-package mode. In workspace
mode, put any overrides in each package's local build.yaml instead.
Configuration file
FlutterGen generates dart files based on the key flutter and flutter_gen of pubspec.yaml.
Default configuration can be found here.
# pubspec.yaml
# ...
flutter_gen:
output: lib/gen/ # Optional (default: lib/gen/)
# line_length: 80 # Optional
# Optional
integrations:
image: true
flutter_svg: true
rive: true
lottie: true
colors:
inputs:
- assets/color/colors.xml
flutter:
uses-material-design: true
assets:
- assets/images/
fonts:
- family: Raleway
fonts:
- asset: assets/fonts/Raleway-Regular.ttf
- asset: assets/fonts/Raleway-Italic.ttf
style: italic
build.yaml
When using build_runner, you can also configure generator options in the
target build.yaml. These builder options are applied on top of the
pubspec.yaml configuration for the current target.
# build.yaml
# ...
targets:
$default:
builders:
flutter_gen_runner: # or flutter_gen
options:
output: lib/build_gen/ # Optional (default: lib/gen/)
line_length: 120 # Optional
Available Parsers
Assets
Following the doc
Adding assets and images#Specifying assets
to specify assets, then FlutterGen will generate related dart files.
No other specific configuration is required.
Ignore duplicated.
# pubspec.yaml
flutter:
assets:
- assets/images/
- assets/images/chip3/chip.jpg
- assets/images/chip4/chip.jpg
- path: assets/images/icons/paint.svg
- path: assets/images/icons/transformed.svg
transformers:
- package: vector_graphics_compiler
- assets/images/icons/dart@test.svg
- assets/json/fruits.json
- assets/flare/Penguin.flr
- assets/rive/vehicles.riv
- pictures/ocean_view.jpg
# Also include assets from deferred components
# https://docs.flutter.dev/perf/deferred-components
deferred-components:
- name: myDeferredComponent
assets:
- assets/images/another_image.jps
- assets/videos/a_large_video.mp4
These configurations will generate assets.gen.dart under the lib/gen/ directory by default.
Flavored assets
Flutter supports
Conditionally bundling assets based on flavor.
Assets are only available with flavors if specified.
flutter_gen will generate the specified flavors for assets regardless the current flavor.
The flavors field accessible though .flavors, for example:
print(MyAssets.images.chip4.flavors); // -> {'extern'}
Excluding generating for assets
You can specify flutter_gen > assets > exclude using Glob patterns to exclude particular assets.
flutter_gen:
assets:
exclude:
- folder-your-want-to-exclude/**
- specified-asset.jpg
See more patterns with the package:glob.
Generate for packages
If you want to generate assets for a package,
use package_parameter_enabled under flutter_gen > assets > outputs.
flutter_gen:
assets:
outputs:
package_parameter_enabled: true # <- Add this line.
This would add the package constant to the generated class. For example:
class Assets {
const Assets._();
static const String package = 'test';
static const $AssetsImagesGen images = $AssetsImagesGen();
static const $AssetsUnknownGen unknown = $AssetsUnknownGen();
}
Then you can use assets with the package implicitly or explicitly:
// Implicit usage for `Image`/`SvgPicture`/`Lottie`.
Widget build(BuildContext context) {
return Assets.images.icons.paint.svg(
width: 120,
height: 120,
);
}
or
// Explicit usage for `Image`/`SvgPicture`/`Lottie`.
Widget build(BuildContext context) {
return SvgPicture.asset(
Assets.images.icons.paint.path,
package: Assets.package,
width: 120,
height: 120,
);
}
Generate directories path
If you want to generate the path of directories,
use directory_path_enabled under flutter_gen > assets > outputs.
flutter_gen:
assets:
outputs:
directory_path_enabled: true # <- Add this line.
This would add the path getter to the generated directory class. For example:
class $AssetsImagesGen {
const $AssetsImagesGen();
///******///
/// Directory path: assets/images
String get path => 'assets/images';
}
Including additional metadata
At build time, additional metadata may be included in the generated class, by using the
parse_metadata option.
flutter_gen:
parse_metadata: true # <- Add this line (default: false)
For image based assets, a new nullable size field is added to the
generated class. For example:
AssetGenImage get logo => const AssetGenImage(
'assets/images/logo.png',
size: Size(209.0, 49.0),
);
Which can now be used at runtime without parsing the information from the actual asset.
Widget build(BuildContext context) {
return Assets.images.logo.size!.width;
}
You can use parse_animation to generate more animation details.
It will automatically parse all animation information for GIF and WebP files,
including frames, duration, etc. As this option significantly increases generation time,
The option is disabled by default; enabling it will significantly increase the generation elapse.
flutter_gen:
images:
parse_animation: true # <- Add this line (default: false)
# This option implies parse_metadata: true when parsing images.
For GIF and WebP animation, several new nullable field is added to the generated class. For example:
AssetGenImage get animated =>
const AssetGenImage(
'assets/images/animated.webp',
size: Size(209.0, 49.0),
isAnimation: true,
duration: Duration(milliseconds: 1000),
frames: 15,
);
Usage Example
FlutterGen generates Image class if the asset is Flutter supported image format.
Example results of assets/images/chip.jpg:
Assets.images.chipis an implementation ofAssetImage class.Assets.images.chip.image(...)returnsImage class.Assets.images.chip.provider(...)returnsImageProvider class.Assets.images.chip.pathjust returns the path string.Assets.images.chip.valuesjust returns the values list.
Widget build(BuildContext context) {
return Assets.images.chip.image();
}
Widget build(BuildContext context) {
return Assets.images.chip.image(
width: 120,
height: 120,
fit: BoxFit.scaleDown,
);
Widget build(BuildContext context) {
// Assets.images.chip.path = 'assets/images/chip3/chip3.jpg'
return Image.asset(Assets.images.chip.path);
}
If you do not want to generate AssetGenImage, set flutter_gen > integrations > image to false.
# pubspec.yaml
flutter_gen:
integrations:
image: false
If you are using SVG images with flutter_svg you can use the integration feature. This feature also supports using vector_graphics_compiler transformer and the produced code will use the AssetBytesLoader for such transformed assets.
# pubspec.yaml
flutter_gen:
integrations:
flutter_svg: true
flutter:
assets:
- assets/images/icons/paint.svg
- path: assets/images/icons/transformed.svg
transformers:
- package: vector_graphics_compiler
Widget build(BuildContext context) {
return Assets.images.icons.paint.svg(
width: 120,
height: 120
);
}
Available Integrations
| Packages | File extension | Setting | Usage |
|---|---|---|---|
| flutter_svg | .svg | flutter_svg: true |
Assets.images.icons.paint.svg() |
| rive | .riv | rive: true |
Assets.rive.vehicles.rive() |
| lottie | .json, .zip, .lottie, .tgs | lottie: true |
Assets.lottie.hamburgerArrow.lottie() |
Note: For lottie integration with .lottie and .tgs files, you must add a custom decoder via decoder parameter, see lottie's document for more information.
In other cases, the asset is generated as String class.
// If don't use the Integrations.
final svg = SvgPicture.asset(Assets.images.icons.paint);
final json = await rootBundle.loadString(Assets.json.fruits);
FlutterGen also support generating other style of Assets class:
# pubspec.yaml
flutter_gen:
assets:
outputs:
# Assets.imagesChip
# style: camel-case
# Assets.images_chip
# style: snake-case
# Assets.images.chip (default style)
# style: dot-delimiter
flutter:
assets:
- assets/images/chip.png
The root directory will be omitted if it is either assets or asset.
assets/images/chip3/chip.jpg => Assets.images.chip3.chip
assets/images/chip4/chip.jpg => Assets.images.chip4.chip
assets/images/icons/paint.svg => Assets.images.icons.paint
assets/images/icons/dart@test.svg => Assets.images.icons.dartTest
assets/json/fruits.json => Assets.json.fruits
pictures/ocean_view.jpg => Assets.pictures.oceanView
Example of code generated by FlutterGen
Fonts
Just follow the doc Use a custom font to specify fonts, then FlutterGen will generate related dart files.
No other specific configuration is required.
Ignore duplicated.
# pubspec.yaml
flutter:
fonts:
- family: Raleway
fonts:
- asset: assets/fonts/Raleway-Regular.ttf
- asset: assets/fonts/Raleway-Italic.ttf
style: italic
- family: RobotoMono
fonts:
- asset: assets/fonts/RobotoMono-Regular.ttf
- asset: assets/fonts/RobotoMono-Bold.ttf
weight: 700
These configurations will generate fonts.gen.dart under the lib/gen/ directory by default.
Generate for packages
If you want to generate fonts for a package,
use package_parameter_enabled under flutter_gen > fonts > outputs.
flutter_gen:
fonts:
outputs:
package_parameter_enabled: true # <- Add this line.
This would add the package constant to the generated class. For example:
class Fonts {
Fonts._();
static const String package = 'test';
static const String raleway = 'packages/$package/Raleway';
static const String robotoMono = 'packages/$package/RobotoMono';
}
Usage Example
Text(
'Hi there, I\'m FlutterGen',
style: TextStyle(
fontFamily: FontFamily.robotoMono,
fontFamilyFallback: const [FontFamily.raleway],
),
)
Example of code generated by FlutterGen
Colors
FlutterGen supports generating colors from XML format files.
Ignore duplicated.
# pubspec.yaml
flutter_gen:
colors:
inputs:
- assets/color/colors.xml
- assets/color/colors2.xml
FlutterGen can generate a Color class based on the name attribute and the color hex value.
If the element has the attribute type, then a specially color will be generated.
Currently supported special color types:
Noticed that there is no official material color generation algorithm. The implementation is based on the mcg project.
<color name="milk_tea">#F5CB84</color>
<color name="cinnamon" type="material">#955E1C</color>
<color name="yellow_ocher" type="material material-accent">#DF9527</color>
These configurations will generate colors.gen.dart under the lib/gen/ directory by default.
Usage Example
Text(
'Hi there, I\'m FlutterGen',
style: TextStyle(
color: ColorName.denim,
),
Example of code generated by FlutterGen
Credits
The material color generation implementation is based on mcg and TinyColor.
Issues
Please file FlutterGen specific issues, bugs, or feature requests in our issue tracker.
Plugin issues that are not specific to FlutterGen can be filed in the Flutter issue tracker.
Known Issues
Bad State: No Element when using build_runner
If you get an error message like this:
[SEVERE] flutter_gen_runner:flutter_gen_runner on $package$:
Bad state: No element
[SEVERE] Failed after 16.0s
The you most likely have a customized build.yaml to configure the build runner. In that case, all you have to do is to add the pubspec.yaml as build source to your build.yaml
targets:
$default:
sources:
include:
- pubspec.yaml # add this line
- ...
See #268 for the corresponding issue discussion.
Error with internationalization
Please try to remove generate: true in your pubspec.yaml and disable synthetic-package in your l10n.yaml like:
# pubspec.yaml
flutter:
generate: true <--- ⚠️Remove this line⚠️
# l10n.yaml
arb-dir: lib/l10n
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart
synthetic-package: false <--- ⚠️Add this line⚠️
Contributing
We are looking for co-developers.
If you wish to contribute a change to any of the existing plugins in this repo, please review our contribution guide and open a pull request.
Changelog
5.15.0
Feature
- #755 Use
abstract finalclass modifier for generated classes. by @RahmiTufanoglu
Fix
- #764 Add
xml 7.xsupport by wideningflutter_gen_core'sxmlconstraint to>=6.0.0 <8.0.0. by @Akhrameev
Development
- #757 Scope
GITHUB_TOKENto least privilege in the release workflow. - Fix tag glob in the
Release/Publishworkflows so pushing avMAJOR.MINOR.PATCH[+build|-pre]tag actually triggers them (previouspublish.ymlused regex syntax that GitHub Actions filter globs never matched). - Bump CI toolchain: Flutter
3.44.4, Node.js24.18.0, pnpm11.9.0,lint-stagedv17.
5.14.1
Development
- Fix package root resolution after build_runner 2.14.0 AOT changes. by @Carapacik
5.14.0
Feature
- Add
build_runner --workspacesupport forflutter_gen_runnerusing a manifest + post-process materialization pipeline. - Add
fluttergen --workspacesupport to the command package, including package-localbuild.yamloverrides for each workspace member.
Development
- Document and align the minimum supported versions for the new build pipeline: Dart
>=3.7.0andbuild_runner >=2.12.0. - Document the current
build_runner --workspacerebuild limitation for manually deleted generated files and recommendbuild_runner cleanbefore rebuilding.
5.13.0+1
Development
- Fixes version conflict between packages.
5.13.0
Development
5.12.0
Development
- #707 Allow
build 4.0.0. by @BetterB0y
5.11.0
Feature
- #576 Add support for deferred components. by @ianmaciel
- #676 Add new option
parse_animationto parse metadata for animated images. by @HuanDu - #680 Add svg
ColorMapperto svg loader. by @sysint64 - #685 Use
.vecSVG class forvector_graphics_compilertransformed assets. by @Albert221 - #697 Refactor how generated files are being formatted. by @AlexV525
Development
- #681 Bump
dart_stylev3 which also requires Dart 3.4. by @AlexV525 - #682 Add Facts generate utils. by @AlexV525
- #694 Use fine-grained logger instead of
stdout.writeln. by @AlexV525 - #698 Improve workflow with automatic formatting. by @AlexV525
- #699 Allow
build 3.0.0. by @davidmorgan
5.10.0
Feature
- #659 Add support Telegram Sticker
.tgsin Lottie Integration. by @dungngminh
Bug fix
- #653 Constraints
dart_styleto>=2.3.7. by @AlexV525 - #656 Add missing parameters in Lottie integration from lottie 3.0.0. by @dungngminh
- #658 Update required dart version. by @koji-1009
5.9.0
Feature
- #587 Support Lottie ZIP archive files. by @AlexV525
- #599 Use
FilterQuality.mediumfor the image integration. by @AlexV525 - #615 Support
dart_stylev3. by @AlexV525 - #618 Remove Flare integration. by @AlexV525
- #619 Generate package path for directory. by @AlexV525
- #620 Format Dart files with the current Dart version instead of the latest supported. by @AlexV525
- #621 Adds
.lottiesupport. by @AlexV525 - #635 Support
archivev4. by @AlexV525 - #645 Allows not enable the image integration. by @AlexV525
Development
- #593 Better stdouts. by @AlexV525
- #622 Fix invalid codecov config. by @AlexV525
- #630 Update proper EOF. by @AlexV525
- #643 Improvements with code lints. by @AlexV525
- #644 Format code. by @AlexV525
Bug fix
5.8.0
Feature
- #555 Support build.yaml to configure. by @b2nkuu
- #567 Generate the
packageconstant for generated font classes. by @TesteurManiak - #569 Enables
gaplessPlaybackby default for image assets. by @AlexV525 - #580 Allows
mime: '>=1.0.0 <3.0.0'. by @AlexV525
Development
5.7.0
Feature
Development
- New releases asdf-fluttergen and setup-fluttergen. by @ronnnnn
5.6.0
Bug fix
- #530 Fix the Flavored assets. by @AlexV525
- #532 Provide the theme to SvgAssetLoader instead of SvgPicture. by @Kirpal
5.5.0+1
Feature
- #471 Handles root directory assets. by @AlexV525
- #472 Add directory_path_enabled to output the path of assets directory classes. by @AlexV525
- #487 Add support for 'useArtboardSize' argument in rive integration. by @devilbuddy
- #493 Add support for vector graphics (vec files) in SvgGenImage. by @raldhafiri
Bug fix
Development
- Update to Dart 3.3.4.
- Update to Flutter 3.19.6.
5.4.0
Feature
Bug fix
Development
- #438 Fix module configurations.
- Update to Dart 3.2.0.
- Update to Flutter 3.16.0.
5.3.2
Bug fix
- #409 Update dependencies.
- Update Dart SDK to
>=2.17.0 <4.0.0.
- Update Dart SDK to
Development
- Update to Dart 3.1.2.
- Update to Flutter 3.13.5.
Team
- Welcome @AlexV525 🎉
5.3.1
Bug fix
5.3.0
Feature
Bug fix
- #396 Fix
flutter_svg>=2.0.4requires a non-nullclipBehaviorfield. @jetpeter @hasanmhallak
Development
- #380 Migrate to melos v3. @blaugold @jfacoustic
- Update Dart SDK to
>=2.17.0 <3.0.0.
5.2.0
Feature
- #350 [BREAKING CHANGES] Upgrade for support of
flutter_svg 2.0.0.
5.1.0, 5.1.0+1
Feature
5.0.3
Bug fix
- #322 Fix wrong package asset path with svg, lottie, flare and rive integrations.
- #323 Fix generate failed when only list in a JSON files.
5.0.2
Bug fix
5.0.1
Bug fix
- #300 Fix
package_parameter_enabledbeing ignored for Flare, Rive and Lottie. - #303 Add
ignore_for_file: implicit_dynamic_list_literalto generated files.
Development
- #306 Update required
analyzer: '>=4.7.0 <6.0.0'
5.0.0
Feature
-
#285 #298 Add Lottie files integration.
// Assets.lottie.hamburgerArrow.lottie() SizedBox( width: 200, height: 200, child: Assets.lottie.hamburgerArrow.lottie( fit: BoxFit.contain, ), ), -
#286 Allow users to change generated class name for assets, fonts, and colors.
flutter_gen: assets: # Optional outputs: class_name: MyAssets # Default is `Assets` fonts: # Optional outputs: class_name: MyFontFamily # Default is `FontFamily` colors: # Optional outputs: class_name: MyColorName # Default is `ColorName` -
#291 Add values list to generated classes for each directory.
Assets.images.values // <List<AssetGenImage>>[chip1, chip2, logo, profileJpg, profilePng]; -
#292 Support an ImageProvider.
// Assets.images.chip.provider() Container( height: 400, decoration: BoxDecoration( image: DecorationImage( image: Assets.images.chip.provider(), ), ), child: const Center(child: Text('Deco')), ), -
#294 [BREAKING CHANGES] Moved the
styleandpackage_parameter_enabledto under assets.outputs scope.# ❌ Before flutter_gen: # ... assets: package_parameter_enabled: true style: snake-case outputs: class_name: MyAssets # ⭕️ After flutter_gen: # ... assets: outputs: class_name: MyAssets package_parameter_enabled: true style: snake-case
Bug fix
- #287 Delete the generated files then flutter_gen won't generate files again
- #dart-lang/build#3364 Aggregate builder not rebuild when one of multiple output files is deleted.
4.3.0
Feature
Bug fix
- #247 Make the default scale value null, so Flutter decides the one to use.
4.2.1, 4.2.1+1
Bug fix
- #236 The crypto package 3.0.2 conflict in flutter_gen_runner 4.2.0 with integration_test.
4.2.0
Feature
-
#208 Add scale and opacity parameters to Image().
-
#221 Support for build_runner watch.
-
#227 Maintenance for Flutter3 (flutter_lints to 2.0.1).
-
#229 Removed the AssetImage inheritance from AssetGenImage.
- Extending package information to asset types other than AssetGenImage.
- Added 'gen_for_package:true/false' param to support asset generation for a package.
// Before Widget build(BuildContext context) { return Image(image: Assets.images.chip); // Can't use this. } // After Widget build(BuildContext context) { return Assets.images.chip.image(); }- Added example_resource package for how to use another package resources from an app.
# file: example_resources/pubspec.yaml # ... flutter_gen: # ... assets: enabled: true package_parameter_enabled: true #... -
#230 Add coverage ignore comment on generated file headers.
-
Update collection to 1.16.0.
-
Update min dart sdk to >=2.14.0 <3.0.0.
Development
- Update to Dart 2.17.1
- Update to Flutter 3.0.1
4.1.6, 4.1.6+1
Feature
4.1.5
Bug fix
- #187 Update dependencies.
- analyzer
4.1.4
Feature
Development
- Update to Dart 2.15.0
- Update to Flutter 2.8.1
4.1.3
Bug fix
4.1.2+1, 4.1.2+2
Development
- Added sample code.
4.1.2
Bug fix
- #156 The Dartdocs generate different strings on Windows and Ubuntu.
4.1.0
Feature
- #138 Generate dartdoc as follows.
/// File path: pictures/chip5.jpg AssetGenImage get chip5 => const AssetGenImage('pictures/chip5.jpg'); /// Color: #979797 static const Color gray410 = Color(0xFF979797); - #143 Support Rive files type.
flutter_gen: integrations: rive: true - #150 Added the --version option for command-line.
Bug fix% fluttergen --version FlutterGen v4.1.0 - #134 Added the ability to support the at symbol (@) in file names.
DevelopmentAssetGenImage get logo2x => const AssetGenImage('assets/images/logo@2x.png'); - Update to Dart 2.14.4.
- Update to Flutter 2.5.3.
- Replace to renovate.
4.0.1
Bug fix
Development
- Replace to flutter_lints.
4.0.0
Features
- [BREAKING] Ended support for Non null safety codes.
- Use for
line_lengthinstead oflineLength.
Development
- Replace to Melos.
- Add VSCode setting.
3.1.2
-
#117 Update to analyzer 2.0.0. flutter_gen_runner (flutter_gen_core) 3.1.2 -> analyzer 2.0.0 workaround
dependency_overrides: meta: ^1.7.0 -
#110 Replace null safety dart style package.
3.1.1
Features & Bug fix
- #103 Add option packageParameterEnabled to control whether to generate package parameter for assets or not.
3.1.0
Features
- #98 Support for adding assets from a package
3.0.0, 3.0.1, 3.0.2
- Support Null Safety
flutter_gen:
output: lib/gen/
line_length: 80
null_safety: true # Optional (default: true)
2.0.1, 2.0.2, 2.0.3
- Update dependencies
2.0.0
New Feature
-
[BREAKING CHANGE] #49 #53 Name collision with flutter localization when using build_runner
# Before # dev_dependencies: # flutter_gen: 1.3.1 # After dev_dependencies: flutter_gen_runner: ^2.0.0 -
#74 Doesn't generate assets.gen.dart when there are no assets
flutter_gen: fonts: enabled: false -
#59 Handling duplicate file names
// generated codes static const AssetGenImage imagesProfileJpg = AssetGenImage('assets/images/profile.jpg'); static const AssetGenImage imagesProfilePng = AssetGenImage('assets/images/profile.png');
Bug fix
- #75 Null safety support for generated files
1.3.1
Bug fix
- #60 Set files like .DS_Store to the ignore list.
1.3.0
New Feature
- #46 Added support for unknown mime type files.
- Added support for Rive (previously Flare) files.
1.2.2
Bug fix
- #51 Added support for Key parameter in image() and svg().
1.2.1
Bug fix
- #42 Generated output folder name not being respected
1.2.0
New Feature
- #40 Support MaterialAccentColor
1.1.0
New Feature
- #33 Support to generate flat hierarchy assets with field name style:
- camel-case
- snake-case
- dot-delimiter (Default)
1.0.3
Bug fix
- Insufficient params of flutter_svg #32
1.0.2
Bug fix
1.0.1
Bug fix
- Issue #21
1.0.0
Initial release.
-
Assets generator
- Supported image type.
- Supported SVG as an integration.
- And others.
-
Fonts generator
-
Colors generator
- Supported xml file.
- MaterialColor
- Supported xml file.
Installing
export PUB_HOSTED_URL=https://pub.mirror.p-hatan.com
flutter pub add 'flutter_gen_runner:5.15.0'pubspec.yaml
name: flutter_gen_runner
description: The Flutter code generator for your assets, fonts, colors, … — Get rid of all String-based APIs.
version: 5.15.0
homepage: https://github.com/FlutterGen/flutter_gen
repository: https://github.com/FlutterGen/flutter_gen/tree/main/packages/runner
documentation: https://github.com/FlutterGen/flutter_gen
issue_tracker: https://github.com/FlutterGen/flutter_gen/issues
environment:
sdk: ^3.4.0
dependencies:
flutter_gen_core: 5.15.0
build: ^4.0.0
build_config: ^1.1.2
collection: ^1.17.0
crypto: ^3.0.0
glob: ^2.0.0
package_config: ^2.1.0
path: ^1.8.0
yaml: ^3.0.0
dev_dependencies:
lints: any # Ignoring the version to allow editing across SDK versions.
test: ^1.25.0
Version history
| Version | Published | Archive | SHA-256 |
|---|---|---|---|
| 2.0.0-dev.1 | On demand | Download | 7e914dde…6739f5 |
| 2.0.0 | On demand | Download | 9f8fcb89…f7caf7 |
| 2.0.1-dev.0 | On demand | Download | af9edeeb…aeda1b |
| 2.0.1-dev.1 | On demand | Download | cad1641d…361bdd |
| 2.0.1 | On demand | Download | a562dd34…cd4ebe |
| 2.0.2 | On demand | Download | 0c3b9682…34d6e4 |
| 2.0.3 | On demand | Download | 081f71c6…5a27c7 |
| 3.0.0 | On demand | Download | 015dca54…e0c0ea |
| 3.0.0+1 | On demand | Download | 75db5137…e86b46 |
| 3.0.1 | On demand | Download | 820237c9…a7a95c |
| 3.0.2 | On demand | Download | 6e610a22…8ed8f5 |
| 3.1.0 | On demand | Download | 6af9af91…e7b247 |
| 3.1.1 | On demand | Download | b4a61e20…4df026 |
| 3.1.2 | On demand | Download | 2c5fb460…0cb0a6 |
| 4.0.0 | On demand | Download | e857816e…eb1da6 |
| 4.0.1 | On demand | Download | 5a05cee7…46f256 |
| 4.1.0 | On demand | Download | 29538233…45c618 |
| 4.1.2 | On demand | Download | acb46259…f6ea1b |
| 4.1.2+1 | On demand | Download | 3134f220…ae0b8d |
| 4.1.2+2 | On demand | Download | 9431e1c6…c44706 |
| 4.1.3 | On demand | Download | 23a3c217…b19e4f |
| 4.1.4 | On demand | Download | 9a8bd1dc…db6c98 |
| 4.1.5 | On demand | Download | 8ee93c10…6bd608 |
| 4.1.6 | On demand | Download | e9b5696c…3b223f |
| 4.1.6+1 | On demand | Download | 61491dcb…e0f3d5 |
| 4.2.0 | On demand | Download | 1ee8304c…9c37bf |
| 4.2.1 | On demand | Download | b0beecbb…1f838c |
| 4.2.1+1 | On demand | Download | a354a412…c3e672 |
| 4.3.0 | On demand | Download | 16adc8aa…c575d6 |
| 5.0.0 | On demand | Download | fe779ed8…4f1613 |
| 5.0.1 | On demand | Download | 1ff903f8…dbb63d |
| 5.0.2 | On demand | Download | a148655c…99a1cd |
| 5.0.3 | On demand | Download | 616f5007…9d2e17 |
| 5.1.0 | On demand | Download | 959d8bcd…72bbb1 |
| 5.1.0+1 | On demand | Download | a77b51f9…0435b5 |
| 5.2.0 | On demand | Download | 434511d7…fe2a21 |
| 5.3.0 | On demand | Download | a32f596f…3139fa |
| 5.3.1 | On demand | Download | 7de1bf4f…4856d7 |
| 5.3.2 | On demand | Download | fd197f8c…28c67a |
| 5.4.0 | On demand | Download | 24889d51…2c6fb6 |
| 5.5.0+1 | On demand | Download | b4c4c54e…02c655 |
| 5.6.0 | On demand | Download | 931b03f7…dada90 |
| 5.7.0 | On demand | Download | 7f2f02d9…0e6b8a |
| 5.8.0 | On demand | Download | 77f0a02f…fab1f4 |
| 5.9.0 | On demand | Download | de70b42e…86215d |
| 5.10.0 | On demand | Download | e74b4ead…cd19c9 |
| 5.11.0 | On demand | Download | 669bf8b7…219521 |
| 5.12.0 | On demand | Download | c99b10af…a93b29 |
| 5.13.0 | On demand | Download | 896aad22…5649c4 |
| 5.13.0+1 | On demand | Download | 83fd55f5…8a6546 |
| 5.14.0 | On demand | Download | 2c926ab5…9f6ddc |
| 5.14.1 | On demand | Download | db00922d…01a909 |
| 5.15.0 | Cached · Upstream SHA-256 matched | Download | 2b0fff51…c29bb2 |
Dependencies
build "^4.0.0"
build_config "^1.1.2"
collection "^1.17.0"
crypto "^3.0.0"
flutter_gen_core "5.15.0"
glob "^2.0.0"
package_config "^2.1.0"
path "^1.8.0"
yaml "^3.0.0"