Flutter应用——5个高效的Flutter开发工具
1.你是否需要更好,更简洁的日志
当你在开发Flutter应用程序时,难以理解的日志是一个大问题,因为没有快速的方法来根据问题的严重程度过滤你的日志。抛出异常或记录一条简单的调试消息?他们看起来都一样。
如果你的Flutter app需要更好的日志系统,Logger 软件包绝对是个好东西。
Logger包地址:https://pub.dev/packages/logger
它受到Java分级日志的启发,允许您向日志添加级别。
日志级别,目前有:
logger.v("Add more detailed debug messages, " "can contain sensitive information, never enable it in production"); logger.d("Fine grained information to debug an application"); logger.i("Track the flow of the application"); logger.w("A potential but expected problem"); logger.e("A real failure that may impact the application state");
由于某些原因,另外一个特别的是
logger.wtf("WTF logs??")
不仅如此,你还可以晃动你的设备来查看屏幕上的日志。(PS:需要导入logger_flutter包)
2.API还没有从后端准备好,或者根本没有API ?应用程序靠自己硬编数据?
如果你还在艰难的coding,全是自己硬编数据因为后台没有准备好他们的API或者根本没有任何API,如果你仍然希望UI有意义,您可以使用faker包——Jesper Hakansson为应用程序生成有意义的数据。
受Python包faker和Ruby包ffaker的启发,这个包可以提供各种类型的数据,从虚假的人名到虚假的日期,甚至是随机的虚假url。
只需创建一个简单的对象,像这样-
var faker = new Faker();
下面是使用faker对象的例子
faker.date.month(); faker.conference.name(); faker.company.position(); faker.lorem.sentences(8); faker.internet.httpsUrl(); faker.currency.name(); faker.sport.name()
在这个包下还有更多种类的数据可用,这是自己硬编数据的一个很好的替代品,当项目变得更复杂时,自己硬编数据是很难替换的。
faker包地址:https://pub.dev/packages/faker/example
3.当API返回的数据结构复杂,你需要快速构建model?
虽然我在2018年已经分享过这篇解析复杂JSON的文章,在今天它仍然非常流行。
https://medium.com/flutter-community/parsing-complex-json-in-flutter-747c46655f51
值得一提的是,这篇文章是对Dart解析json的一个很好的理论回顾,但我不建议在构建实际复杂项目时进行手动解析。
为什么不建议?
.手动操作肯定要花很长时间。
.而且你更容易犯错误。
我更建议使用转换器工具或解析器,与手动解析相比,它只需几秒钟就能完成。
当涉及到JSON序列化时,你可以在Flutter文档中找到一些推荐的方法。
当然,推荐之一是代码生成库,它将为您生成编码样板。但这仍然需要一些初始设置,而我并不喜欢。
所以,我的首选工具一直是quicktype.io。一群开源开发者维护的在线工具。
只需进入网站,选择Dart作为输出语言。
将JSON粘贴到左侧,Dart model类和JSON序列化逻辑将很快在右侧创建。
添加这个类到你的flutter项目,你就可以使用了。
4. 从一个运行着的模拟器/设备预览你的应用程序
作为一名Android开发人员,仅仅为不同的屏幕大小创建xml就需要花费好几天的时间,因为Android设备有不同的形状和大小,而且重要的是你需要让你的应用程序在不同的设备上表现一致。iOS开发人员的情况也没有什么不同,苹果公司的iPhone屏幕大小不一。有时,我们还必须支持平板电脑或iPad设备。
这是否意味着,我需要下载大量的模拟器或为我的团队购买不同的手机,以便在不同的设备上测试我们的应用的UI ?
去年,在Flutter interactive 2019, Zoey Fan和Chris Sells谈到了Flutter Octopus,在那里你可以同时在多个平台和设备调试你的应用程序。
这对于观察你的应用在不同设备上的性能是很有用的。但是你真的会设置这么多设备仅仅用来来检查UI的响应性吗?
我不这么想
来挽救我们的的是Alois Daniel的Flutter Device Preview。 超好用的工具,可让您从单个运行的模拟器/设备上预览不同大小的设备中的应用程序。
轻松预览在不同的屏幕大小和平台的应用程序,从普通的手机大小到平板电脑,甚至手表屏幕大小。这是检查你的应用程序有没有溢出的好方法。不仅如此,还有其他很酷的功能
★改变你的应用程序的方向,并预览你的应用程序在不同方向上的响应能力。
★更新配置,如文本缩放因子,应用的主题,地区
★能够进行截图,便于你分享给你的团队。
所有这些,不影响应用程序的状态!
device_preview 包地址:https://pub.dev/packages/device_preview
5.使用测试版本学习,使用稳定版本工作
如果你使用Flutter中构建应用程序,你很有可能使用稳定的Flutter版本来开发和部署你的应用程序。谁会冒险在一个实验性的flutter版本上开发一个客户项目,对吗?
但是,你是一个爱尝试的的开发人员,你在你的客户或公司项目之外创建项目,你很想尝试新的beta版本,并尝试使用新特性。
但这就意味着,卸载当前的稳定版,再安装测试版,又要花费大量的时间去下载新版本的资源。
而当你重新在客户项目上工作时,你将不得不卸载测试版,并重新安装稳定版。
无奈
所以,另一个来拯救你的工具 — Flutter Version Manager by Leo Farias.
您可以使用这个工具来管理多个flutter版本,而不必每次在你切换的时候下载这些版本。这只是一个一次性的设置,你一次下载所有的版本像这样-
fvm install beta
或者指定的版本
fvm install <version>
只需一条命令就可以在不同版本之间切换,就像这样
fvm use stable
你可以为你的每个项目指定一个flutter版本。
cd Documents/FlutterProjects/ExperimentalProject fvm use beta
or
cd Documents/FlutterProjects/ClientProject fvm use stable
在你安装fvm之后唯一改变的是你所有的命令都会稍微修改一下。
就像 flutter doctor
, 变成fvm flutter doctor
这是很容易记住的。
FVM包地址:https://pub.dev/packages/fvm
PS:
此篇文章为medium翻译,原文地址
文中的pub包的示例在译者的github上,github地址https://github.com/jack0-0wu/flutter_demo

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
鸿蒙构建系统——gn官方FAQ翻译,以及gn官方文档分享
GN FAQ 翻译 (PS:花了将近半个小时,把GN的官方FAQ翻译了一遍,有错漏之处欢迎大家指正。) GN 的文档在哪里? GN有大量的内置的帮助文档,所以你可以运行gn help命令查阅,但是你同样可以在“参考页面”(PS:附件文档包中的gn-reference.pdf)查阅全部帮助文档。你同样可以查阅“快速入门指南”(PS:附件文档包中的gn-quick_start.pdf)和“语言和操作细节”(PS:附件文档包中的gn-language.pdf)。 我可以生成XCode或者Visual Studio项目吗? 你可以用一次构建(PS: gn是两阶段构建的工具)为XCode,Visual Studio,QTCreator和Eclipse生成带有文件列表和目标的骨架(或包装)项目,但是使用 Ninja执行实际的构建(PS:第二次构建)。你不能像使用GYP cloud那样生成真的看起来和这些工具直接创建的一样的项目。 了解详细内容,请运行gn help gen。 我如何生成一般的构建变种(build variants)? 在GN中,参数在构建目录中,而不是在全局环境中。要编辑你的...
- 下一篇
搭建本机和局域网yum源
背景 搭建本地yum源大概有下面三种情况: ISO镜像搭建本机使用的yum仓库 ISO镜像搭建局域网使用的yum仓库 第三方镜像搭建局域网使用的yum仓库 不管怎样,核心有两点:yum包仓库搭建、repo配置url。 另外,由于包受限于选择的仓库来源,故包的版本取决于选择的仓库,极有可能不是最新版、或者不是自己想要的版本。比如ansible在本次所选择的epel源版本是2.7.2,这是老版本 [root@node1 yum.repos.d]#yum list|grep ansible ansible.noarch 2.7.2-1.el7 @epel ansible.noarch 2.9.15-1.el7 epel ansible-doc.noarch 2.9.15-1.el7 epel ansible-inventory-grapher.noarch 2.4.4-1.el7 epel ansible-lint.noarch 3.5.1-1.el7 epel ansible-openstack-modules.noarch 0-20140902git79d751a.el7 epel an...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- 设置Eclipse缩进为4个空格,增强代码规范