全文共2302字,预计学习时长6分钟
最近,笔者看到有很多文章把Flutter捧为“下一个流量”,一些人甚至详细解释了Flutter将如何取代ReactNative成为领先的跨平台技术。但在笔者看来,它不会火。关于这个新技术,有以下几个关键的问题。
这是非自然反应
讨论跨平台技术就必须要提到React Native。React Native很受欢迎,很多人相信JavaScript高级开发人员可以创建一流的应用程序。实际上,他们不能。
很多公司拥有JavaScript开发人员,他们会告诉管理层:“是的,我们只用一半的时间就能做到。”但正如前面指出的,他们做不到。原因在于,当你通过了学习曲线后,可以快速启动并运行应用程序的80%,而实际花费的80%的时间将用于调整应用程序以使其在每个独立平台上正确运行。
这是非本地的
Flutter的Skia渲染引擎确保你的应用程序只模仿本地的外观和感觉。它可以编译为本地代码,但它没有使用本地按钮、字段、切换、滚动条、表视图或其他接口或导航元素。苹果和谷歌几乎在每个版本中都对这些界面元素进行了调整和更新。因此,你的应用程序将总是落后。
此外,如果iOS的Flutter中出现一个漏洞,你将不得不等待谷歌来修复。只要有Flutter,iOS就是一个二等公民。
你仍然需要进行两次多数应用程序编写
正如很多人所指出的,Android同时提供Cupertino和Material widgets。这很酷,但它基本上意味着如果你希望你的应用程序看起来是本地的(顺便说一下,这是响应本地允许的),就必须使用匹配工作的正确小部件。这可能意味着要将接口的部分编写两次。
为了维护平台的外观和感觉(在标签栏内导航,而不是在导航栏内的标签栏)你可能还得针对每个平台相应地调整你的应用程序。没错,你可以重用业务逻辑,但这不能完全弥补必须编写、测试和调试用户界面问题以及在两个平台上出现的问题。
支持颇少
虽然网上支持Flutter的声音有略微上升的趋势,但它远没有达到iOS或Android上本地应用开发的支持水平。
需要有关Swift、Java、Kotlin或者Cocoa的文章、书籍、视频和课程?还有很多这样的人。需要帮助解决栈溢出?几乎所有你能想到要问的问题都已经被问过并得到了回答。想通过Flutter解决?结果不尽如人意。
有一条评论强调了这一点:但是单是支持问题就很糟糕,尤其是在Android上(对Windows的依赖程度堪比90年代中期和00年代早期的“DLL地狱”)。
Flutter的寿命有待确认
众所周知,谷歌的技术时好时坏。谷歌曾经认为Flutter没有回报,像一个烫手山芋。谷歌推动Flutter,但同时也推动了在Kotlin上编写Jetpack,甚至Kotlin本地通用模块以支持跨平台。
更不用说Apple还在推进他们下一代声明式开发技术的版本:SwiftUI。虽然SwiftUI不允许开发Android应用,但它让开发者可以在所有苹果平台上使用自己的技能,包括iOS、ipadOS、macOS、watchOS和tvOS。
如果这两种技术都能完成预期的任务,并且都显著地减少了开发本地应用程序的时间,那么Flutter还有什么优势呢?
注意语言
Flutter最大的缺点之一是它的实现语言——Dart。
如果你在运行谷歌的web或后端托管环境,Dart也是一种可以使用的语言。这意味着,如果你为了Flutter花时间学习Dart,只有一个好处:你能够使用Flutter。也就是说,如果想成为一名手机开发人员,可能会学习Swift或Kotlin这样的现代语言,而且这两种语言实际上都有很好的就业市场。而Dart并非如此。
此外,Dart缺乏市场渗透意味着如果团队中需要更多Dart开发人员,可能找不到所需人才,这就意味着必须自己栽培人才。最后,在某些情况下,你可能会遇到框架的限制,因此需要下拉框来进行某种本地开发。在这种情况下,你仍然需要学习Swift和Kotlin。
客户不需要它
笔者曾多次将Flutter作为一种可能的解决方案推荐给客户,但客户拒绝了——尤其是喜欢尝试使用内部的JavaScript开发人员。
底线:Flutter是一种利基技术
以上所有可能会让你觉得Flutter不是项目的最佳选择。但也没你想象得那么糟糕,你只是需要认识到它的局限性。
在笔者看来,Flutter最适合一个小型内部开发团队,他们需要快速创建一个在外观和设计上基本上不是原生的概念验证应用程序。
举一个儿童游戏或应用程序的例子,它的图形是独特的,而且外观是非本地的。在这种情况下,如果Flutter没有完全模仿iOS和Android,那就无关紧要了。它还可以让你摆脱前文提到的两次编写接口挂钩。对了,还需要一个不介意学习全新平台和语言的团队。
Flutter是一项很酷的技术,它并不会像很多人吹捧的那样会火起来,但也有其价值所在。
留言点赞关注
我们一起分享AI学习与发展的干货
如转载,请后台留言,遵守转载规范