Flutter的环境搭配完之后,就开始Flutter的开发,下面的一些工具和方法,可以省下一些时间。

自己在用的,暂时想到的,就是这些了,总结一下。

1.JSON解析快速生成实体类

根据接口返回的数据,编写实体类,添加两个方法。

fromJson()方法是可以聪一个Map中构造出一个User的实例,toJson()方法,可以将一个实例转化为Map。

如果接口返回的数据比较复杂点,那么手动写起来就会很麻烦。这个时候可以利用json_serializable来帮你自动生成实体类的一些代码,还有利用caijinglong.github.io/json2dart/i…来快速生成相关代码。

将json数据复制到这个网站上,就会生成相关的代码,只需要将这些代码复制到项目中的文件就行了,

最后在我们的项目根目录下运行flutter packages pub run build_runner build,我们可以在需要时为我们的model生成json序列化代码 。

注意:要先在pubspec.yaml文件里面添加:

每个类最后面生成的with _$UserSerializerMixin,这部分可以去掉,不去掉的话,好像生成会有问题,反正我是去掉了,没什么影响。

2.代码模板

最简单的一个例子,就是在写一个有状态StatefulWidget的时候,要手动继承StatefulWidget,重写createState方法,再创建一个相应的State类并重写build方法。会写到你吐血。

这个时候就需要一些代码模板,帮你快速生成代码。

反正百度一下肯定有些导入Flutter代码模板的教程。

比如直接打出stf,就可以自动提示生成StatefulWidget的代码了。

3.Asset资源文件的导入

Flutter中,常见类型的asset包括静态数据(例如JSON文件),配置文件,图标和图片(JPEG,WebP,GIF,动画WebP / GIF,PNG,BMP和WBMP)。

一般导入的资源都要在pubspec.yaml文件中按照下面的方式,一个一个进行声明,应用程序才能获取到。

改进方法:要包含asset文件下面的所有资源,直接用下面这样方法,这样的话,只在这个目录里的文件会被包含进来。

4.Flutter Outline工具,主要用于视图的预览,还有其他功能

在编写布局的时候,可以看到Flutter Outline界面,会实时地更新所写的布局层次,方便查看。

除了视图的预览,还有其他的功能。

就是右键某一个widget,可以根据提示框,快速帮你在这个widget的外面包装一层比如padding之类的代码。这个功能有时候挺方便的。

Extract method的作用是:可以把某一个widget控件的代码,帮你封装成一个方法。不用你去手动地去找出一个widget的全部代码,再自己拉到某一个方法内。

另一方面,也可以方便地看出这个widget的相关代码,比如要复制操作起来也比较方便。

5.拖动widget自动生成相关代码

有一个网站:flutterstudio.app/

可以拖动widget到模拟器中,就可以生成相关的布局代码,自己手动复制粘贴就可以了。

作者:入魔的冬瓜

