A Very Good Command Line Interface for Dart created by Very Good Ventures ๐Ÿฆ„

Last update: Aug 11, 2022

Very Good CLI

Very Good Ventures

Developed with ๐Ÿ’™ by Very Good Ventures ๐Ÿฆ„

ci coverage pub package style: very good analysis License: MIT


A Very Good Command Line Interface for Dart.

Installing

$ dart pub global activate very_good_cli

Commands

$ very_good create

Create a new very good flutter starter application in seconds based on Very Good Core.

Very Good Create

What's Included? ๐Ÿ“ฆ

Out of the box, Very Good Core includes:

โœ…   Cross Platform Support - Built-in support for iOS, Android, and Web (Desktop coming soon!)

โœ…   Build Flavors - Multiple flavor support for development, staging, and production

โœ…   Internationalization Support - Internationalization support using synthetic code generation to streamline the development process

โœ…   Sound Null-Safety - No more null-dereference exceptions at runtime. Develop with a sound, static type system.

โœ…   Bloc - Integrated bloc architecture for scalable, testable code which offers a clear separation between business logic and presentation

โœ…   Testing - Unit and Widget Tests with 100% line coverage (Integration Tests coming soon!)

โœ…   Logging - Built-in, extensible logging to capture uncaught Flutter and Dart Exceptions

โœ…   Very Good Analysis - Strict Lint Rules which are used at Very Good Ventures

โœ…   Continuous Integration - Lint, format, test, and enforce code coverage using GitHub Actions

* Learn more at Flutter Starter App: Very Good Core & CLI


$ very_good --help

See the complete list of commands and usage information.

๐Ÿฆ„ A Very Good Command Line Interface

Usage: very_good <command> [arguments]

Global options:
-h, --help           Print this usage information.
    --version        Print the current version.
    --analytics      Toggle anonymous usage statistics.

          [false]    Disable anonymous usage statistics
          [true]     Enable anonymous usage statistics

Available commands:
  create   very_good create <output directory>
           Creates a new very good flutter project in the specified directory.

Run "very_good help <command>" for more information about a command.

GitHub

