fiz com Flutter/Dart pq é o q eu + uso e na boa, é chatão ficar criando cada pasta e add cada package 1 por 1 (até tem umas formas de deixar + rápido, mas msm assim) , mas da pra fazer meio q qualquer coisa, é só tu usar a criatividade (e ter muita paciência até ficar redondinho)
vou falar rapidinho sobre a instalação, mas meu foco vai ser no meu brick + hooks
Instalação do Mason
tem 2 formas de fazer as instalação, a 1ª é tendo o Flutter/Dart instalado, a 2ª é pelo homebrew
flutter/dart pub global
no seu terminal
, seja ele qual for, é só rodar o comando flutter pub global activate mason_cli
q é gg
Homebrew
no seu terminal
, seja no macOS ou Linux, é só rodar esses comandos
brew tap felangel/mason
brew install mason
Criação
rode o comando mason init
, esse comando vai criar o mason.yaml
, q é o arquivo onde vão ficar salvos seus bricks, depois disso, já rola criar nossos próprios bricks
Criação do Brick
sugiro criar uma pasta, em algum canto, pra deixar seus bricks
- acesse a pasta pelo seu terminal
- rode o comando
mason make nome_do_seu_bricks
, isso vai criar uma pasta com o nome q vc deu e dentro vai ter 4 arquivos e 1 pasta - dentro do
brick.yaml
, é onde vc vai colocar as variáveis no padrão "{mustache}"... eu não conhecia, mas curti - é ali q coloca o {{nomeApp}} ou {{nomeMódulo}} por exemplo, também tem tipo umas funções, tipo {{variavel.snakeCase()}}, q seria = hello_world e assim vai
- a principio, a pasta
__brick__
, só via ter um arquivoHELLO.md
, só deletar e começar a montar sua estrutura/arquivos dentro dessa pasta - caso queira adicionar algo (em um projeto flutter) ao
main.dart
de um projeto existente, é só criar a pastalib
e dentro dela omain.dart
, escrever o q quiser dentro do arquivo e gg - toda e qualquer parte dinâmica, tem q ter uma pergunta no
brick.yaml
, a parte dinâmica no código usando o {{mustache}} e claro, toda a sequencia de pastas e arquivos q queira substituir/add
Criação do Hooks
na doc, tem um aviso q os hooks só suportam
Dart
por enquanto
- acesse 1 pasta antes do seu brick pelo seu terminal
- rode o comando
mason new nome_do_seu_bricks --hooks
, isso vai criar uma pasta dentro do seu brick com o nome dehooks
, 5 arquivos e 1 pasta, mas vc só vai mexer nos 2 arquivos.dart
- as msm variáveis do
brick.yaml
vão funcionar no seu hook - o
post_gen.dart
é pra fazer coisas depois q o arquivo terminar de ser gerado, tipo add packages - o
pre_gen.dart
é pra fazer coisas antes (não cheguei a usar ele), mas acredito q de pra criar o app por ele, ai entra o bricks e finaliza com o hookpost_gen
- caso queira usar só 1 deles é só deletar o arquivo q não quer usar
- eu basicamente so pra add packages, então o arquivo
post_gen.dart
fica com várias linhas assimawait Process.run("flutter", ["pub", "add", "flutter_modular"]);
, q no caso é o msm q vc rodar no terminarflutter pub add flutter_modular
e assim vai
Usando
quando tem hooks dentro do brick, ele roda sozinho (mas tem como fazer ele não rodar, caso queira)
mason add nome_do_brick
(esse só funciona se o brick estiver no BrickHubmason add nome_do_brick --git-path https://url_do_git
(vai instalar o brick do git)mason add nome_do_brick --path caminho/do/brick
(pra usar localmente)mason ls
(mostra os bricks q vc tiver instalado)mason get
(atualiza seus bricks, lembre-se desse comando quando for usar um localmente q vc tenha feito alterações)mason make nome_do_brick
(pra usar o brick, se tiver hook vai rodar antes/depois)mason make nome_do_brick --no-hooks
(pra usar o brick, sem os hooks)
Explicação
gosto de automatizar/deixar + fácil/rápido meus trabalhos, principalmente coisas repetitivas
leva +- 60s pra tudo ser executado (m1 air 8gb)
meu Brick
- fiz a arquitetura q eu gosto e q + me sinto confortável, seguindo alguns padrões e talz (fique a vontade para alterar viu ?!)
- vira e mexe eu crio um projeto novo, então pq não deixar a parte inicial automática né ?! já q eu sempre uso a msm coisa... modular como base do app, sentry pros erros/perfomance, firebase remote config pros feature toggles e pra mandar urls de forma segura e assim vai
meu Hooks
- add packages necessários pro "meu padrão" funcionar
- até poderia fazer com um comando gigante de "uma vez", mas eu ia ter q salvar ele em algum canto ou até fazer um alias, mas ai fica ruim de compartilhar (acredite, eu tentei)
Links
brickhub.dev
- site
- doc
mason add struct_cplt
| meu brick struct_cpltmason add mod
| meu brick mod
GitHub
YouTube
Bom, acho q é isso, obrigado por ler !
Se eu falei alguma besteira, me corrija pf, e se tiver um tempo, se inscreva na minha newsletter e fique a vontade para se conectar
Como a minha classe favorita do Ragnarok, Super Aprendiz, sou um Eterno Aprendiz
n5 | v0.5