『CSDN』不用掉一根头发!用 Flutter + Dart 快速构建一款绝美移动 App( 六 )


『CSDN』不用掉一根头发!用 Flutter + Dart 快速构建一款绝美移动 App
本文插图

『CSDN』不用掉一根头发!用 Flutter + Dart 快速构建一款绝美移动 App
本文插图
图17-18:reptileObject.dart - TextFormField的责任非常少 , 只需要告诉系统用户需要输入一个日期 , 然后显示该动作的结果即可 。 我们定义了一个onTap处理函数 , 来拦截针对控件的交互 , 然后显示系统的datepicker 。 由于这是一个异步的动作(用户可以花很长时间来选择日期) , 因此整个方法必须标记为异步 。
验证——使用errorColor 现在表单已经完成了 , 我们需要提供一些基本的数据验证 。 规则非常简单:每个表单控件有一个“validator”属性 , 它接受一个函数 , 函数的输入就是值 , 输出是一个字符串 。 如果输出非空 , 则输出的内容就表示验证错误消息 , 显示在适当的区域 。 图19演示了一个组合验证(两个条件、两条消息)的简单示例 。
『CSDN』不用掉一根头发!用 Flutter + Dart 快速构建一款绝美移动 App
本文插图
图19:简单的验证 - 如果Validations.required返回错误消息 , 则返回该消息 。 否则检查输入是否为有效的邮件地址 。 如果不是 , 则返回自定义的错误消息 。到这里一切都很顺利 , 但如果我们需要进行异步验证(比如检查用户名是否已存在)该怎么办?嗯……很难 。 Flutter不支持在验证中使用Future<> , 而且应该永远不会支持 , 据说这样会破坏同步验证 , 而且由于这些原因(https://github.com/flutter/flutter/issues/9688)混合两种验证方式并不是很好的UI实践 。即使接受这个现实 , 我们也会遇到必须进行服务器端验证的情况 , 那么唯一的选择就是将海量的数据加载到设备上 。 不过幸运的是 , 有一个广为人知的非常简单的技巧 。 只需在验证器中执行调用然后切换一个局部标志 。 如果标志被设置 , 则不显示任何验证信息 。 当验证结束后将验证结果保存到某个局部变量中 , 然后切换该标志 , 然后手动触发表单的验证 。 这样 , 第一次验证触发时不会显示任何信息(或者可以显示“请稍候……”表示动作正在执行) , 第二次验证将验证信息改成动作的结果(需要覆盖“请稍候……”) 。因此 , 尽管我们可以这样进行异步验证 , 但还是希望SDK能提供支持 。 这样可行 , 但应该更干净一些 。不管如何 , 现在应用程序可以运行了 , 而且开发这个程序根本没有花太多时间 。 我们考虑了实现商业应用的绝大多数基本问题 , 而且并没有什么太难的地方 。 所以可以认为这个应用程序是成功的 。 我们现在可以去掉那个反面教材 , 清理下代码 , 与后台结合 , 然后在收到客户反馈后重新修改 。
『CSDN』不用掉一根头发!用 Flutter + Dart 快速构建一款绝美移动 App
本文插图

『CSDN』不用掉一根头发!用 Flutter + Dart 快速构建一款绝美移动 App
本文插图

『CSDN』不用掉一根头发!用 Flutter + Dart 快速构建一款绝美移动 App
本文插图
[图] 政策主题页面
最后的感想 那么 , 我们应该使用Flutter来开发移动应用吗?我认为需要考虑几个问题才能做出判断 , 不同的人可能会得出不同结果 。如果你是第一次开发此类移动应用 , 我会推荐你使用 。 Flutter的学习曲线非常平缓 , 也不需要任何前提知识 。 通过教程和各种文档可以很容易地判断哪些场景下应该使用什么 , 而采用的工具完全可以自行决定 。 在学习一个存在了许多年的框架时 , 一些太过明显的实践人们就不会再谈起 , 导致这些实践很难学到 。 由于Flutter相对比较新 , 因此没有什么显而易见的问题 , 因此也没有那些被埋在各种新功能下的人尽皆知的技巧 。 相反 , 对于经验丰富的移动开发者 , 对待Flutter的态度应该与其他新技术一样 。 在创建有很多功能的高级应用时 , 如果你对某个技术有经验 , 那么应用程序越大 , 该技术的优势就越大 。 但是 , 如果你要开发一个很小的应用 , 那么Flutter是快速开发中的无价之宝 。Flutter的社区依然在成长 。 社区还不是很大 , 但也不是太小 。 关于这一点大家的意见可能不一样 , 但我认为当前的社区大小已经足够支持小型到中型的开发 。 用户基础越大 , 边缘情况就被研究得越透彻 , 也就越容易找到帮助 , 所以只要社区依然在稳健成长 , 对大型项目的支持也会越来越完备 , 风险也会越来越小 。现在有许多Flutter开发的应用 , 因此已经不是小众框架了 。 从官方网站上可以看到 , 不仅Google在用 , 许多大牌公司也在用 。 这表明Flutter的技术支持计划在向好的方向发展 , 因此值得一试 。 考虑到该技术依然很新 , 因此这些公司很可能需要在推出应用程序之前进行一些研究 , 但研究之后依然选择了Flutter , 所以证明Flutter可能已没有太大风险 。 只要有足够的时间 , Flutter应该能够成为开发移动应用的首选 。众所周知 , 市场变化很快 , 但这并不能阻止我们探索新事物 。 而且毕竟看来Flutter值得我们去尝试 。原文链接:https://altkomsoftware.pl/blog/flutter-dart-quickly-build-mobile-app-without-losing-much-hair/本文为CSDN翻译文章 , 转载请注明出处 。 ?


推荐阅读