https://github.com/VeryGoodOpenSource/very_good_cli
Comments
  • 1. very_good command not work

    Successfully install

    PS C:\Users\lkrja\AndroidStudioProjects> dart pub global activate very_good_cli
    Package very_good_cli is currently active at version 0.3.0.
    Resolving dependencies...
    The package very_good_cli is already activated at newest available version.
    To recompile executables, first run `global decativate very_good_cli`.
    Installed executable very_good.
    Warning: Pub installs executables into C:\Users\lkrja\AppData\Local\Pub\Cache\bin, which is not on your path.
    You can fix that by adding that directory to your system's "Path" environment variable.
    A web search for "configure windows path" will show you how.
    Activated very_good_cli 0.3.0.
    

    Show error

    PS C:\Users\lkrja\AndroidStudioProjects> very_good
    very_good : The term 'very_good' is not recognized as the name of a cmdlet, function, script file, or operable
    program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
    At line:1 char:1
    + very_good
    + ~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (very_good:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException
    
    PS C:\Users\lkrja\AndroidStudioProjects>
    

    Flutter doctor

    Doctor summary (to see all details, run flutter doctor -v):
    [โœ“] Flutter (Channel stable, 2.2.2, on Microsoft Windows [Version 10.0.22000.71], locale en-IN)
    [โœ“] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    [โœ“] Chrome - develop for the web
    [โœ“] Visual Studio - develop for Windows (Visual Studio Community 2019 16.9.3)
    [โœ“] Android Studio (version 4.1.0)
    [โœ“] VS Code (version 1.58.2)
    [โœ“] Connected device (3 available)
    
    โ€ข No issues found!
    
    Reviewed by lkrjangid1 at 2021-07-24 16:20
  • 2. feat: Add Generator Icons in Android, IOS, and Web

    Description

    very_good_cli is very helpful for me when creating new Project Apps. But when you want to change the icon it is very complicated, unlike https://pub.dev/packages/flutter_launcher_icons.

    Expected Behavior

    Create a tool to generate automatic icons similar to https://pub.dev/packages/flutter_launcher_icons.

    Maybe you can customize it according to this very_good_cli

    Reviewed by wisnuwiry at 2021-04-19 14:48
  • 3. very_good command fail to run

    I'm on Ubuntu 20.04.

    When I run very_good from terminal I get: /home/michal/.pub-cache/bin/very_good: 8: dart: not found

    But if I run: dart "/home/michal/.pub-cache/global_packages/very_good_cli/bin/very_good.dart-2.13.0-30.0.dev.snapshot" I get proper output about using A Very Good Command Line Interface

    Not sure what I'm doing wrong.

    Reviewed by mivoligo at 2021-02-22 23:02
  • 4. fix: Trying to update from 0.7.6 to 0.7.9 throw a kernel binary error

    Description Before the new 0.7.9 version I was updating the very_good_cli using dart pub global activate very_good_cli. But now when I try to run that command I see the dependencies list but the cli keeps in 0.7.6.

    Here is the detail that I see in the terminal:

    + archive 3.3.0
    + args 2.3.1
    + async 2.9.0
    + checked_yaml 2.0.
    + collection 1.16.0
    + crypto 3.0.2
    + file 6.1.2
    + glob 2.1.0
    + http 0.13.4
    + http_parser 4.0.1
    + json_annotation 4.5.0
    + lcov_parser 0.1.2
    + mason 0.1.0-dev.17 (0.1.0-dev.26 available)
    + mason_logger 0.1.0-dev.8 (0.1.0-dev.13 available)
    + meta 1.8.0
    + mustache_template 2.0.0
    + path 1.8.2
    + platform 3.1.0
    + process 4.2.4
    + pub_semver 2.1.1
    + pub_updater 0.2.2
    + pubspec_parse 1.2.0
    + recase 4.0.0
    + source_span 1.9.0
    + stack_trace 1.10.0
    + string_scanner 1.1.1
    + term_glyph 1.2.1
    + typed_data 1.3.1
    + universal_io 2.0.4
    + usage 4.1.0
    + very_good_analysis 2.4.0 (3.0.1 available)
    + very_good_cli 0.7.6 (0.7.9 available)
    + very_good_test_runner 0.1.2
    + yaml 3.1.1
    Building package executables... (1.0s)
    Built very_good_cli:very_good.
    Installed executable very_good.
    Activated very_good_cli 0.7.6.
    

    If I try to run flutter pub global activate very_good_cli as an alternative the process runs successfully.

    Detail here:

    + archive 3.3.0
    + args 2.3.1
    + async 2.9.0
    + checked_yaml 2.0.1
    + collection 1.16.0
    + crypto 3.0.2
    + file 6.1.2
    + glob 2.1.0
    + http 0.13.4
    + http_parser 4.0.1
    + json_annotation 4.5.0
    + lcov_parser 0.1.2
    + mason 0.1.0-dev.26
    + mason_logger 0.1.0-dev.13
    + meta 1.8.0
    + mustache_template 2.0.0
    + path 1.8.2
    + platform 3.1.0
    + process 4.2.4
    + pub_semver 2.1.1
    + pub_updater 0.2.2
    + pubspec_parse 1.2.0
    + recase 4.0.0
    + source_span 1.9.0
    + stack_trace 1.10.0
    + string_scanner 1.1.1
    + term_glyph 1.2.1
    + typed_data 1.3.1
    + universal_io 2.0.4
    + usage 4.1.0
    + very_good_analysis 3.0.1
    + very_good_cli 0.7.9
    + very_good_test_runner 0.1.2
    + yaml 3.1.1
    Building package executables...
    Built very_good_cli:very_good.
    Installed executable very_good.
    Activated very_good_cli 0.7.9.
    

    Then when I try to run for example very_good --help I see this error:

    Can't load Kernel binary: Invalid kernel binary format version. very_good_cli as globally activated doesn't support Dart 2.16.1, try: dart pub global activate very_good_cli

    Steps To Reproduce

    1. You need to be at version 0.7.6 (always updating using dart pub global activate very_good_cli)
    2. When trying to update to 0.7.9 the cli keeps in 0.7.6 version.
    3. Run flutter pub global activate very_good_cli. (This will set the version to 0.7.9)
    4. Run very_good --help
    Reviewed by gonzalogauto at 2022-06-30 19:14
  • 5. fix: Collect usage statistic showing twice

    Description When running the very_good_cli for the first time it asks if it can collect usage statistics. If you say yes then it will output the exact message once more.

    Steps To Reproduce

    1. Install the very_good_cli from clean (tested it with v0.6.0)
    2. Run a very_good create command
    3. When asked if it can collect data say yes.
    4. It outputs the same message again and continues.

    Expected Behavior That it will only show the message asking to collect data once, before answering and not again after answering the question.

    Screenshots image

    Additional Context I did run it on dart version 2.15.1 by accident but I was able to reproduce it after updating and clean installing the tool.

    • Terminal: bash v5.1.8
    • OS: pop-os 21.10
    Reviewed by wolfenrain at 2022-03-21 19:21
  • 6. feat: add support for `test` command

    As a developer, I want to be able to easily run tests and collect coverage for my projects so that I can identify failing tests and gaps in code coverage.

    # run tests for current project (flutter/dart)
    very_good test
    
    # run tests recursively
    very_good test --recursive
    
    # run tests for specific project
    very_good test ./path/to/my/project
    
    # run tests with coverage generates coverage report at coverage/lcov.info
    very_good test --coverage
    
    # run tests with coverage generates coverage report at custom/path/lcov.info
    very_good test --coverage --coverage-path ./custom/path
    
    # run tests with coverage and exclude files from coverage
    very_good test --coverage --coverage-exclude "*.g.dart"
    
    # run tests with coverage and exit(1) if coverage is below min coverage threshold
    very_good test --coverage --min-coverage 100
    
    # run tests with coverage and output coverage results as html report
    very_good test --coverage --report html
    
    # run tests with coverage and output coverage results as json output
    very_good test --coverage --report json
    
    # run tests without running "pub get" first
    very_good test --no-pub
    
    # run tests in a random order
    very_good test --test-randomize-ordering-seed random
    
    
    Reviewed by felangel at 2022-02-08 18:55
  • 7. fix: Could not resolve all artifacts for configuration ':app:productionReleaseRuntimeClasspath'

    Description Hello fellow devs, thank you for putting this tool together. It helped me get started on my current client project. However I'm getting the following error when building this project:

    Note: /Users/joppong/tools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage-4.0.0/android/src/main/java/com/it_nomads/fluttersecurestorage/FlutterSecureStoragePlugin.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.                    
    Note: /Users/joppong/tools/flutter/.pub-cache/hosted/pub.dartlang.org/local_auth-1.1.0/android/src/main/java/io/flutter/plugins/localauth/LocalAuthPlugin.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.                    
                                                                            
    FAILURE: Build failed with an exception.                                
                                                                            
    * What went wrong:                                                      
    Execution failed for task ':app:lintVitalDevelopmentRelease'.           
    > Could not resolve all artifacts for configuration ':app:productionReleaseRuntimeClasspath'.
       > Failed to transform libs.jar to match attributes {artifactType=processed-jar, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
          > Execution failed for JetifyTransform: /Users/joppong/Projects/clients/sumgroup_app/packages/sumgroup_flutter/build/app/intermediates/flutter/productionRelease/libs.jar.
             > Transform's input file does not exist: /Users/joppong/Projects/clients/sumgroup_app/packages/sumgroup_flutter/build/app/intermediates/flutter/productionRelease/libs.jar. (See https://issuetracker.google.com/issues/158753935)
                                                                            
    * Try:                                                                  
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
                                                                            
    * Get more help at https://help.gradle.org                              
                                                                            
    BUILD FAILED in 34s                                                     
    Running Gradle task 'assembleRelease'...                                
    Running Gradle task 'assembleRelease'... Done                      35.1s
    Gradle task assembleRelease failed with exit code 1
    

    Steps To Reproduce

    1. Run the command flutter build apk --target lib/main_production.dart
    2. See error

    Expected Behavior The build should be successful.

    Additional Context I noticed the warnings with flutter_secure_storage and local_auth so I went ahead and bootstrapped a flutter create . project with both packages. Running the flutter build command still displays the warning but then the build passes.

    Reviewed by graphicbeacon at 2021-03-07 17:48
  • 8. fix:

    This updating to very good cli, I have a problem to archive my iOS App.

    It can't find the modules in the "GeneratedPluginRegistrant.m"

    What am I missing?

    Bildschirmfoto 2022-02-21 um 17 15 02

    Reviewed by niklasbartsch at 2022-02-21 16:15
  • 9. feat: Make `very_good packages get` recursive by default

    I think running very_good packages get should be recursive by default, since we could just run flutter pub get or dart pub get if we wanted to get the packages for the project in the current directory.

    Even shortening the command would be welcome, if possible: very_good get

    Reviewed by definitelyokay at 2022-01-11 17:37
  • 10. fix: Flags for desktop support are not working.

    Description Flags for desktop support are not working.

    Steps To Reproduce

    > very_good --version                                                                                                                                                         
    0.4.11
    

    I ran

    very_good create --project-name=very_good_test --org-name=co.test --desc "Working to figure out everything involved in the very_good template" --android true --ios true --web true --macos true very_good_test
    

    and Android, iOS, and Web were created but Macos, Windows and Linux were not. I had to subsequently run

    flutter config --enable-macos-desktop
    

    to get macos. Similarly,

    very_good create --project-name=very_good_test --org-name=co.test --desc "Working to figure out everything involved in the very_good template" very_good_test2
    

    did not give desktop support either.

    Expected Behavior All of the platforms should be created by default.

    Reviewed by cvanvlack at 2021-12-15 17:08
  • 11. fix: Unable to create a project

    Description Trying to create a new project and it throws an error of failure as shown below in the screenshot section:

    Steps To Reproduce Running the script on the terminal to create a project.

    Current Behavior Error while running the command to create a project: very_good create weather_app --org-name "com.example.www"

    Screenshots image

    Expected Behavior

    It should create a project.

    Additional Context Flutter version:

    Flutter 2.10.0-0.3.pre โ€ข channel beta โ€ข https://github.com/flutter/flutter.git
    Framework โ€ข revision fdd0af78bb (13 days ago) โ€ข 2022-01-25 22:01:33 -0600
    Engine โ€ข revision 5ac30ef0c7
    Tools โ€ข Dart 2.16.0 (build 2.16.0-134.5.beta) โ€ข DevTools 2.9.2
    
    Reviewed by mateenatupday at 2022-02-08 14:09
  • 12. feat: Adding `very_good icons`

    Description

    The default project generated by very_good contains flavoured icons generated by the very_good flutter app template (~199 files in aggreagate).

    This is indeed a very good start for a project, however as part of the development process the user will be required to task of replacing each of these with the app icon of the project. This manual process (documentaed by updating-app-icons and ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md) is both time intensive and error prune.

    Tools such as https://github.com/fluttercommunity/flutter_launcher_icons have support for flavoured app, however currently do not cope well with very_good's flavoured app setup, nor with the depth the platforms requirments.

    I believe it would be very helpful to support automated icon generated from a vectorized source placed in the apps assets folder, such that very_good icons will generated the above rastered as well as adaptive icons for the relevant platforms, it would also add the "STG" and "DEV" tags automatically by simple image manipulation.

    Would be happy to hear your thoughs on this?

    List of assets for andorid & ios as generated by very_good create:

    [email protected]:~/code/savy$ find ios/Runner/Assets.xcassets/ android/app/src/development/ android/app/src/staging/ android/app/src/main                        
    ios/Runner/Assets.xcassets/
    ios/Runner/Assets.xcassets/AppIcon.appiconset
    ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
    ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png
    ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/100.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/88.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/87.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/144.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/216.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/72.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/196.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/512.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/152.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/57.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/55.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/114.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/167.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/58.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/128.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/120.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/60.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/40.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/180.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/Contents.json
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/76.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/20.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/80.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/172.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/29.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/50.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/32.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/1024.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/48.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/256.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/64.png
    ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/16.png
    ios/Runner/Assets.xcassets/LaunchImage.imageset
    ios/Runner/Assets.xcassets/LaunchImage.imageset/[email protected]
    ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
    ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
    ios/Runner/Assets.xcassets/LaunchImage.imageset/[email protected]
    ios/Runner/Assets.xcassets/LaunchImage.imageset/[email protected]
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/100.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/88.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/87.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/144.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/216.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/72.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/196.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/512.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/152.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/57.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/55.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/114.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/167.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/58.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/128.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/120.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/60.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/40.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/180.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/Contents.json
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/76.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/20.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/80.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/172.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/29.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/50.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/32.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/1024.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/48.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/256.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/64.png
    ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/16.png
    ios/Runner/Assets.xcassets/Contents.json
    android/app/src/development/
    android/app/src/development/res
    android/app/src/development/res/values
    android/app/src/development/res/values/ic_launcher_background.xml
    android/app/src/development/res/drawable
    android/app/src/development/res/drawable/ic_launcher_foreground.xml
    android/app/src/development/res/mipmap-xhdpi
    android/app/src/development/res/mipmap-xhdpi/ic_launcher.png
    android/app/src/development/res/mipmap-xhdpi/ic_launcher_round.png
    android/app/src/development/res/mipmap-xxhdpi
    android/app/src/development/res/mipmap-xxhdpi/ic_launcher.png
    android/app/src/development/res/mipmap-xxhdpi/ic_launcher_round.png
    android/app/src/development/res/mipmap-mdpi
    android/app/src/development/res/mipmap-mdpi/ic_launcher.png
    android/app/src/development/res/mipmap-mdpi/ic_launcher_round.png
    android/app/src/development/res/mipmap-hdpi
    android/app/src/development/res/mipmap-hdpi/ic_launcher.png
    android/app/src/development/res/mipmap-hdpi/ic_launcher_round.png
    android/app/src/development/res/mipmap-xxxhdpi
    android/app/src/development/res/mipmap-xxxhdpi/ic_launcher.png
    android/app/src/development/res/mipmap-xxxhdpi/ic_launcher_round.png
    android/app/src/development/res/mipmap-anydpi-v26
    android/app/src/development/res/mipmap-anydpi-v26/ic_launcher_round.xml
    android/app/src/development/res/mipmap-anydpi-v26/ic_launcher.xml
    android/app/src/development/ic_launcher-playstore.png
    android/app/src/staging/
    android/app/src/staging/res
    android/app/src/staging/res/values
    android/app/src/staging/res/values/ic_launcher_background.xml
    android/app/src/staging/res/drawable
    android/app/src/staging/res/drawable/ic_launcher_foreground.xml
    android/app/src/staging/res/mipmap-xhdpi
    android/app/src/staging/res/mipmap-xhdpi/ic_launcher.png
    android/app/src/staging/res/mipmap-xhdpi/ic_launcher_round.png
    android/app/src/staging/res/mipmap-xxhdpi
    android/app/src/staging/res/mipmap-xxhdpi/ic_launcher.png
    android/app/src/staging/res/mipmap-xxhdpi/ic_launcher_round.png
    android/app/src/staging/res/mipmap-mdpi
    android/app/src/staging/res/mipmap-mdpi/ic_launcher.png
    android/app/src/staging/res/mipmap-mdpi/ic_launcher_round.png
    android/app/src/staging/res/mipmap-hdpi
    android/app/src/staging/res/mipmap-hdpi/ic_launcher.png
    android/app/src/staging/res/mipmap-hdpi/ic_launcher_round.png
    android/app/src/staging/res/mipmap-xxxhdpi
    android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher.png
    android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher_round.png
    android/app/src/staging/res/mipmap-anydpi-v26
    android/app/src/staging/res/mipmap-anydpi-v26/ic_launcher_round.xml
    android/app/src/staging/res/mipmap-anydpi-v26/ic_launcher.xml
    android/app/src/staging/ic_launcher-playstore.png
    android/app/src/main
    android/app/src/main/java
    android/app/src/main/java/io
    android/app/src/main/java/io/flutter
    android/app/src/main/java/io/flutter/plugins
    android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
    android/app/src/main/res
    android/app/src/main/res/values
    android/app/src/main/res/values/ic_launcher_background.xml
    android/app/src/main/res/values/styles.xml
    android/app/src/main/res/drawable
    android/app/src/main/res/drawable/launch_background.xml
    android/app/src/main/res/drawable/ic_launch_image.xml
    android/app/src/main/res/drawable/ic_launcher_foreground.xml
    android/app/src/main/res/mipmap-xhdpi
    android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
    android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
    android/app/src/main/res/mipmap-xxhdpi
    android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
    android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
    android/app/src/main/res/mipmap-mdpi
    android/app/src/main/res/mipmap-mdpi/ic_launcher.png
    android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
    android/app/src/main/res/mipmap-hdpi
    android/app/src/main/res/mipmap-hdpi/ic_launcher.png
    android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
    android/app/src/main/res/values-night
    android/app/src/main/res/values-night/styles.xml
    android/app/src/main/res/drawable-v21
    android/app/src/main/res/drawable-v21/launch_background.xml
    android/app/src/main/res/mipmap-xxxhdpi
    android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
    android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
    android/app/src/main/res/mipmap-anydpi-v26
    android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
    android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
    android/app/src/main/kotlin
    android/app/src/main/kotlin/app
    android/app/src/main/kotlin/app/savy
    android/app/src/main/kotlin/app/savy/MainActivity.kt
    android/app/src/main/ic_launcher-playstore.png
    android/app/src/main/AndroidManifest.xml
    
    Reviewed by maximveksler at 2022-08-09 10:19
  • 13. feat: Add fail fast argument to very good test

    Implement an argument to make the process of very_good test fail as soon as a test is broken.

    This can help CI pipelines that have extensive test suites save execution time by stopping its process as soon as a broken test is identified.

    Reviewed by erickzanardo at 2022-08-01 13:52
  • 14. feat(test): add --reporter to output in JSON

    Description

    Added the --reporter flag in the test command, to allow the user to output the test results in JSON. This change simply passes through the command and disables logging when outputting to JSON

    Type of Change

    • [x] โœจ New feature (non-breaking change which adds functionality)
    • [ ] ๐Ÿ› ๏ธ Bug fix (non-breaking change which fixes an issue)
    • [ ] โŒ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] ๐Ÿงน Code refactor
    • [ ] โœ… Build configuration change
    • [ ] ๐Ÿ“ Documentation
    • [ ] ๐Ÿ—‘๏ธ Chore
    Reviewed by jackgllghr at 2022-07-28 16:55
  • 15. fix: update very_good update command suggest to update again

    Description After running very_good update you still get prompted to update

    Steps To Reproduce

    1. Run very_good update
    2. You will see
    โœ“ Checked for updates (x.xs)
    โœ“ Updated to 0.x.x (x.xs)
    
    Update available! x.x.xx โ†’ x.x.xx+1
    Changelog: https://github.com/verygoodopensource/very_good_cli/releases/tag/vx.x.xx+1
    Run very_good update to update
    
    1. Run very_good update again
    2. You will see it's already up to date anyway Very Good CLI is already at the latest version.

    Expected Behavior When I run very_good update and it updates it I shouldn't receive this prompt to update again

    Screenshots Screenshot 2022-07-28 at 11 29 18

    Reviewed by cgutierr-zgz at 2022-07-28 09:51
  • 16. Instance of 'HookRunException' when creating new project fix:

    Description I'm trying to use very_good create myproject and it generates an unhandled exception.

    Steps To Reproduce

    1. type very_good create myproject

    Expected Behavior It creates the project

    Screenshots Added screenshot error

    Additional Context I just started using mason, probably incorrectly, and it looks like I may have broke the vgv stuff. Any ideas? I tried to deactivate/reactivate and still no luck.

    Reviewed by wednesdei at 2022-07-22 04:18

Related

A command-line interface for Ultroid

UltroidCli Welcome to the UltroidCli project built for The Ultroid. This Project is actively maintained by Akash Pattnaik. All kinds of contributions

Aug 8, 2022
Command-line Interface (CLI) for any_icon_maker.

makeanyicon Command-line Interface (CLI) for any_icon_maker. makeanyicon Quick Start Installation Usage License Quick Start Installation dart pub glob

Apr 9, 2022
A simple shortcut, command line interface (CLI) for a lazy (a.k.a effective) Flutter developer in order to increase productivity and happiness.

f A simple shortcut, command line interface (CLI) for a lazy (a.k.a effective) Flutter developer in order to increase productivity and happiness. Inst

Jun 24, 2022
Uproot(uprt) is a multi-platform (Windows, MacOs, and Linux) command line utility written in Dart to convert a router's DHCP IP Reservations between routers
Uproot(uprt) is a multi-platform (Windows, MacOs, and Linux) command line utility written in Dart to convert a router's DHCP IP Reservations between routers

UPROOT Uproot(uprt) is a multi-platform (Windows, MacOs, and Linux) command line utility written in Dart to convert a router's DHCP IP Reservations be

Aug 10, 2022
Arissounddart - a Command-line SoundSprite generator for Dart

SoundDart SoundDart is a Command-line SoundSprite generator for Dart. It require

Jan 9, 2022
Command-line tool to provide null-safety percentage info of a project. Track your migration progress on mixed-version programs that execute with unsound null safety.

null_safety_percentage Command-line tool to provide null-safety percentage info of a project. Track your migration progress on mixed-version programs

Mar 27, 2022
Easy to use cross-platform regex replace command line util

replace Easy to use cross-platform regex replace command line util. Can't remember the arguments to the find command? or how xargs works? Maybe sed is

Feb 1, 2022
A simple command-line application to generate simple folder and file structure for Flutter Applications
A simple command-line application to generate simple folder and file structure for Flutter Applications

Kanza_cli is a simple command line tool to generate folder and file structure for your Flutter apps. To use it, you should do the followings: 1. First

Mar 10, 2022
A tool to easily install the Android SDK command-line and platform tools.

gibadb A tool to easily install the Android SDK command-line and platform tools. For developers: This README describes the CLI tool that ships with th

Mar 11, 2022
A Flutter curl-command generator for Dio
A Flutter curl-command generator for Dio

curl_logger_dio_interceptor A Flutter curl-command generator for Dio. Easily test your Flutter-made requests in your favorite terminal or even in Post

Jun 1, 2022
Scribble is a lightweight library for freehand drawing in Flutter supporting pressure, variable line width and more!
Scribble is a lightweight library for freehand drawing in Flutter supporting pressure, variable line width and more!

Scribble Scribble is a lightweight library for freehand drawing in Flutter supporting pressure, variable line width and more! A

Aug 4, 2022
A very basic prototype of macros using build_runner

Description This is a basic prototype for 3 phase macros using package:build. The general idea is that macros run in 3 different phases, and each phas

Jul 17, 2022
A Dart build script that downloads the Protobuf compiler and Dart plugin to streamline .proto to .dart compilation.

A Dart build script that downloads the Protobuf compiler and Dart plugin to streamline .proto to .dart compilation.

Jul 29, 2022
Pensil Teaching App is an education platform created in flutter.
Pensil Teaching App is an education platform created in flutter.

Pensil Teaching App Pensil Teach App is an education platform created specifically for the tutors of the digital age. Pensil Teaching app reduce gap b

Jul 30, 2022
Simple generative arts created using Flutter
Simple generative arts created using Flutter

Flutter Generative Art Try it out on DartPad Simple Generative Art created using Flutter. Watch the full video on YouTube to know how to build it from

Mar 12, 2022
Flutter implementation of Clean Architecture, inspired on the guidelines created by Uncle Bob.

clean_framework Flutter implementation of Clean Architecture, inspired on the guidelines created by Uncle Bob. see http://www.amazon.com/dp/0134494164

Aug 10, 2022
A property search app created using flutter
A property search app created using flutter

flutter_property_finder A property listings app built using Flutter sdk. Tutorial Link Watch as i guide you step by step on how to build this applicat

Jul 10, 2022
Dart wrapper via dart:ffi for https://github.com/libusb/libusb

libusb Dart wrapper via dart:ffi for https://github.com/libusb/libusb Environment Windows(10) macOS Linux(Ubuntu 18.04 LTS) Usage Checkout example Fea

May 18, 2022
Extensible Dart interpreter for Dart with full interop

dart_eval is an extensible interpreter for the Dart language, written in Dart. It's powered under the hood by the Dart analyzer, so it achieves 100% c

Aug 4, 2022