Flutter组件展示与测试插件sherkety_widgetbook的使用

Discord style: very_good_analysis GitHub Workflow Status

一个帮助开发者整理他们的部件,快速在多种设备和主题上测试它们,并且轻松与设计师和客户分享的Flutter包。 灵感来源于Storybook.js。

Widgetbook Demo

功能 #

  • 💙 专为Flutter设计。易于使用。
  • 🦄 开源
  • 🍭 功能丰富。可以在不同的设备、主题、语言和地区文本缩放等条件下测试您的部件。
  • ⚙️ 可定制。可以根据您的需求轻松添加额外的设置。
  • 🔧 维护。由德国的一家快速增长的Flutter创业公司维护。
  • 👩🏼‍💻 支持。通过我们的Discord社区。

Widgetbook可以做更多的事情!

  • 📙 目录现有的部件。永远不再重复开发部件。
  • 📦 独立开发。无需考虑业务逻辑。
  • 🎛 旋钮。通过定义可自定义的旋钮来定义团队如何与部件交互。
  • ⚡️ 热重载。快速找到并修复错误。

Widgetbook Cloud #

为了简化专业团队的审查过程,我们提供了协作平台Widgetbook Cloud

  • 🌍 共享您的部件。与设计师、产品经理、客户等分享。
  • 📃 简化审查。通过我们的引导流程简化审查。
  • Figma集成。将您的部件连接到Figma中的设计对应物。

现在获取访问权限! ➡️

文档 #

参见docs.widgetbook.io了解文档和示例。

```

example/example.md

Widgetbook示例 #

所有示例可以在这里找到。

```

完整示例Demo

以下是一个简单的示例,展示了如何使用sherkety_widgetbook(实际名称为widgetbook)来展示和测试Flutter部件。

1. 添加依赖

pubspec.yaml文件中添加widgetbook依赖:

dependencies:
  flutter:
    sdk: flutter

dev_dependencies:
  widgetbook_annotation: ^0.1.0
  widgetbook_core: ^0.1.0
  widgetbook_runner: ^0.1.0

2. 创建部件

创建一个简单的Flutter部件:

// lib/my_widget.dart
import 'package:flutter/material.dart';

class MyWidget extends StatelessWidget {
  final String title;

  const MyWidget({Key? key, required this.title}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.all(16),
      decoration: BoxDecoration(
        color: Colors.blue,
        borderRadius: BorderRadius.circular(8),
      ),
      child: Text(title, style: TextStyle(color: Colors.white)),
    );
  }
}

3. 使用Widgetbook

创建一个Widgetbook配置文件,以展示和测试部件:

// lib/main.dart
import 'package:flutter/material.dart';
import 'package:widgetbook_annotation/widgetbook_annotation.dart';
import 'my_widget.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return WidgetbookMaterialApp(
      apps: [
        AppDefinition(
          name: 'My App',
          appBuilder: (context) => MaterialApp(
            home: Scaffold(
              appBar: AppBar(title: Text('Widgetbook Demo')),
              body: Center(child: MyWidget(title: 'Hello, Widgetbook!')),
            ),
          ),
        ),
      ],
      builders: [
        // 可以在这里添加更多构建器
      ],
      useCaseProviders: [
        UseCaseProvider(
          name: 'MyWidget',
          useCases: [
            UseCase(
              name: 'Default',
              builder: (context) => MyWidget(
                title: 'Hello, Widgetbook!',
              ),
            ),
          ],
        ),
      ],
    );
  }
}

4. 运行应用

运行应用后,你可以在浏览器中查看Widgetbook界面,并在不同设备和主题下测试你的部件。

flutter run

更多关于Flutter组件展示与测试插件sherkety_widgetbook的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter组件展示与测试插件sherkety_widgetbook的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


Sherkety Widgetbook 是一个用于 Flutter 的插件,它可以帮助开发者更好地展示和测试他们的 Flutter 组件。通过使用 Widgetbook,开发者可以创建组件库,并在一个统一的界面中查看、测试和调试这些组件。Sherkety Widgetbook 是基于 Widgetbook 的一个扩展,提供了更多的功能和便利。

安装 sherkety_widgetbook

首先,你需要在 pubspec.yaml 文件中添加 sherkety_widgetbook 的依赖:

dependencies:
  flutter:
    sdk: flutter
  sherkety_widgetbook: ^0.1.0 # 请根据最新版本号进行替换

然后运行 flutter pub get 来安装依赖。

基本使用

  1. 创建 Widgetbook 入口文件

    在你的项目中创建一个新的 Dart 文件,比如 widgetbook.dart,并添加以下代码:

    import 'package:flutter/material.dart';
    import 'package:sherkety_widgetbook/sherkety_widgetbook.dart';
    import 'package:your_app/widgets/your_widget.dart'; // 替换为你的组件路径
    
    void main() {
      runApp(WidgetbookApp(
        categories: [
          WidgetbookCategory(
            name: 'Your Category',
            widgets: [
              WidgetbookWidget(
                name: 'Your Widget',
                builder: (context) => YourWidget(),
              ),
            ],
          ),
        ],
      ));
    }
    
  2. 运行 Widgetbook

    在终端中运行以下命令来启动 Widgetbook

    flutter run -t lib/widgetbook.dart
    

    这将启动一个本地服务器,并在浏览器或设备上打开 Widgetbook 界面,你可以在其中查看和测试你的组件。

  3. 添加更多组件

    你可以通过添加更多的 WidgetbookWidget 来展示和测试其他组件。例如:

    WidgetbookCategory(
      name: 'Buttons',
      widgets: [
        WidgetbookWidget(
          name: 'Primary Button',
          builder: (context) => PrimaryButton(),
        ),
        WidgetbookWidget(
          name: 'Secondary Button',
          builder: (context) => SecondaryButton(),
        ),
      ],
    ),
    

高级功能

Sherkety Widgetbook 提供了一些高级功能,比如:

  • 主题切换:你可以在 Widgetbook 中切换不同的主题来测试组件在不同主题下的表现。
  • 屏幕尺寸模拟:你可以模拟不同设备的屏幕尺寸来测试组件的响应式布局。
  • 参数控制:你可以通过 Widgetbook 提供的控件动态调整组件的参数,比如颜色、大小等。

自定义 Widgetbook

你可以通过自定义 WidgetbookApp 的配置来适应你的项目需求。例如,你可以自定义主题、添加全局装饰器等。

WidgetbookApp(
  theme: ThemeData.light(),
  darkTheme: ThemeData.dark(),
  categories: [
    // 你的组件类别
  ],
)
回到顶部