Flutter Widget 之package mason实现详解
作者:程序员界的小学生 发布时间:2021-07-08 23:43:08
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
来源:https://juejin.cn/post/7169828966235111438


猜你喜欢
- 本文结合之前的动态创建fragment来进行一个实践,来实现用Fragment创建一个选项卡项目布局<LinearLayout xml
- 克隆方法是原型设计模式中必须使用的方式,它将返回一个与当前对象数据一致的对象。正如其名,犹如一个模子雕刻而出。克隆类型分为两种:浅克隆、深克
- Android 侧滑菜单的实现,参考网上的代码,实现侧滑菜单。最重要的是这个动画类UgcAnimations,如何使用动画类来侧滑的封装Fl
- 问题(1)synchronized的特性?(2)synchronized的实现原理?(3)synchronized是否可重入?(4)sync
- 方法一:using System;using System.Collections.Generic;using System.Compon
- 现在语音识别已经被广泛的应用到各个领域中,在Unity开发中,语音识别也非常受欢迎。大部分人都会选择科大讯飞的语音识别功能,但是在一些小的项
- 这里我们只介绍springboot2.0的session时间设置Duration转换字符串方式,默认为正,负以-开头,紧接着P,(字母不区分
- 这里来讲一下后台java如何构造多叉树,这样前台就可接收到数据递归构造树形菜单了。我们来理一下如何实现构造多叉树的逻辑吧,其实整个问题概括起
- 我们在用maven构建java项目时,最常用的打包命令有mvn package、mvn install、deploy,这三个命令都可完成打j
- 0x00 前言在一些比较极端情况下,C3P0链的使用还是挺频繁的。0x01 利用方式利用方式在C3P0中有三种利用方式http baseJN
- 前言本文例子实现了点击显示悬浮窗口,同时窗口可播放视频,拖动位置,点击关闭及返回 APP 页面,通过例子来讲述悬浮窗口实现原理及细节处理,效
- 最近看代码,由于代码的调用层级深度比较多,层层深入到某处时,已经忘记了身处何处,虽然自己可以使用一些画图工具来时序图,但是,这种情况下,自己
- VC程序设计中屏幕上的文字大都是由gdi32.dll的以下几个函数显示的:TextOutA、TextOutW、ExtTextOutA、Ext
- 已经下过好几次了,现在还是忘了。就把过程直接放上面了。下次再换电脑就直接可以看。。。0.下载之前需要把JDK安装和配置好,点这里:https
- foreach遍历LIST读到数据为null当我们在使用mybatis的时候,就避免不了批量更新,或者批量查询使用数组或者list,就避免不
- 本文以实例形式讲述了C#解析JSON的方法,C#封装了对XML和JSON解析的类库,使用相当方便!具体用法如下:1.主要用到的类:主要用到了
- 分转元private String fenToYuan(String amount){ NumberFormat format
- 一、二叉搜索树插入元素/** * user:ypc; * date:2021-05-18; * time: 15:09; */
- 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。对于文件上传,浏览器在上
- 通常来说,多线程的并发及条件断点的debug是很难完成的,或许本篇文章会给你提供一个友好的调试方法。让你在多线程开发过程中的调试更加的有的放