Spider - A small dart library to generate Assets dart code from assets folder.

Overview

Banner

Spider

A small dart library to generate Assets dart code from assets folder. It generates dart class with static const variables in it which can be used to reference the assets safely anywhere in the flutter app.

Build Tests codecov Pub Version

User Guide: Spider Docs

Breaking Changes since v1.0.0:

Instead of declaring package name separately for each group, spider now takes package key-value pair as a global configuration.

Example

Before

Widget build(BuildContext context) {
  return Image(image: AssetImage('assets/background.png'));
}

After

Widget build(BuildContext context) {
  return Image(image: AssetImage(Assets.background));
}

Generated Assets Class

class Assets {
  static const String background = 'assets/background.png';
}

This method allows no error scope for string typos. Also, it provides auto-complete in the IDE which comes very handy when you have large amount of assets.

Installation

This is package is an independent library that is not linked to your project. So there's no need to add it to your flutter project as it works as a global command line tool for all of your projects.

pub global activate spider

Run following command to see help:

spider --help

Usage

Create Configuration File

Spider provides a very easy and straight forward way to create a configuration file. Execute following command, and it will create a configuration file with default configurations in it.

spider create

Now you can modify available configurations and Spider will use those configs when generating dart code.

Use JSON config file

Though above command creates YAML format for config file, spider also supports JSON format for config file. Use this command to create JSON config file instead of YAML.

spider create --json

No matter which config format you use, JSON or YAML, spider automatically detects it and uses it for code generation.

Here's the default configuration that will be in the config file:

# Generated by Spider

# Generates unit tests to verify that the assets exists in assets directory
generate_tests: true

# Use this to remove vcs noise created by the `generated` comments in dart code
no_comments: true

# Exports all the generated file as the one library
export: true

# This allows you to import all the generated references with 1 single import!
use_part_of: true

# Location where all the generated references will be stored
package: resources

groups:
  - path: assets/images
    class_name: Images
    types: [ .png, .jpg, .jpeg, .webp, .webm, .bmp ]

Generate Code

Run following command to generate dart code:

spider build

Manual

Manual

Watch Directory

Spider can also watch given directory for changes in files and rebuild dart code automatically. Use following command to watch for changes:

spider build --watch

see help for more information:

spider build --help

Smart Watch (Experimental)

The normal --watch option watches for any kind of changes that happens in the directory. However, this can be improved my smartly watching the directory. It includes ignoring events that doesn't affect anything like file content changes. Also, it only watches allowed file types and rebuilds upon changes for those files only.

Run following command to watch directories smartly.

spider build --smart-watch

Categorizing by File Extension

By default, Spider allows any file to be referenced in the dart code. but you can change that behavior. You can specify which files you want to be referenced.

path: assets
class_name: Assets
package: res
types: [ jpg, png, jpeg, webp, bmp, gif ]

Use Prefix

You can use prefixes for names of the generated dart references. Prefixes will be attached to the formatted reference names.

path: assets
class_name: Assets
package: res
prefix: ic
Output
class Assets {
  static const String icCamera = 'assets/camera.png';
  static const String icLocation = 'assets/location.png';
}

Advanced Configuration

Spider provides supports for multiple configurations and classifications. If you want to group your assets by module, type or anything, you can do that using groups in spider.

Example

Suppose you have both vector(SVGs) and raster images in your project, and you want to me classified separately so that you can use them with separate classes. You can use groups here. Keep your vector and raster images in separate folder and specify them in the config file.

spider.yaml

groups:
  - path: assets/images
    class_name: Images
    package: res
  - path: assets/vectors
    class_name: Svgs
    package: res

Here, first item in the list indicates to group assets of assets/images folder under class named Images and the second one indicates to group assets of assets/vectors directory under class named Svgs.

So when you refer to Images class, auto-complete suggests raster images only, and you know that you can use them with AssetImage and other one with vector rendering library.

Multi-path configuration

