flutter_umeFlutter 应用调试套件

联合创作 · 2023-10-01 21:29

flutter_ume 是 Flutter 应用内调试工具平台,由字节跳动的 Flutter 团队制作。

功能介绍

当前开源版 UME 内置了 13 个插件

UI 工具包

  • Widget 信息
  • Widget 详情
  • 对齐标尺
  • 颜色吸管(新)
  • 颜色吸管
  • 触控标记

性能工具包

  • 内存信息
  • 性能浮层

设备信息工具包

  • CPU 信息
  • 设备信息

其他

  • 代码查看
  • 日志展示
  • Dio 网络请求调试工具

为 UME 开发插件

UME 插件位于 ./kits 目录下,每个插件包都是一个 package 本小节示例可参考 ./custom_plugin_example

  1. flutter create -t package custom_plugin 创建一个插件包,可以是 package,也可以是 plugin

  2. 修改插件包的 pubspec.yaml,添加依赖

    dependencies:
      flutter_ume: '>=0.3.0 <0.4.0'
  3. 创建插件配置,实现 Pluggable 虚类

    import 'package:flutter_ume/flutter_ume.dart';
    
    class CustomPlugin implements Pluggable {
      CustomPlugin({Key key});
    
      @override
      Widget buildWidget(BuildContext context) => Container(
        color: Colors.white
        width: 100,
        height: 100,
        child: Center(
          child: Text('Custom Plugin')
        ),
      ); // 返回插件面板
    
      @override
      String get name => 'CustomPlugin'; // 插件名称
    
      @override
      String get displayName => 'CustomPlugin';
    
      @override
      void onTrigger() {} // 点击插件面板图标时调用
    
      @override
      ImageProvider<Object> get iconImageProvider => NetworkImage('url'); // 插件图标
    }
  4. 在工程中引入自定义插件

    1. 修改 pubspec.yaml,添加依赖

      dev_dependencies:
        custom_plugin:
          path: path/to/custom_plugin
    2. 执行 flutter pub get

    3. 引入包

      import 'package:custom_plugin/custom_plugin.dart';
  5. 在工程中注册插件

    if (kDebugMode) {
      PluginManager.instance
        ..register(CustomPlugin());
      runApp(
        UMEWidget(
          child: MyApp(), 
          enable: true
        )
      );
    } else {
      runApp(MyApp());
    }
  6. 运行代码

快速集成嵌入式插件

 0.3.0 版本起引入了 PluggableWithNestedWidget,用以实现在 Widget tree 中插入嵌套 Widget,快速接入嵌入式插件。

集成重点如下:

  1. 插件主体类实现 PluggableWithNestedWidget
  2. 实现 Widget buildNestedWidget(Widget child),在该方法中处理嵌套结构并返回 Widget

版本说明

兼容性

UME 版本 Flutter 1.12.13 Flutter 1.22.3 Flutter 2.0.1 Flutter 2.2.3 Flutter 2.5.3
0.1.x ⚠️
0.2.x
0.3.x

⚠️ 意为未经过完整的兼容性测试,不建议使用。

单测覆盖率

master develop develop_nullsafety
flutter_ume   Coverage Coverage
flutter_ume_kit_device Coverage Coverage Coverage
flutter_ume_kit_perf Coverage Coverage Coverage
flutter_ume_kit_show_code Coverage Coverage Coverage
flutter_ume_kit_ui Coverage Coverage Coverage
flutter_ume_kit_console Coverage Coverage Coverage
flutter_ume_kit_dio Coverage N/A Coverage

版本号规则

请参考 Semantic versions

Null-safety 版本

null-safety 推荐版本号
flutter_ume 0.3.0+1
flutter_ume_kit_ui 0.3.0+1
flutter_ume_kit_device 0.3.0
flutter_ume_kit_perf 0.3.0
flutter_ume_kit_show_code 0.3.0
flutter_ume_kit_console 0.3.0
flutter_ume_kit_dio 0.3.0
浏览 2
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报