TypeScript|使用Flutter一年后,这是我得到的经验


TypeScript|使用Flutter一年后,这是我得到的经验文章插图
作者 | Nick Manning
译者 | 薛命灯
在这篇文章中 , 我将分享我使用 Flutter 的经验 , 以及我在整个过程中发现的所有 Flutter 的优缺点 。
在过去的一年里 , 我是如何使用 Flutter 的呢?我做了以下这些事情:

  • 使用 Flutter 重写一款已经发布到 App Store 的 iOS 应用程序 。
  • 开发了一个 Flutter 免费速成课程 , 录制 5 个多小时的教学视频内容 。
  • 使用 Flutter 开发一些小型尚未发布的应用程序 。
以下是在过去一年中 , 我通过使用 Flutter 学到的东西 。
1、Dart 易学易用与 TypeScript 或 Flow 相比 , Dart 更容易学 , 语法也更简单 。 我能够快速地进行开发 , 因为编译器提供了明确的错误消息 , 具有更少隐藏的非预期运行时错误 。 在开发中型应用程序时 , 开发人员应该拥抱强类型语言 , 因为它在加快开发速度和编写可靠代码方面起到很大作用 。
2、偶尔还要“自己动手”在采用新技术时 , 有时候需要“推出自己的”库 , 以便与第三方服务集成 。 例如 , 为了在我的应用程序中集成 Mixpanel(因为它们提供了一个免费套餐选项和一个非常简单清晰的 UI) , 我不得不开发我自己的库 pure_mixpanel() 。 这不是什么大不了的事情 , 实际上它很有趣 。
我个人在使用 scoped_model 方面有很多成功的经验 , 它很好地抽象出需要使用流的地方 , 并且很像 React 的新 Context API 。 你可以干净利落地将业务逻辑和渲染逻辑完美地分开 , 并且它非常容易学 。
3、架构和状态管理模式还不够成熟首先 , Flutter 是一项新技术 , 因此在实际应用、可信的架构模式和状态管理工具方面仍然有待发展 。 有些人会遵循“BLoC”(或“业务逻辑组件” , )模式 。 在我看来 , 它有点太过复杂了 , 而且有些复杂性是不必要的 。
还有 RxDart()和 Redux for Flutter() , 不过我还没有用过它们 , 因为它们看起来也过于复杂了 。 但是 , Android 或 React 开发者似乎有很多成功使用它们的经验 , 他们可能已经习惯使用它们了 。
我认为整个生态系统在 2019 年会更加成熟 , 因为越来越多的人正在开发越来越复杂的 Flutter 应用程序 。
4、热重载仍然很重要关于这一点没什么好说的 , 只是 Flutter 的这个特性太重要了 , 所以有必要在这里单独提及 。 它更快 , 也更可靠了 。
5、跨平台设计很难Material Design 非常棒 , 对于某些类型的 Web 应用程序和 Android 应用程序来说 , 它都是一个明智的选择 。 但对于 iOS 用户来说并不是一个好主意 , 除非它是谷歌应用程序或非常简单的东西 , iOS 用户已经习惯使用 CocoaTouch 风格的 UX 。
在基于同一个代码库开发两个平台的应用程序时 , 越来越多的人使用某种定制的自定义设计 , 并引入了常见的设计元素(例如标签栏) 。 尽管 Flutter 也提供了大量 iOS 风格的小部件 , 但为了降低代码的维护成本 , 大多数人选择定制 Flutter 的 Material Design 库 , 这实现起来非常容易 。
我想再写一篇有关这个主题的文章 , 我的建议是坚持使用 Material Design , 让那些 iOS 用户不会觉得太“像 Android”了 。 例如表单 , 使用 Material Design 的样式来装扮表单字段 , 对两种类型的用户来说都足够熟悉 。
6、使用 Flutter 实现复杂的布局其实容易我习惯使用 React、CSS Grid、Flexbox 等库来实现布局 。 Flutter 的布局方式从这些工具中获取了很多灵感 。 如果你已经熟悉这些基于 Web 的布局概念 , 那么学习 Flutter 的布局就会非常简单 。 即使不熟悉 , 学起来也很容易 。 如果你想感受一下 , 可以看一下这个视频:
此外 , Dart 和 Flutter 的 UI 逻辑在代码可读性方面表现得都非常出色 。 总的来说 , 我更喜欢自己实现布局 , 而不是使用 JSX 之类的东西 。 它让我想起了 Swift 和 iOS 中的布局逻辑是多么的简单 , 如果你是通过编程的方式实现布局的话 。
7、将会有更多端到端的应用示例虽然现在有很多与 Flutter 相关的文档、教程、社区 , 但我认为人们对小部件的关注有点过头了 。 这点是可以理解的 , 毕竟 Flutter 还很年轻 。 但是 , 最终越来越多的人不仅用 Flutter 来实现纯粹的 UI 和动画 , 而且还会用来开发更多完整的应用程序 。 我认为 , Flutter 的网站上将会有更多端到端的示例教程 。
【TypeScript|使用Flutter一年后,这是我得到的经验】