lazy_asset_generator 1.4.1 copy "lazy_asset_generator: ^1.4.1" to clipboard
lazy_asset_generator: ^1.4.1 copied to clipboard

A Flutter code generator that creates strongly-typed asset access classes based on your project’s asset folders. It scans the directories defined in your pubspec and automatically builds typed helpers [...]

🖼 Lazy Asset Generator #

[![pub package](httpsPlatform="Dart | Flutter" https://img.shields.io/pub/v/lazy_asset_generator.svg)](https://pub.dev/packages/lazy_asset_generator) License: MIT Maintained with Antigravity

A Flutter & Dart code generator that automatically creates strongly-typed asset access classes based on your project's asset directories.

No more typing error-prone string paths like "assets/icons/home_icon_24px.png" manually — this generator produces a clean, organized, type-safe API with instant IDE auto-completion.

🚀 Maintained with Google Antigravity


✨ Key Features #

  • 📁 Universal Asset Support: Supports images (.png, .jpg, .webp), vectors (.svg), data (.json, .yaml), fonts (.ttf, .otf), audio (.mp3, .wav), animations (.rive, .lottie), documents (.pdf), and more.
  • Auto-Sanitization: Converts filenames into valid Dart identifiers (theme.dark.json -> themeDark, 24_hours.svg -> _24Hours, default.json -> defaultAsset).
  • 🛡️ Hidden File Filtering: Automatically ignores OS system files like .DS_Store or .gitkeep.
  • 🚀 Zero Reflection (dart:mirrors): Fully compatible with Flutter mobile, web, and desktop builds.
  • 💡 IDE Auto-Completion: Get autocomplete for all assets across single or multiple folders.

📂 Supported Asset Formats #

Category Extensions
Images & Vectors .png, .jpg, .jpeg, .webp, .gif, .svg
Data & Configs .json, .yaml, .yml, .xml
Fonts & Typography .ttf, .otf
Audio & Video .mp3, .wav, .aac, .mp4
Animations & Vectors .rive, .lottie, .tgs
Documents & Other .pdf, .txt, and any custom format

📦 Installation #

Add lazy_asset_generator and build_runner to your pubspec.yaml:

dependencies:
  lazy_asset_generator: ^1.4.1

dev_dependencies:
  build_runner: ^2.4.13

Run flutter pub get or dart pub get.


🧩 Quick Start #

1. Declare assets in your pubspec.yaml #

flutter:
  assets:
    - assets/Icons/
    - assets/images/
    - assets/json/

2. Annotate your asset manager class #

Create a file lib/asset_manager.dart:

import 'package:lazy_asset_generator/lazy_asset_generator.dart';

part 'asset_manager.g.dart';

@GenerateAssets(folders: ["Icons", "images", "json"])
class AssetManager extends _AssetManagerContext {}

3. Run the generator #

Execute build_runner in your terminal:

dart run build_runner build

Or enable watch mode for continuous generation:

dart run build_runner watch

4. Use your strongly-typed assets anywhere! #

import 'package:flutter/material.dart';
import 'asset_manager.dart';

Widget buildUI() {
  final assets = AssetManager();

  return Column(
    children: [
      Image.asset(assets.icons.home),
      Image.asset(assets.images.bannerHeader),
      // Use json, audio, fonts, lottie, etc.
      Text(assets.json.configDark),
    ],
  );
}

💡 Before & After #

❌ Before (Unsafe & Typo-Prone) #

Image.asset('assets/Icons/Home_icon.png'); // Typo in string? Runtime crash!

✅ After (Type-Safe & Auto-Completed) #

Image.asset(AssetManager().icons.homeIcon); // Checked at compile time!

🤝 Contributing #

Contributions are welcome! Feel free to submit pull requests or open issues on the GitHub Repository.


📄 License #

This project is licensed under the MIT License — feel free to use it in personal and commercial projects.

1
likes
140
points
110
downloads

Documentation

API reference

Publisher

verified publisheryannvanneth.dev

Weekly Downloads

A Flutter code generator that creates strongly-typed asset access classes based on your project’s asset folders. It scans the directories defined in your pubspec and automatically builds typed helpers for cleaner and safer asset usage.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

build, glob, path, source_gen

More

Packages that depend on lazy_asset_generator