• Stars
    star
    803
  • Rank 54,479 (Top 2 %)
  • Language
    Dart
  • License
    Apache License 2.0
  • Created almost 5 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

CLI package manager and template for Flutter

Slidy

CLI script pipeline, package manager and template generator for Flutter. Generate Modules, Pages, Widgets, BLoCs, Controllers, tests and more.

Installation

You can get Slidy of many ways.

choco (only windows)

choco install slidy

Homebrew (macos and linux)

brew tap Flutterando/slidy
brew install slidy

Other OS

All binary releases, click here.

Flutter/Dart directly

 dart pub global activate slidy

Hello world!

After install, exec the slidy version command. If the command was completed, the slidy was installed.

 slidy --version

Slidy pipeline

Organize scripts to be executed by automating processes. All steps can be configured in a file called slidy.yaml.

slidy run cleanup

slidy.yaml:

slidy: '1'
variables:
  customMessage: "Complete"    # Gets  ${Local.var.customMessage}

scripts:
  # Simple command (slidy run doctor)
  doctor: flutter doctor

  # Descritive command (slidy run clean)
  clean:
    name: "Clean"
    description: 'minha descricao'
    run: flutter clean

  # Steped command (slidy run cleanup)   
  cleanup:
    description: "cleanup project"
    steps:
      - name: "Clean"
        run: flutter clean
        
      - name: "GetPackages"
        description: "Get packages"
        run: flutter pub get

      - name: "PodClean"
        description: "Execute pod clean"
        shell: bash   # default: command. options (command|bash|sh|zsh|pwsh)
        condition: "${System.operatingSystem} == macos"
        working-directory: ios
        run: |-
          rm Podfile.lock
          pod deintegrate
          pod update
          pod install

      - run: echo ${Local.var.customMessage} 

Propeties

Propetie Type Doc
slidy string Slidy pipeline version
variables object Local variables. ex:
${Local.var.[VariableName]}
scripts object Add runnable scripts by name

Script Propetie

Add custom scripts.
The property name can be invoked using the slidy run command.

Simple example:

...
scripts:
  runner: flutter pub run build_runner build --delete-conflicting-outputs
...

