くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

BrickHub/masonでコード生成をしてみる

FlutterのYouTubeを見てたらこんなのが(*´ω`*)

ドキュメントはこれが公式っぽい。

GitHubのTemplateリポジトリを使ってたけど、
アプリ名とかを変えるのがすこしめんどくさい。。

これなら、変数で指定できるので、だいぶ楽になりそう(*´ω`*)

BrickHubとは

BrickHub DocsのOverviewより

BrickHub is a platform where developers can discover, install, and publish reusable templates called bricks. BrickHub is built on top of mason, a collection of tools which allow developers to create and consume bricks.

BrickHubは、開発者がbrickと呼ばれる再利用可能なテンプレートを発見、インストール、公開できるプラットフォームです。 BrickHubは、開発者がbrickの作成と使用できるようにするツール群であるmasonを使って、構築されています。

登場人物としては、

  • brick ... テンプレート
  • mason ... テンプレートを使ってコード生成する本体
  • mason-cli ... masonのCLIツール

メインはmason-cliを使って操作するっぽい。

mason-cliのinstall

# 🍺 Install from https://brew.sh
$ brew tap felangel/mason
$ brew install mason

# or
# 🎯 Activate from https://pub.dev
$ dart pub global activate mason_cli

bricksを使ってみる

初期設定

Getting Started | BrickHub Docsに従って、試してみる。

# 初期化: mason.yamlの作成
$ mason init

mason.yamlに利用するbricksを設定していく。
pubspec.yamlpackage.jsonのようなもの。

利用するbricksを管理する

こんな感じで、使いたいbricksを設定する。

# mason.yaml
bricks:
  hello: 0.1.0+1

flutter pub getとのような感じで、
設定したbricksを取得する。

$ mason get
✓ Got bricks (22ms)

取得が完了すると、以下のファイルが作成される。

├── .mason
├── mason-lock.json
└── mason.yaml

だいたいパッケージマネージャー的な機能がある感じ。

# bricksの追加/削除/一覧表示
$ mason add hello
$ mason remove hello
$ mason list

# bricksのインストール
$ mason get

# bricksの更新
$ mason upgrade

# masonの更新
$ mason update

# bricksの検索
$ mason search riverpod

bricksを使ってコードを生成する

mason makeで、インストールしたbricksを利用できる。

$ mason make hello
? What is your name? (Dash) Mason
✓ Generated 1 file. (29ms)
  created HELLO.md
  
$ cat HELLO.md 
Hello Dash! 👋

変数を聞かれる場合、それぞれ回答すると、
その値に応じて、コードを生成してくれる。

# 引数で指定
$ mason make hello --name Mason

# JSONファイルで指定
$ mason make hello -c config.json
$ cat config.json
{ "name": "Mason" }

# 出力先の指定/変更
$ mason make hello --name Mason -o ./out

bricksを探す

探し方は2つ。

いろんなのがあるので、いろいろ探してみるとよさそう(*´ω`*)


以上!! とりあえず、使い方まで(*´ω`*)
bricksの公開もできるので、だいぶ捗りそう(*´ω`*)

参考にしたサイト様