FlutterUnit 历经 4 年多的成长,如今已经收录了 339 个常用组件。现在数据维护面临着巨大的挑战,FlutterUnitTool 作为 FlutterUnit 数据处理的工具,也需要为后面的可持续发展进行全面升级。
1. FlutterUnit 曾经与现在
曾经 FlutterUnit 每个展示的组件介绍信息会通过如下的格式,记录在对应的案例组件上方:
FlutterUnitTool 会遍历 widgets 模块中的每个文件,解析节点介绍信息,将其收集起来,放到数据库中。这种方式虽然效果还行,但是维护起来并不是太方便,因为组件信息和节点是分离的,一不小心很容易出现对应错误。
另外,未来组件信息和节点数据希望可以支持多语言,这样通过特定注释格式,会使代码本身非常臃肿,所以借此机会,我需要重新设计组件和节点数据的记录和解析流程。
目前版本的 FlutterUnit 已经在 这次提交 b1883bc8733fe70a7d9956c0a5bcf7612d282197 完成了数据处理升级,如下所示,824 个文件改变,9 千多行代码修改。
之所以有这么多文件的变动,是因为当前版本中奖一个组件对应的展示信息,全部集中到了对应文件夹下的 desc_zh-CN.json 中。其中包括组件信息和所有的节点数据,这样就可以统一维护。另外,也便于翻译其他的语言,为实现真正的数据国际化,打下坚实的基础。
当然,这八百多文件的变动不会是手动书写的,而是 FlutterUnitTool 基于已解析的数据,在各个文件夹下自动生成对应的 desc_zh-CN.json 。
目前,FlutterUnitTool 只需要解析 desc_xxx.json
的数据,就可以收集相关信息。广大的 Flutter 爱好者也可以在对应的组件位置放置对应语言的描述数据,未来可能也会借助 ai 的能力来自动生成,大家也可以参与到描述信息的校准中。
总而言之,拆分出 desc_xxx.json
的数据,更有利于 FlutterUnit 的长久发展,向更多 Flutter 爱好者,初学者提供参考价值。
2. FlutterUnitTool 被赋予新的使命
FlutterUnitTool 在新的阶段,将被赋予新的使命。 desc_xxx.json
将作为展示的 本源数据,根据这个数据可以衍生出更多的视觉表现形式,其中 FlutterUnit 的组件集录将是这些数据的表现形式之一。未来可能会提供更多的形式,比如以这些数据为蓝本提供开放 api 接口;结合收藏集录,生成 xmind 脑图等。
如何更好的在开发过程中管理这些数据,是 FlutterUnitTool 的新使命。我为每个组件分配了唯一 id, 如何查看 id 该分配到多少? 如何知道某个组件是否已经被收录? 如何便捷地通过交互来修改数据信息? FlutterUnitTool 将结合 tolyui 基于本地数据,打造一个组件信息的管理系统;
这个管理系统未来也可以接入网络接口,实现后台管理的功能。对数据进行展示、增删改查的操作。也欢迎大家持续关注,时机成熟时会基于 tolyui 发布一个 tolyui_admin 的项目,敬请期待 ~
3. 关于 FlutterUnit 的发展
FlutterUnit 发展的 4 年间,已经接近 8000 star 了,感谢大家的支持。目前 android
、ios
、 windows
、macos
、linux
、web
全端的应用都基于一个项目进行构建。也按照功能需求对模块进行了划分,后续 FlutterUnit 也会持续探索代码结构的优化。 应用的独立基础功能,也会逐步封装到 fx 中,我的目标是让 FlutterUnit 代码越写越少 ~
组件集录作为 FlutterUnit 的立项之本,虽然已经收录了 339 个组件,但还有一些没有收录。下一阶段将会着重完善组件集录,成为真正的 Flutter 组件 全卡查。相信有了 FlutterUnitTool 的数据管理支持,这一工作将会变得非常顺畅。另外,感兴趣的朋友也可以参与到 FlutterUnit 组件集录的建设中。只需要提供未收录的组件案例即可 ~
接下来 FlutterUnit 还会基于 tolyui 优化桌面端的组件和交互体验。最后,再次感谢大家一致以来的关注和支持,
更多文章和视频知识资讯,大家可以关注我的公众号、掘金和 B 站 。