{"id":13491059,"url":"https://github.com/Flutterando/slidy","last_synced_at":"2025-03-28T07:31:49.165Z","repository":{"id":37923967,"uuid":"193286209","full_name":"Flutterando/slidy","owner":"Flutterando","description":"CLI package manager and template for Flutter","archived":false,"fork":false,"pushed_at":"2024-02-14T16:31:08.000Z","size":58545,"stargazers_count":805,"open_issues_count":10,"forks_count":104,"subscribers_count":28,"default_branch":"master","last_synced_at":"2024-04-14T07:12:05.884Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/slidy","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Flutterando.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-22T22:58:08.000Z","updated_at":"2024-06-19T20:03:58.516Z","dependencies_parsed_at":"2024-01-16T09:05:53.661Z","dependency_job_id":"9a74cea4-8fff-4b8d-b421-3c262003ad93","html_url":"https://github.com/Flutterando/slidy","commit_stats":{"total_commits":161,"total_committers":18,"mean_commits":8.944444444444445,"dds":"0.24844720496894412","last_synced_commit":"ae7f385464de9695c60b3b7d565959b91bf33348"},"previous_names":[],"tags_count":59,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flutterando%2Fslidy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flutterando%2Fslidy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flutterando%2Fslidy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flutterando%2Fslidy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Flutterando","download_url":"https://codeload.github.com/Flutterando/slidy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245989296,"owners_count":20705803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T19:00:53.193Z","updated_at":"2025-03-28T07:31:49.158Z","avatar_url":"https://github.com/Flutterando.png","language":"Dart","readme":"# Slidy\n\nCLI script pipeline, package manager and template generator for Flutter. Generate Modules, Pages, Widgets, BLoCs, Controllers, tests and more.\n\n# Installation\n\nYou can get Slidy of many ways.\n\n## choco (only windows)\n\n```bash\nchoco install slidy\n```\n\n## Homebrew (macos and linux)\n\n```bash\nbrew tap Flutterando/slidy\nbrew install slidy\n```\n\n## Other OS\n\nAll binary releases, [click here](https://github.com/Flutterando/slidy/releases).\n\n## Flutter/Dart directly\n\n```bash\n dart pub global activate slidy\n```\n\n## Hello world!\n\nAfter install, exec the slidy version command.\nIf the command was completed, the slidy was installed.\n\n```bash\n slidy --version\n```\n\n# Slidy pipeline\n\n\nOrganize scripts to be executed by automating processes. All steps can be\nconfigured in a file called `slidy.yaml`.\n```\nslidy run cleanup\n```\n\n**slidy.yaml**:\n```yaml \nslidy: '1'\nvariables:\n  customMessage: \"Complete\"    # Gets  ${Local.var.customMessage}\n\nscripts:\n  # Simple command (slidy run doctor)\n  doctor: flutter doctor\n\n  # Descritive command (slidy run clean)\n  clean:\n    name: \"Clean\"\n    description: 'minha descricao'\n    run: flutter clean\n\n  # Steped command (slidy run cleanup)   \n  cleanup:\n    description: \"cleanup project\"\n    steps:\n      - name: \"Clean\"\n        run: flutter clean\n        \n      - name: \"GetPackages\"\n        description: \"Get packages\"\n        run: flutter pub get\n\n      - name: \"PodClean\"\n        description: \"Execute pod clean\"\n        shell: bash   # default: command. options (command|bash|sh|zsh|pwsh)\n        condition: \"${System.operatingSystem} == macos\"\n        working-directory: ios\n        run: |-\n          rm Podfile.lock\n          pod deintegrate\n          pod update\n          pod install\n\n      - run: echo ${Local.var.customMessage} \n```\n\n## Propeties\n\n| Propetie    |      Type        |  Doc |\n|:----------  |:-----------------|:------|\n| slidy       | string         | Slidy pipeline version |\n| variables   | object         | Local variables. ex:\u003cbr\u003e${Local.var.[VariableName]} |\n| scripts     | object         | Add runnable scripts by name |\n\n## Script Propetie\n\nAdd custom scripts. \u003cbr\u003e\nThe property name can be invoked using the `slidy run` command.\n\n**Simple example:**\n\n```yaml\n...\nscripts:\n  runner: flutter pub run build_runner build --delete-conflicting-outputs\n...\n```\nExecute this script using ``slidy run runner`\n\n**Complete example:**\n\n```yaml\n...\nscripts:\n  runner: \n    name: \"Runner\"\n    description: \"Execute build_runner\"\n    run: flutter pub run build_runner build --delete-conflicting-outputs\n...\n```\n\n| Propetie                 |      Type        |  Doc |\n|:----------               |:-----------------|:------|\n| run                      | string           | script to run |\n| name                     | string           | Script name |\n| description              | string           | Script description |\n| shell                    | string           | options: \u003cbr\u003e- command(default)\u003cbr\u003e- bash\u003cbr\u003e- sh\u003cbr\u003e- zsh\u003cbr\u003e- pwsh) |\n| working-directory        | string           | Run folder  |\n| environment              | object           | Add environment variable.|\n| steps                    | array(Step)      | Run multiple scripts in sequence..|\n\n**NOTE**: The STEPS or RUN property must be used. It is not allowed to use both at the same time.\n\n\n**Stepped example:**\n\n```yaml\nscripts:\n  cleanup:\n    description: \"cleanup project\"\n    steps:\n      - name: \"Clean\"\n        run: flutter clean\n        \n      - name: \"GetPackages\"\n        description: \"Get packages\"\n        run: flutter pub get\n\n      - name: \"PodClean\"\n        description: \"Execute pod clean\"\n        shell: bash \n        condition: \"${System.operatingSystem} == macos\"\n        working-directory: ios\n        run: |-\n          rm Podfile.lock\n          pod deintegrate\n          pod update\n          pod install\n\n      - run: echo ${Local.var.customMessage} \n```\n\n| Step Propetie                 |      Type        |  Doc |\n|:----------               |:-----------------|:------|\n| run                      | string           | script to run |\n| name                     | string           | Script name |\n| description              | string           | Script description |\n| shell                    | string           | options: \u003cbr\u003e- command(default)\u003cbr\u003e- bash\u003cbr\u003e- sh\u003cbr\u003e- zsh\u003cbr\u003e- pwsh) |\n| working-directory        | string           | Run folder  |\n| environment              | object           | Add environment variable.|\n| condition                | boolean      |If true, execute this script. |\n\n**NOTE**: The main file is called `slidy.yaml`, but if you want to call other files, use the **--schema** flag of the run command. \u003cbr\u003e`slidy run command --schema other.yaml`\n\n\n# Package manager\nInstall, Uninstall and find package by command line.\n```bash\n# install package\nslidy install bloc\n\n# install package with version\nslidy install flutter_modular@4.0.1\n\n# install package in dev_dependencies\nslidy install mocktail --dev\n\n# find package by query\nslidy find \"Shared preferences\"\n\n# show package versions\nslidy versions dio\n```\n\n# Template generator\nSlidy's goal is to help you structure your project in a standardized way. Organizing your app in **Modules** formed by pages, repositories, widgets, BloCs, and also create unit tests automatically. The Module gives you a easier way to inject dependencies and blocs, including automatic dispose. Also helps you installing the dependencies and packages, updating and removing them. The best is that you can do all of this running a single command.\n\nWe realized that the project pattern absence is affecting the productivity of most developers, so we're proposing a development pattern along with a tool that imitates NPM (NodeJS) functionality as well as template generation capabilities (similar to Scaffold).\n\n\n## About the Proposed Pattern\n\nThe structure that slidy offers you, it's similar to MVC, where a page keeps it's own **business logic classes(BloC)**.\n\nWe recommend you to use [flutter_modular](https://pub.dev/packages/flutter_modular) when structuring with slidy. It offers you the **module structure**(extending the WidgetModule) and dependency/bloc injection, or you will probably get an error.\n\nTo understand **flutter_modular**, take a look at the [README](https://github.com/Flutterando/modular/blob/master/README.md).\n\nWe also use the **Repository Pattern**, so the folder structure it's organized in **local modules** and a **global module**. The dependencies(repositories, BloCs, models, etc) can be accessed throughout the application.\n\nSample folder structure generated by **slidy**:\n\n\n## Commands\n\n**start:**\nCreate a basic structure for your project (confirm that you have no data in the \"lib\" folder).\n\n```\nslidy start\n```\n\n## Generate\n\nCreate a module, page, widget or repository according to the option.\u003cbr\u003e\nSlidy generator supports mobx, bloc, cubit, rx_notifier and triple.\n\n**Options:**\n\nCreates a new module with **slidy generate module**:\n\n```\nslidy generate module manager/product\n```\n\nCreates a new page with **slidy generate page**:\n\n```\nslidy generate page manager/product/pages/add_product\n```\n\nCreates a new widget with **slidy generate widget**:\n\n```\nslidy generate widget manager/product/widgets/product_detail\n```\n\nCreate a new repository with **slidy generate repository**\n\n```\nslidy g r manager/product/repositories/product\n```\n\nCreate a new rx notifier with **slidy generate rx**\n\n```\nslidy g rx manager/product/page/my_rx_notifier\n```\n\nCreate a new triple with **slidy generate t**\n\n```\nslidy g t manager/product/page/my_triple\n```\n\nCreate a new cubit with **slidy generate c**\n\n```\nslidy g c manager/product/page/my_cubit\n```\n\nCreate a new mobx with **slidy generate mbx**\n\n```\nslidy g mbx manager/product/page/my_store\n```\n\nFor more details [Telegram Group Flutterando](https://t.me/flutterando)\n","funding_links":[],"categories":["Dart"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFlutterando%2Fslidy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFlutterando%2Fslidy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFlutterando%2Fslidy/lists"}