Playground

Flutterで使えるUIカタログを使ってみた( storybook_flutter編 )

Playground
この記事は約5分で読めます。
スポンサーリンク
お久しぶりです。みやかわです。
Flutter で使えるUIカタログを紹介第二弾です。
今回は storybook_flutter を使っていきます。
あくまで、みやかわのメモなのでもしかしたら使い方が違うかもしれません。
この辺はご承知ください。

スポンサーリンク

storybook_flutterとは

storybook_flutterとは、Kirill Bubochkinさんが開発した Fluter 向けのUIカタログライブラリです。
Kirill Bubochkinさんのホームページはこちら
Flutter がサポートするすべてのデバイスに対応しているようです。

storybook_flutter を使ってみる

サンプル

いつものようにまずはUIカタログにするWidgetを作ります。
前回の記事と同じ構成にしました。
% tree lib
lib
├── app.dart
├── main.dart
├── pages
│   └── main_page
│       └── main_page.dart // page widget
└── widgets
    ├── my_card
    │   └── my_card.dart // test widget 1
    └── my_text
        └── my_text.dart // test widget 2
起動すると以下のようになります。
サンプルはGithubに載せています。

ライブラリのインストール

早速 storybook_flutter を入れていきます。
flutter pub add storybook_flutter --dev

インストール後のpubspec.yaml は以下のようになります。

dev_dependencies:
  flutter_test:
    sdk: flutter

  # The "flutter_lints" package below contains a set of recommended lints to
  # encourage good coding practices. The lint set provided by the package is
  # activated in the `analysis_options.yaml` file located at the root of your
  # package. See that file for information about deactivating specific lint
  # rules and activating additional ones.
  flutter_lints: ^1.0.0
  storybook_flutter: ^0.8.0

プログラム

storybook/main.dart に以下のプログラムをコピペします。
※ ライブラリのインポートは各環境に応じて修正してください。
import 'package:flutter/material.dart';
import 'package:sample_storybook/pages/main_page/main_page.dart';
import 'package:sample_storybook/widgets/my_card/my_card.dart';
import 'package:sample_storybook/widgets/my_text/my_text.dart';
import 'package:storybook_flutter/storybook_flutter.dart';

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) => Storybook(
        children: [
          Story(
            name: 'MainPage',
            builder: (_, k) => const MainPage(),
          ),
          Story(
            name: 'MyText',
            builder: (_, k) =>
                MyText(param: k.text(label: 'param', initial: 'Hello-World')),
          ),
          Story(
            name: 'MyCard',
            builder: (_, k) => const MyCard(),
          ),
        ],
      );
}

void main() {
  runApp(const MyApp());
}

起動

実行コマンドを実行します。

% flutter run -d sotrybook/main.dart -t chrome
実行すると以下のようなUIカタログが出てきます。
引数をUIカタログ内で編集することも可能です。
本家のStorybook と同じような使い方ができて良いです。

UIカタログを自動で生成できる?

残念ながら バージョン 0.8.0 ではUIカタログを自動で生成できないようです。
少し残念ポイントです。

まとめ

fluter で使えるUIカタログの一つである storybook_flutter を使ってみました。
UIカタログについてはかなり使いやすい印象です。
しかしながら、UIカタログの生成がちょっとめんどくさいという欠点があります。
現時点では前回紹介した widgetbook のほうが扱いやすいと感じます。
次回のアップデートに期待です。
それではまた。

コメント

タイトルとURLをコピーしました