GUI 引擎评价指标

github 上的开源 GUI 引擎至少有数十个,如何去评估它们的优劣,如何选择你需要的 GUI 引擎?这个是艰巨的任务,每个人的需求不一样,GUI 开发者的意图也不同,很难找到统一的标准去选出最好的 GUI。QT 是最强大的,没有之一,但也不一定适合你。

不管怎么样,总有些指标可以提供有价值的参考,尽管这些指标在遇到不同使用的场景,不同的公司背景,不同的个人喜好,它们所占的权重也大不相同。但是并不能抹杀这些指标的价值,关键在于如何根据自己的需要调整它们的比重。

《这个开源的 6 千行 UI 框架,能打败 QT,MFC 吗?》 这篇文章里,诸葛不亮 的 37 问给了我极大的启发,在开发 AWTK 的过程中,多次重读这篇文章,这篇文章堪称是 GUI 引擎开发者的指路明灯。

先开个头,算是抛砖引玉吧。后续会不断完善,希望大家也把自己选择 GUI 引擎时的指标补充进来。

1. 基本指标

1.1 开发者的心态

1.2 帮助文档

1.3 示例代码

1.4 代码风格

1.5 编程语言

1.6 支持的平台

1.7 可视化的界面设计工具

1.8 可视化的界面设计工具是否是用该 GUI 本身开发的

1.9 在开发环境模拟运行

1.10 用 XML/JSON 等数据来描述界面

1.11 用 XML/CSS 等数据来描述界面的风格

1.12 字体格式

1.13 图片格式

1.14 输入法

1.15 基本架构模式

2. 功能指标

2.1 高清屏

2.2 矢量图 API

2.3 窗口动画

2.4 控件动画

2.5 内置控件是否丰富

2.6 控件组合是否方便

2.7 自定义控件

2.8 布局 (layout) 参数

2.9 控件自定义属性

2.10 控件:label

2.11 控件:image

2.12 控件:edit

2.13 控件:button

2.14 控件:软键盘

2.15 控件:table view

2.16 控件:code editor

2.17 style

2.18 对话框高亮

2.19 键盘切换焦点

2.20 截屏

2.21 操作反馈

2.22 Accessibility

2.23 存储接口

2.24 资源管理

3. 性能

3.1 高效的算法

3.2 2D 硬件加速

3.3 3D 硬件加速

3.4 低端平台

3.5 启动时间

4. 国际化

4.1 Unicode。

4.2 多国语言输入法。

4.3 字符串翻译。

4.4 图片翻译。

4.5 文字双向排版。

4.6 编码转换函数。

5 软件质量

5.1 单元测试

5.2 内存耗尽处理流程

5.3 内存泄露检查机制

5.4 代码静态检查。

5.5 事件录制和重放功能

5.6 Appuim 进行自动测试

05-30 00:11