Execute this script using ``slidy run runner`

Complete example:

...
scripts:
  runner: 
    name: "Runner"
    description: "Execute build_runner"
    run: flutter pub run build_runner build --delete-conflicting-outputs
...
Propetie Type Doc
run string script to run
name string Script name
description string Script description
shell string options:
- command(default)
- bash
- sh
- zsh
- pwsh)
working-directory string Run folder
environment object Add environment variable.
steps array(Step) Run multiple scripts in sequence..

NOTE: The STEPS or RUN property must be used. It is not allowed to use both at the same time.

Stepped example:

scripts:
  cleanup:
    description: "cleanup project"
    steps:
      - name: "Clean"
        run: flutter clean
        
      - name: "GetPackages"
        description: "Get packages"
        run: flutter pub get

      - name: "PodClean"
        description: "Execute pod clean"
        shell: bash 
        condition: "${System.operatingSystem} == macos"
        working-directory: ios
        run: |-
          rm Podfile.lock
          pod deintegrate
          pod update
          pod install

      - run: echo ${Local.var.customMessage} 
Step Propetie Type Doc
run string script to run
name string Script name
description string Script description
shell string options:
- command(default)
- bash
- sh
- zsh
- pwsh)
working-directory string Run folder
environment object Add environment variable.
condition boolean If true, execute this script.

NOTE: The main file is called slidy.yaml, but if you want to call other files, use the --schema flag of the run command.
slidy run command --schema other.yaml

Package manager

Install, Uninstall and find package by command line.

# install package
slidy install bloc

# install package with version
slidy install [email protected]

# install package in dev_dependencies
slidy install mocktail --dev

# find package by query
slidy find "Shared preferences"

# show package versions
slidy versions dio

Template generator

Slidy'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.

We 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).

About the Proposed Pattern

The structure that slidy offers you, it's similar to MVC, where a page keeps it's own business logic classes(BloC).

We recommend you to use 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.

To understand flutter_modular, take a look at the README.

We 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.

Sample folder structure generated by slidy:

Commands

start: Create a basic structure for your project (confirm that you have no data in the "lib" folder).

slidy start

Generate

Create a module, page, widget or repository according to the option.
Slidy generator supports mobx, bloc, cubit, rx_notifier and triple.

Options:

Creates a new module with slidy generate module:

slidy generate module manager/product

Creates a new page with slidy generate page:

slidy generate page manager/product/pages/add_product

Creates a new widget with slidy generate widget:

slidy generate widget manager/product/widgets/product_detail

Create a new repository with slidy generate repository

slidy g r manager/product/repositories/product

Create a new rx notifier with slidy generate rx

slidy g rx manager/product/page/my_rx_notifier

Create a new triple with slidy generate t

slidy g t manager/product/page/my_triple

Create a new cubit with slidy generate c

slidy g c manager/product/page/my_cubit

Create a new mobx with slidy generate mbx

slidy g mbx manager/product/page/my_store

For more details Telegram Group Flutterando

More Repositories

1

modular

A smart project structure
Dart
1,278
star
2

roadmap

Flutter roadmap pt-BR
1,168
star
3

Clean-Dart

Proposta de Arquitetura Limpa para o Dart/Flutter
1,116
star
4

hasura_connect

Connect your Flutter/Dart apps to Hasura simply.
Dart
202
star
5

forum

Organizando as discussões feitas no Telegram, Discord e Facebook no Github em formato de Issues.
174
star
6

triple_pattern

Segmented State Pattern for Reactive Property
Dart
150
star
7

yuno

Minimal Open-source Retrogame Frontend
Dart
103
star
8

asuka

Show Snackbars, dialogs, ModalSheets in a single provider. Simple and Clean.
Dart
76
star
9

uno

Future based HTTP client for the Dart and Flutter
Dart
75
star
10

dart_backend

Roadmap para aprender como utilizar Dart no backend
70
star
11

teddy_todo

Dart
65
star
12

dartion

Json Server RESTful, Up your backend in 5 Seconds!
Dart
57
star
13

clean-dart-search-bloc

Github Search using "Clean Dart", BLoC and Modular.
C++
51
star
14

auto_injector

Dependency injection system. But without build_runner :)
Dart
47
star
15

rx_notifier

Extension to ValueNotifier by transparently applying functional reactive programming (TFRP)
Dart
42
star
16

routefly

Folder-based route manager inspired by NextJS and created by the Flutterando community.
Dart
40
star
17

asp

ASP (Atomic State Pattern) is a extension to ValueNotifier by transparently applying functional reactive programming (TFRP)
Dart
39
star
18

semana-do-flutter-arc

Semana do Flutter de Maio de 2020
C++
36
star
19

music_player_app

A challenge made by Flutterando using Flutter Desktop
Dart
33
star
20

flutter_mobx_extension

TypeScript
32
star
21

minicore

Flutter/Dart Architecture proposal inspired by Clean Architecture.
32
star
22

nubank_layout

Desafio criado com os membros da Flutterando
Dart
32
star
23

flutter-coverage

VSCeode Extension for view the code coverage per folder/file in the test view
TypeScript
31
star
24

result_dart

Result for dart. It is an implementation based on Kotlin Result and Swift Result.
Dart
25
star
25

github_search

Github Search - Flutter Modular example
Dart
23
star
26

shelf_swagger_ui

Swagger UI plugin for Shelf
Dart
21
star
27

dson_adapter

Convert JSON to Dart Class withless code generate(build_runner)
Dart
20
star
28

di-example

Dart
20
star
29

architecture

Dart
19
star
30

flutter_calculator

Sample project using project structure generated by Slidy and TDD
Dart
19
star
31

FunctionalDart

Código e anotações da série de estudos "Dart Funcional"
Dart
18
star
32

queue_management

Todas as quintas as 17 contamos esse app
Dart
18
star
33

padroes_de_projeto

15
star
34

flutter_web_site

Flutterando's site built in Flutter Web
Dart
14
star
35

dart_pub

Private pub.dev for packages Flutter Dart
Dart
14
star
36

Desafios

Desafios propostos pela equipe do canal
14
star
37

flutterando_metrics

Dart
14
star
38

animated-toolbar

Dart
12
star
39

Flutter-SOLID-Hasura-Firestore

Dart
12
star
40

estrutura_arquivos

Dart
12
star
41

website

Flutterando website
Dart
11
star
42

perguntando

Dart
10
star
43

flutter_mobx_helpers

Widgets and Utils for increment mobx
Dart
8
star
44

carrinho_compras

Aplicativo para modelo de projeto com Repository Pattern e BLoC
C++
8
star
45

auth-service

Go
8
star
46

flutterando_analysis

Lint rules for Dart and Flutter used internally at Flutterando
C++
8
star
47

flutterando_bricks

Dart
8
star
48

iugu

Dart
7
star
49

todo_mobx

Dart
7
star
50

unity_test_study

Dart
7
star
51

shelf_graphql

Graphql server for shelf
Dart
6
star
52

full_coverage

A package script for allowing coverage test tool to see all Dart files
Dart
6
star
53

via_cep_search

C++
6
star
54

slidy-vscode

snippets for slidy
TypeScript
6
star
55

semana-do-flutter-rx-notifier

Dart
6
star
56

dart-backend

Dart
6
star
57

builders

Use Consumer, Select and BlocConsumer in any System Injector
Dart
5
star
58

fteam_authentication

Dart
4
star
59

crud_completo

CRUD Completo
C++
4
star
60

shelf_hasura_actions

Shelf Middleware for Hasura Action.
Dart
4
star
61

dialog_launcher

A Dart package to facilitate the creation and handling of dialog boxes in command line interfaces across different operating systems (Windows, Linux, and macOS).
Dart
4
star
62

asp_arch

C++
4
star
63

clean_dart_search_getit_cubit

Dart
3
star
64

hasura_cache_interceptor

Package to implements cache in Hasura package
Dart
3
star
65

slidy_extension

TypeScript
3
star
66

passport

Dart
3
star
67

flutter-latam-conf-2020-site

A site for Flutter LATAM Conf 2020
Dart
3
star
68

value_listenable_test

Assists in testing ValueListenable objects (ex: ValueNotifier).
Dart
3
star
69

dividindo

Dart
2
star
70

hive_cache_interceptor

Package to implements cache using hive in hasura_connect package
Dart
2
star
71

.github

2
star
72

flutterolx

Dart
2
star
73

matchmaker_lol

Dart
2
star
74

hasura_core-Deprecated-

Dart
1
star
75

state_management

Dart
1
star
76

flutter-latam-conf-2020-challenge

A challenge for Flutter LATAM Conf 2020
1
star
77

hasura_firebase_performance

Hasura connect Interceptor implementation that sends querys metric data to Firebase.
Dart
1
star
78

hasura-webhook-auth

Dart
1
star
79

flutterando_workflows

Reusable GitHub Workflows used at Flutterando
1
star
80

precache_image_builder

Dart
1
star
81

shared_preferences_cache_interceptor

Package to implements cache using shared preferences to hasura_connect package
Dart
1
star
82

signals

Dart
1
star