Flutter提升开发效率的一些方法和工具的更多相关文章

  1. Vue学习笔记:提升开发效率和体验的常用工具

    Vetur 用途: 语法高亮 标签补全,模板生成 Lint检查 格式化 vs code环境配置文件 文件-->首选项-->搜索veture(找不到需要自行安装)-->在setting ...

  2. Atitit 项目管理 提升开发效率的项目流程方法模型 哑铃型  橄榄型 直板型

    Atitit 项目管理 提升开发效率的项目流程方法模型 哑铃型  橄榄型 直板型 项目主体三个部分 ui界面,中间层,数据库 按照不同的比重可以分为一下三个模型  哑铃型  橄榄型 直板型 哑铃型 开 ...

  3. atitit.提升开发效率---使用服务器控件生命周期 asp.net 11个阶段 java jsf 的6个阶段比较

    atitit.提升开发效率---使用服务器控件生命周期  asp.net 11个阶段  java jsf 的6个阶段比较 如下列举了服务器控件生命周期所要经历的11个阶段. (1)初始化-- --在此 ...

  4. Atitit. 提升开发效率与质量DSL ( 3) ----实现DSL的方式总结

    Atitit. 提升开发效率与质量DSL ( 3) ----实现DSL的方式总结 1. 管道抽象 1 2. 层次结构抽象(json,xml etc) 1 3. 异步抽象promise 1 4. Ide ...

  5. atitit.提升开发效率---mda 软件开发方式的革命--(2)

    atitit.提升开发效率---mda 软件开发方式的革命--(2) 1. 一个完整的MDA规范包含: 1 2. 一个完整的MDA应用程序包含: 1 3. MDA能够带来的最大的三个好处是什么? 2 ...

  6. atitit.提升开发效率---mda 软件开发方式的革命

    atitit.提升开发效率---mda 软件开发方式的革命 1. 软件开发方式的革命开发工具的抽象层次将再次提升 1 2. 应用框架和其实现相分离 2 3. 目前的问题模型和代码不同步 2 4. MD ...

  7. atitit.提升开发效率---使用server控件生命周期 asp.net 11个阶段 java jsf 的6个阶段比較

    atitit.提升开发效率---使用server控件生命周期  asp.net 11个阶段  java jsf 的6个阶段比較 例如以下列举了server控件生命周期所要经历的11个阶段. (1)初始 ...

  8. Java进阶教程:使用Lombok提升开发效率

    Java进阶教程:使用Lombok提升开发效率 Lombok Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO).它通过注释实现这 ...

  9. HashMap高阶用法,十倍提升开发效率

    HashMap在工作中使用非常频繁,其实在JDK1.8的时候新增一些更高阶的用法,熟练使用这些方法可以大大提升开发效率,写出更简洁优美的代码. 1. get方法指定返回默认值(getOrDefault ...

随机推荐

  1. shader之法线变换

    对于法线变换,进行非统一缩放时,如果使用跟变换顶点相同的变换矩阵来变换法线,则会得到错误的结果,即变换后的法线方向与平面不再垂直. 如何求得变换法线的矩阵呢: 转载请注明出处:http://www.c ...

  2. cmd下 mysql操作命令大全详解

    启动:net start mySql; 进入:mysql -u root -p/mysql -h localhost -u root -p databaseName; 列出数据库:show datab ...

  3. mysql按天,按周,按月,按季度,按年统计数据

    /*查询2小时前的数据*/select * from tableName WHERE create_time HOUR) SELECT count(id) FROM rd_track_info WHE ...

  4. .net中的集合

    集合命令空间: 命令空间:类型逻辑上的分类 System.Collections  非泛型集合 System.Collections.Generic 泛型集合 集合内部存数据,实际上都是存到了数组里. ...

  5. 20165215 学习基础和c语言基础调查

    学习基础和c语言基础调查 <做中学>读后感与技能学习心得 读后感 Don't watch the clock. Do what it does. Keep going. 不要只看时钟,要效 ...

  6. 1113: No mapping for the Unicode character exists in the target multi-byte code page

    windows版本nginx启动 报错. 启动方式:到nginx所在目录执行:nginx.exe -c conf\nginx.conf 原因:所在路径中含有中文字符. 解决:换个没有中文的路径.

  7. AEC、AGC、ANS在视音频会议中的作用?

    AGC是自动增益补偿功能(Automatic Gain Control),AGC可以自动调麦克风的收音量,使与会者收到一定的音量水平,不会因发言者与麦克风的距离改变时,声音有忽大忽小声的缺点.ANS是 ...

  8. SQL数据同步之发布订阅

    发布订阅份为两个步骤:1.发布.2.订阅.首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅.发布可以发布一张表的部分数据,也可以对整张表进行发布.下面分别 ...

  9. socket.io不为人知的功能

    socket.io 是一个基于websocket实现的前后端实时通讯框架,也对低版本浏览器做了封装.使用起来简单,方便. 初次使用起来可能会比较迷糊,其实主要常用就几个方法,简单介绍一下. //客户端 ...

  10. vue 加载更多

        <template>   <div>     <ul>       <li v-for="item in articles"> ...