From Spider v0.4.0, multiple paths can be specified for a single group to collect references from multiple directories and generate all the references under single dart class.

Example

groups:
  - paths:
      - assets/images
      - assets/more_images/
    class_name: Images
    package: res
    types: [ .png, .jpg, .jpeg, .webp, .webm, .bmp ]

By using paths, multiple source directories can be specified. Above example will generate references from assets/images and assets/more_images/ under a single dart class named Images.

Generating Tests

Spider v0.4.0 adds support for generating test cases for generated dart references to make sure that the asset file is present in the project. These tests can also be run on CI servers. To enable tests generation, specify generate_tests flag in spider.yaml or spider.json configuration file as shown below.

generate_tests: true

This flag will indicate spider to generate tests for all the generated dart references.

Enable Verbose Logging

Spider prefers not to overwhelm terminal with verbose logs that are redundant for most of the cases. However, those verbose logs come quite handy when it comes to debug anything. You can enable verbose logging by using --verbose option on build command.

spider build --verbose

# watching directories with verbose logs
spider build --watch --verbose

Liked spider?

Show some love and support by starring the repository.

Or You can

Buy Me A Coffee

License

Copyright © 2020 Birju Vachhani

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Ability to use generator with assets bundled with package

    Ability to use generator with assets bundled with package

    While making a package with assets bundled with it, I encountered a problem that spider cannot recognize package related path in yaml config and then cannot generate proper classes for assets following package convention paths.

    https://docs.flutter.dev/development/ui/assets-and-images#bundling-of-package-assets

    Manual output edits make it work.

    I would suggest to make a tool consider paths like 'packages/some_package_name' internally as 'lib' when assuring its existence and then just use the path entered as it is. Also I would added a flag to drop this path prefix as some potential components may allow to put the package prefix separately from path, so it won't double in for the case.

    opened by Aqluse 14
  • Feature/add subgroups

    Feature/add subgroups

    Description of the Change

    Add a subgroup system to allow the user to create one class that includes different asset groups with unique file prefixes, paths, and extensions.

    Benefits

    Now you can create more flexible aseet-classes by providing different paths, file extensions and prefixes into the same class:

    Config:

      generate_tests: true
      no_comments: true
      export: true
      use_part_of: true
      use_references_list: false
      package: resources
      groups:
        - class_name: Assets
          subgroups:
            - path: assets/images
              types: [ jpg ]
              prefix: jpg
            - paths: 
              - assets/images
              - assets/imgs
              types: [ png ]
              prefix: png
    

    Result:

    part of 'resources.dart';
    
    class Assets{
      Assets ._();
      
      static const String jpgTest2 = 'assets/images/test2.jpg';
      static const String pngTest1 = 'assets/images/test1.png';
      static const String pngTest3 = 'assets/imgs/test3.png';
    }
    

    Possible Drawbacks

    • deeper (complicated) structure of config file.
    • not the best name ('subgroups').

    Verification Process

    What process did you follow to verify that your change has the desired effects?

    • test adaptation.
    • validateConfigs adaptation.

    Applicable Issues

    #49

    feature 
    opened by Sanlovty 13
  • spider build command  error

    spider build command error

    version 0.3.0

    An error occurred when I executed spider build command with the following information:

    ❯ spider build        
    Unhandled exception:
    type '_Directory' is not a subtype of type 'File'
    #0      DartClassGenerator.createFileMap.<anonymous closure> (package:spider/src/dart_class_generator.dart:77:64)
    #1      WhereIterator.moveNext (dart:_internal/iterable.dart:442:11)
    #2      new List.from (dart:core-patch/array_patch.dart:47:19)
    #3      Iterable.toList (dart:core/iterable.dart:400:5)
    #4      DartClassGenerator.createFileMap (package:spider/src/dart_class_generator.dart:77:71)
    #5      DartClassGenerator.process (package:spider/src/dart_class_generator.dart:46:22)
    #6      DartClassGenerator.generate (package:spider/src/dart_class_generator.dart:42:5)
    #7      Spider._generateFor (package:spider/spider.dart:70:15)
    #8      Spider.build.<anonymous closure> (package:spider/spider.dart:49:21)
    #9      ListMixin.forEach (dart:collection/list.dart:69:13)
    #10     Spider.build (package:spider/spider.dart:48:25)
    #11     processBuildCommand (file:///Users/madroid/.pub-cache/hosted/pub.dartlang.org/spider-0.3.0/bin/main.dart:150:12)
    #12     main (file:///Users/madroid/.pub-cache/hosted/pub.dartlang.org/spider-0.3.0/bin/main.dart:47:9)
    #13     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:305:32)
    #14     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12)
    
    
    bug 
    opened by madroidmaq 10
  • Feature/add subgroups support

    Feature/add subgroups support

    Subgroups support

    :interrobang: Questions

    Is your feature request related to a problem? Please describe. No

    Describe the solution you'd like Described in pull-request.

    Describe alternatives you've considered We can talk about how we can best deal with that.

    Additional context nothing.

    :scroll: Description

    I faced the problem of impossibility of adding different prefixes in conjunction with paths into the same class. I decided to propose a solution to this "problem" by changing the structure of config.

    :label: Config examples

    JSON

    {
      "generate_tests":true,
      "no_comments":true,
      "export":true,
      "use_part_of":true,
      "use_references_list": false,
      "package":"resources",
      "groups": [
          {
            "class_name": "Assets",
            "subgroups": [
              {
                "path": "assets/images",
                "types": [ "jpg" ],
                "prefix": "jpg"
              },
              {
                "path": "assets/images",
                "types": [ "png" ],
                "prefix": "png"
              }
            ]
          }
        ]
    }
    

    YAML

      generate_tests: true
      no_comments: true
      export: true
      use_part_of: true
      use_references_list: false
      package: resources
      groups:
        - class_name: Assets
          subgroups:
            - path: assets/images
              types: [ jpg ]
              prefix: jpg
            - path: assets/images
              types: [ png ]
              prefix: png
    

    :gear: Generated files

    Provided that in assets/images were 3 files: (test2.jpg, test1.png, test3.png)

    part of 'resources.dart';
    
    class Assets{
      Assets ._();
      
      static const String jpgTest2 = 'assets/images/test2.jpg';
      static const String pngTest1 = 'assets/images/test1.png';
      static const String pngTest3 = 'assets/images/test3.png';
    }
    
    feature 
    opened by Sanlovty 8
  • Add ability to concatenate path to the same class_name

    Add ability to concatenate path to the same class_name

    Hi,

    A nice feature will be to add several path to the same class, giving the prefix more meaning. Please find an exemple below :

    groups:
      - path: assets/images
        class_name: AssetsImages
        package: assets
        types: [.png, .jpg, .jpeg, .webp, .webm, .bmp]
      - path: assets/onboarding
        class_name: AssetsImages
        package: assets
        prefix:onboarding
        types: [.png, .jpg, .jpeg, .webp, .webm, .bmp]
    

    Regards

    enhancement 
    opened by bounty1342 7
  • Fix/Package related asset paths are legit now

    Fix/Package related asset paths are legit now

    Description of the Change

    Fulfills issue given https://github.com/BirjuVachhani/spider/issues/64 more precisely that kind of paths https://docs.flutter.dev/development/ui/assets-and-images#bundling-of-package-assets

    Alternate Designs

    No alternatives considered.

    Why Should This Be In Core?

    As this kind of asset paths are legit in Dart ecosystem.

    Benefits

    Ability to use the generator with package assets.

    Possible Drawbacks

    No imminent drawbacks are expected.

    Verification Process

    • How did you verify that all new functionality works as expected?
    • How did you verify that all changed functionality works as expected?

    I have run the generator for package and direct asset paths both. Output paths are whole being generated as expected.

    • How did you verify that the change has not introduced any regressions?

    Just verified it by running generator for direct asset paths might be impacted by following changes. No other checks have been executed.

    Applicable Issues

    https://github.com/BirjuVachhani/spider/issues/64

    opened by Aqluse 6
  •  In multi-resolution scenes, the path generated by the image is wrong

    In multi-resolution scenes, the path generated by the image is wrong

    I am coming again :)

    In multi-resolution scenes, Like below:

    assets
    ├── background.jpg    //1.0x
    ├── 2.0x
    │   └── background.jpg  //2.0x
    └── 3.0x
        └── background.jpg  //3.0x
    
    

    Only a 1.0x path should be generated, like

    static const String background = 'assets/background.png';
    

    but I have something wrong. Here is some of our environmental information:

    spider.ymal

    groups:
      - path: assets/images
        class_name: Images
        package: res
      - path: assets/images/2.0x
        class_name: Images
        package: res
      - path: assets/images/3.0x
        class_name: Images
        package: res
    
    

    auto gen code

    class Images {
      static const String dsStore = 'assets/images/3.0x/.DS_Store';
      static const String deviceWatch = 'assets/images/3.0x/device_watch.webp';
      static const String deviceBindError =
          'assets/images/3.0x/device_bind_error.webp';
      static const String deviceBindSuccess =
          'assets/images/3.0x/device_bind_success.webp';
      static const String deviceBindKnock =
          'assets/images/3.0x/device_bind_knock.webp';
    }
    

    terminal log

    ❯ spider build
    [INFO] Processing path: assets/images
    [File: 'assets/images/.DS_Store', Directory: 'assets/images/2.0x', File: 'assets/images/norex_logo_positiv.svg', Directory: 'assets/images/3.0x', File: 'assets/images/pair_device.svg']
    Valid: File: 'assets/images/.DS_Store'
    Valid: Directory: 'assets/images/2.0x'
    Valid: File: 'assets/images/norex_logo_positiv.svg'
    Valid: Directory: 'assets/images/3.0x'
    Valid: File: 'assets/images/pair_device.svg'
    [SUCCESS] Processed items for class Images: 3
    [INFO] Processing path: assets/images/2.0x
    [File: 'assets/images/2.0x/.DS_Store', File: 'assets/images/2.0x/device_watch.webp', File: 'assets/images/2.0x/device_bind_error.webp', File: 'assets/images/2.0x/device_bind_success.webp', File: 'assets/images/2.0x/device_bind_knock.webp']
    Valid: File: 'assets/images/2.0x/.DS_Store'
    Valid: File: 'assets/images/2.0x/device_watch.webp'
    Valid: File: 'assets/images/2.0x/device_bind_error.webp'
    Valid: File: 'assets/images/2.0x/device_bind_success.webp'
    Valid: File: 'assets/images/2.0x/device_bind_knock.webp'
    [SUCCESS] Processed items for class Images: 5
    [INFO] Processing path: assets/images/3.0x
    [File: 'assets/images/3.0x/.DS_Store', File: 'assets/images/3.0x/device_watch.webp', File: 'assets/images/3.0x/device_bind_error.webp', File: 'assets/images/3.0x/device_bind_success.webp', File: 'assets/images/3.0x/device_bind_knock.webp']
    Valid: File: 'assets/images/3.0x/.DS_Store'
    Valid: File: 'assets/images/3.0x/device_watch.webp'
    Valid: File: 'assets/images/3.0x/device_bind_error.webp'
    Valid: File: 'assets/images/3.0x/device_bind_success.webp'
    Valid: File: 'assets/images/3.0x/device_bind_knock.webp'
    [SUCCESS] Processed items for class Images: 5
    
    

    Is the configuration information in our file wrong, or am I missing something?

    by the way, I think .DS_Store files should not be generated.

    opened by madroidmaq 6
  • Installation help

    Installation help

    Hi there, I can't seem to use this library.

    1. I've added spider: ^0.3.6 to my pubspec.yaml and hit Packages get.
    2. Open Terminal and running pub global activate spider command with the following error:
    bash: pub: command not found
    
    1. Tried also spider --help and got:
    bash: spider: command not found
    
    question 
    opened by CripyIce 5
  • [Feature] Create master class with all the other one as field

    [Feature] Create master class with all the other one as field

    Hey,

    I think it would be easier to always import the same base class, with all the generated class as field> Then we can use Class.subclass.img to retrieve the image.

    It would be even better, if this could match the directory :

    • assets
      • images
        • root
          • logo_small.png
          • logo_full.png
        • onboarding
          • logo_small.png
          • logo_full.png
        • login
          • bar
            • bar.png
            • icon.png
          • button
            • icon.png
            • button.png
      • svg
        • 1 x
        • 2x

    Then we can access Assets.images.login.bar.icon pretty easily.

    1. Only one import to figure out
    2. Easier to find the right image, without looking at the assets folder

    Let me know what you thinks about it. Regards

    enhancement 
    opened by bounty1342 5
  • Feature/ignore-rules

    Feature/ignore-rules

    Description of the Change

    Added ignored_rules property in global scope.

    Benefits

    Now u are able to set your custom set of rules that must be ignored in generated asset-classes. Linter no longer warns.

    Possible Drawbacks

    Don't exist

    Verification Process

    Added and passed tests. Linter no longer warns.

    Applicable Issues

    Closes #55

    opened by Sanlovty 4
  • Sort generated file maps by file basenames

    Sort generated file maps by file basenames

    Description of the Change

    This change adds basic sorting to the contents of generated file maps (which appear in assets libraries and tests). This is nice to have to ensure each time Spider builds, it creates lists of files in the same order every time.

    I need this because in my project we would like to run spider build in CI to make sure the developer has regenerated all assets. We use git diff to make sure the assets are synced correctly, and without sorting we get a lot of false errors.

    Alternate Designs

    This is the simplest change I could think of.

    Why Should This Be In Core?

    It's a small change which adds consistency and predictability for users of the package.

    Benefits

    Consistency, predictability, ability to use reliably within CI pipelines.

    Possible Drawbacks

    No long-term drawbacks that I can think of. Users moving to a version including this change might see a bit more noise in git diff the next time they run the spider build command.

    Verification Process

    • Ran spider build following the change
    • Verified all assets were still generated
    • Verified the assets were listed alphabetically as expected

    Applicable Issues

    N/A - happy to create one if needed.

    Thanks for the useful project!

    opened by WSydnA 4
  • Json to translation strings support

    Json to translation strings support

    Is your feature request related to a problem? Please describe. The ability to generate icon asset paths is fabulous but it would be great to also generate app_string.dart file from json For example:

    assets/translations/*

    en.json
    {
      "appTitle": "Title",
      "continueButton": "Continue"
    }
    
    ka.json
    {
      "appTitle": "სათაური",
      "back": "უკან"
    }
    

    Output:

    class Strings {
      const Strings._();
    
      static const appTitle = 'appTitle';
      static const continueButton = 'continueButton';
      static const back = 'back';
    
    }
    

    This is helpful if you are using json based localizations, checkout the article for reference.

    In short, you have translation files, en.json, ka.json, ... and you are accessing the translated string by the key, and with this request keys will be extracted as constants.

    Describe the solution you'd like Scan the specific directory assets/translations/ merge all the json keys and export them as a class containing static const instances of retrieved keys.

    Describe alternatives you've considered I'm tried adding the feature to flutter_gen package but the author is holding back.

    opened by Tkko 2
  • [feature_request] A way to find all unused assets

    [feature_request] A way to find all unused assets

    I wish there was a way to find out if an asset is not being used anywhere in the app. If it's not being used, it makes sense for me to manually delete it and shrink the app's size.

    Is this possible to be implemented? I am imagining we should somehow rely on the compiler warning that a particular generated field for an asset is not being used anywhere inside the app. What do you think?

    opened by kaciula 3
  • Feature/group-packages

    Feature/group-packages

    Description of the Change

    Groups now have package property. Global scope package property is always root for the group packages.

    1) if we have case:

    use_part_of: true
    package: res
    
    groups:
      - class_name: example
    

    then we will have

     ./lib/res/example.dart
     ./lib/res/resources.dart
    

    2) If we have case:

    use_part_of: true
    package: res
    
    groups:
      - class_name: example
        package: exampleFolder
    

    then we will have

     ./lib/res/exampleFolder/example.dart
     ./lib/res/resources.dart
    

    3) If we have case:

    use_part_of: true
    # package: res
    groups:
      - class_name: example
        package: exampleFolder
    

    then we will have ( if package in globlal scope is empty, than group packages are the subfolders of Constants.DEFAULT_PACKAGE)

     ./lib/resources/exampleFolder/example.dart
     ./lib/resources/resources.dart
    

    Alternate Designs

    It's possible to do fully custom directories for both classes and resource files but i don't think it's needed

    Benefits

    Now user is able to make some type of structure (passing different groups into different folders)

    Possible Drawbacks

    Can't find

    Verification Process

    dart test, hand tests

    Applicable Issues

    Closes #57

    opened by Sanlovty 3
  • Refactor/refactor configValidate

    Refactor/refactor configValidate

    Is your feature request related to a problem? Please describe.

    In the current version, the spider does not check the config file very well. Many fields are simply not checked.

    Describe the solution you'd like

    Rewrite configValidate method (add missing checks)

    opened by Sanlovty 0
  • Feature/add custom directory for generated tests

    Feature/add custom directory for generated tests

    Is your feature request related to a problem? Please describe.

    Many projects have some type of structure inside the test folder. The spider generates tests for all asset classes in the test/ folder. It is not convenient and clean from the structure side.

    Describe the solution you'd like

    Add test_package property to global scope.

    Describe alternatives you've considered

    Maybe also for group scope, but i don't think it's needed.

    opened by Sanlovty 0
  • Feature/package-property-for-groups

    Feature/package-property-for-groups

    Is your feature request related to a problem? Please describe.

    In current version it's only available to add package property in global scope ( to all the assets groups). It would be much more convenient if the user can choose the directory for each group.

    Describe the solution you'd like

    Add a package property to AssetGroup. If global package above is exists , than we use global package, otherwise we use group scope.

    opened by Sanlovty 0
Releases(4.2.0)
Owner
Birju Vachhani
Sr. Software Engineer @CodelesslyInc | Android | Flutter | Kotlin | Dart | Ruby
Birju Vachhani
Flutter ui boilerplate is easiest way to create new flutter project with clean code and well organized file folder.

Flutter UI Boilerplate "Sharing for fun" Flutter ui boilerplate is easiest way to create new flutter project with clean code and well organized file f

Dimas Ibnu Malik 122 Dec 1, 2022
This example uses a ScrollView, JSON Rest API, Navigation, Alert Pop Up, Progress Indicator, Globals, Images in a shared asset folder, and 100% Shared Code

This example uses a ScrollView, JSON Rest API, Navigation, Alert Pop Up, Progress Indicator, Globals, Images in a shared asset folder, and 100% Shared Code. Now with the ability to login with FaceID, TouchID, and Fingerprint Reader on Android.

Rody Davis 672 Jan 6, 2023
Given a JSON string, this library will generate all the necessary Dart classes to parse and generate JSON.

JSON to Dart Given a JSON string, this library will generate all the necessary Dart classes to parse and generate JSON. This library is designed to ge

Javier Lecuona 1.2k Dec 25, 2022
A Flutter plugin that provides assets abstraction management APIs without UI integration, you can get assets (image/video/audio) on Android, iOS and macOS.

photo_manager Photo/Assets management APIs for Flutter without UI integration, you can get assets (image/video/audio) from Android, iOS and macOS. 提供相

FlutterCandies 526 Jan 4, 2023
SIMPLE TODO APP WITH FEATURE WISE FOLDER STRUCTURE

SIMPLE TODO APP WITH FEATURE WISE FOLDER STRUCTURE

Khadga shrestha 0 May 13, 2022
A flutter plugin about qr code or bar code scan , it can scan from file、url、memory and camera qr code or bar code .Welcome to feedback your issue.

r_scan A flutter plugin about qr code or bar code scan , it can scan from file、url、memory and camera qr code or bar code .Welcome to feedback your iss

PengHui Li 112 Nov 11, 2022
AdventOfCode 2022 in Dart focusing on code golf, making the solutions as small as possible

Advent of Code 2022 in Dart (Code Golf) This is my attempt at solving the Advent of Code 2022 puzzles in the shortest possible code using Dart 2.18. Y

Pascal Welsch 5 Dec 15, 2022
The Swift code generator for your assets, storyboards, Localizable.strings, … — Get rid of all String-based APIs!

SwiftGen SwiftGen is a tool to automatically generate Swift code for resources of your projects (like images, localised strings, etc), to make them ty

null 8.3k Dec 31, 2022
An app for small and medium organizations (SME) manager, with NFC-tag, e-tag and QR code features supported.

BK LAB Manager - an app for group management 1. Getting Started An app for small and medium organizations (SME) manager, with NFC-tag, e-tag and QR co

Andrew Ng 9 Dec 11, 2022
Flutter library to open JSON from assets.

jsonloader JSON Loader Package to read JSON from asset. Features Load and read JSON from assets. Getting Started In the pubspec.yaml of your flutter p

Yudi Setiawan 4 Nov 3, 2021
This is a command-line app written on dart language for flutter applications that will help you to generate some boilerplate code

dart-generator Manual installation: 1- generate a platform executable from code dart compile exe main.dart -o generator this will generate a new gene

One Studio 11 Oct 26, 2022
A small library support load infinite for ListView - GridView on Flutter.

Paging A Flutter package that supports pagination(load infinite) for ListView, GridView Demo DataSource PageKeyedDataSource To create a PagingListView

Đặng Ngọc Đức 32 Dec 4, 2022
This is a mason brick you can use to generate code that get's you started right up with a flutter project

flutter_brick This is a mason brick you can use to generate code that gets you started right up with a flutter project A flutter brick created with th

Bruce Omukoko 3 Sep 16, 2022
A Flutter example about simple authentication with Auth0 and generate random QR code.

ryougoku This is Flutter example about simple authentication with Auth0 and generate random QR code. Environment setup Use need to create a .env.devel

null 4 Sep 24, 2022
WIP: generate easy localization key code

Generates translation key code for the easy localization package. Support for json and yaml formats.You can see examples in the assets/ folder. Gettin

null 3 Oct 24, 2022
barcode generate library for Flutter

Barcode Flutter is a Flutter library for simple and fast Barcode rendering via custom painter Update Notes 1.1.2 Add Codabar support Fix wrong pattern

Chenge 58 Mar 26, 2022
DiceBear API wrapper. DiceBear is an avatar library for designers and developers. Generate random avatar profile pictures!

dice_bear Flutter Package DiceBear API wrapper. DiceBear is an avatar library for designers and developers. Generate random avatar profile pictures! C

Zaif Senpai 8 Oct 31, 2022
This project include all the assets I used in this tutorial

clothes_app_starter A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you star

Ruize Nie 11 Jun 29, 2022
A Video and Audio player that can play from local assets, local files and network URLs with the powerful controls

Video/Audio Player in Flutter with Powerful controls How can we play videos in Flutter? There is a library directly from the Flutter team simply calle

Harsh Mistry 12 Jan 31, 2022