Flutter Widget 之package mason实现详解
程序员界的小学生 人气:0正文
Flutter有个悠久的传统,便是运行flutter create并删除所有内容,然后在所有标准样板文件(boilerplate)当中尽力复制和粘贴,这很费时又容易出错,而且比报税更无趣,但是是否别无他法?
进入Mason,这是用于欧快速组装新项目或功能的软件包,可以从成为“砖块”的自定义模版中生成代码,而这些模版根据你的项目的特定值呈现
使用Mason砖块
例如想象一下,你正为Flutter新项目使用Mason砖块的pubspec.yaml文件,非常舒适。
有了砖块,看起来就像这样
name: {{ project_name.snakeCasse() }} dependencies: flutter: sdk: flutter {{#uses_firebase}} firebase_core: ^X.Y.Z cloud_firestore: ^X.Y.Z {{/uses_firebase}}
如果你使用的是Firebase,这将生成包含Firebase依赖项的pubspec.yaml文件
name: socksCatalog dependencies: flutter: sdk: flutter firebase_core: ^X.Y.Z cloud_firestore: ^X.Y.Z
如果你不是使用Firebase,那些依赖项将会被跳过
name: socksCatalog dependencies: flutter: sdk: flutter
但是Mason如何知道你的项目名称或你是否使用Firebase?
进入mason_cli 这与flutter_create相似
运行mason make
但因用了Mason及自定义的砖块而更灵活。安装好后,用砖块的名字运行mason make
dart pub global activate mason_cli mason add --global <BRICK_NAME> mason make <BRICK_NAME>
Mason会读取砖块的manifest文件并问你一些问题
这里需要知道你的项目名称,以及你是否使用Firebase
Mason_cli支持多种数据类型,包括字符串、布尔值、数字和枚举
如此的话,还有个问题,我们如何找到要使用的砖块名称?
为此,请浏览brickhub.dev并查看公开可用的砖块,世界各地的Flutter开发者已经上传它们自用的样板文件以帮你节省时间
如果没有找到自己喜欢的,请将自己喜欢的Flutter项目结构转为砖块上传以为将来所需节省时间。
顺带一提,砖块大小可任意调整并非只能整个项目
/{{ feature_name}} {{ feature_name }}_screen.dart {{ feature_name }}_state_management.dart
你是否发现每次开始一个新功能时都会创建相同的启动文件?这种情况也很适合使用砖块
/login login_screen.dart login_state_management.dart
利用Mason,你可比以往更快地编写应用程序中有趣的部分
如果想了解有关package:mason,或者关于Flutter的其他功能,请访问pub.dev
加载全部内容