在这篇文章中,我将与您分享我对在大型、可扩展和可维护的项目中使用 Flutter 的拙见。有很多文章都在大肆宣传 Flutter。不幸的是,关于您可能遇到的问题的文章并不多。在这里你可以找到几句话反对。
为什么我不会推荐扑建设日é世界上最好的应用程序?对于 Flutter,我们将不得不在开发的各个方面更加小心。它仍然不够成熟。当然,标题是一口咬定,我认为 Flutter 总体上是一个不错的工具,但对于它所创造的东西。当上市时间是最重要的因素时,这很好,但是当您需要一个长期的、防弹的解决方案时,它就不那么好了。这也是一个非常社区驱动的解决方案,就像在所有这些情况下一样,它没有一个负责质量的所有者。
如果我们想在一个巨大的应用程序中将 Flutter 作为一个单独的模块使用,我们需要维护 Flutter 开发人员并处理 Flutter 带来的所有开销——大小、内存和启动时间。
Flutter 的优点:
- 一次构建,随处运行(Android、iOS,即将推出 Web)
- 性能接近原生
- 您可以访问一组实现 Material Design 和 iOS 风格的小部件
- 入门门槛低
- Dart 是一种简单的语言
- 应用程序看起来很漂亮
- 静态类型语言(但也可以是动态类型!)
- 热重载
- 当上市时间是关键因素时很棒
- 当你有小团队时很棒
- 非常适合 MVP
- 当您的应用程序只是一个 CRUD(创建、读取、更新和删除)时很棒
Flutter 有什么不好的地方:
-
移动中的二等公民——这不是原生的,也不是由平台团队开发的。对于 iOS,这是显而易见的,但即使在 Google,Android 和 Flutter 也是两个独立的团队。Flutter 需要赶上 Native 之后。
-
IDE 中的二等公民——它没有自己的专用 IDE,智能补全不起作用,Dart-SDK 的限制
-
它需要为每个应用程序提供自己的引擎——增加大小、内存、启动开销
-
Kotlin 和 Swift 中的原生开发人员仍有工作要做
-
当您将Dart与 Kotlin 或 Swift 进行比较时,它是一种过于简单/不成熟的语言
-
Dart 可以是一种动态类型语言,这可能非常危险!
-
静态类型不是那么静态——您可以省略返回类型,IDE 不会知道您的类型。
-
没有静态元编程)
-
麻烦的代码生成
-
有时你可以观察到UI “Janks” ——可能是因为你的代码或引擎错误
-
在性能方面你必须小心:
-
有限的WebView支持
-
有些错误是不固定的时间长
-
您必须使用社区驱动的解决方案。它们的成熟度是多种多样的,有时它们对两个平台都没有长期支持。有些插件已经死了,你非常需要它们。
-
没有直接的方法来为使用不同的环境等创建不同的风格。您需要使用变通方法。
-
缺乏成熟的JSON 序列化
-
在媒体播放的情况下不是很好
-
不太擅长使用特定平台功能
-
“苹果会拒绝我的 Flutter 应用程序吗?我们不能代表 Apple,但他们的 App Store 包含许多使用 Flutter 等框架技术构建的应用程序。” — 引自 Flutter 常见问题解答
-
我们不能将 Google 视为长期支持的保证。谷歌已经关闭了很多项目。