Flutter 毁了客户端和 Web 开发!

Google 重磅发布了专为 Web、移动和桌面而构建的 Flutter 2.0!将 Flutter 从移动开发框架扩展成可移植框架,因而开发者无需重写代码即可将应用扩展至桌面或网页。看似为了帮助Web和移动开发者,实际上不然,而本文作者认为,现在不应该再去想创建一个需要部署到所有平台的应用程序,Flutter反而毁了Web和移动开发。

以下为译文: 大家好,我是一名软件开发人员,我叫 Luke。

由于我选择了这个相当大胆的标题,为了避免误会,我要对其进行详细的解释。从技术角度来讲,Flutter 的确是一个跨平台的框架。也不止其,所有跨断技术都是非常糟糕的设计。

但是,我有点不同的看法。

从 Flutter 2.0 发布以来,我就察觉到它被炒的有点过了。但不应该再去想创建一个需要部署到所有平台的应用程序,Flutter反而毁了Web和移动开发。

请不要误会,我并不是要否定它,其实我也是 Flutter 的粉丝,亦将一如既往的拥护它。

我在日常工作中经常使用 Flutter 来开发 iOS 和 Android 应用程序。由于早前我是用 Kotlin 或者 Swift 来开发原生的应用,支持多种特性,如:扫描 / 页面识别、pin/biometric 应用程序认证、通知、firebase 统计和一些高级的用户流,现在用 Flutter 来开发应用,我对 Flutter 的优缺点的了解更加透彻。

1、六大平台

通过今年的 Flutter Engage 会议我们可知已经可以使用 Flutter 在 iOS、 Android、 Mac、 Windows、 Linux 和 Web 这六个平台中的任何一个平台上开发应用。这太棒了!但事情远没有这么简单...你的确可以在这 6 个平台上部署你的应用程序,但是说实话,我很少这么做。我很难想象一个人会在不同的平台上部署同一个应用程序,我认为应该根据不同的平台特点使用不同的设计模式。在大型设备上使用底部弹窗、应用程序条、简洁的列表就很别扭。一般来说,适合在移动设备上的组件和设计模式在桌面设备上却不合时宜,反之亦然。

我的一个非常好的朋友 Filip Hracek 在 Flutter Engage 演讲中提到“神奇的设计开发者”的相关话题,我非常赞同他的看法。我认为需要有更多的开发者真正知道他们正在做的是什么,而且不是盲目地跟从迭代面板。

Scrum Sprint 是一个可重复的固定时间框,在这个时间框内创造一个高价值的产品。-- 维基百科

强烈推荐大家观看 Filip 在 Youtube 上的相关视频片段https://www.youtube.com/watch?v=MIepaf7ks40

接下来,我们重新回到 Flutter 这个话题:

2、不应该再去想创建一个需要部署到所有平台的应用程序

你更应该去想如何将你要编写的应用程序模块化,以便在未来更好地复用这些模块。给你们举个例子:在我的公司,我们正在开发专注于用户数据的应用程序。

这就需要创建自定义和高级的调查报告,我们不希望每次添加新问题时都要编写新的窗口小部件。我们的做法是:编写一个包含所有可能的调查逻辑的模块,在许多其他项目中复用它(而不需要每次都重写一遍相似的代码)

我给你举上面这个例子的目的是提醒你在构建一个应用程序时,你更应该着重思考你要做的应用程序或整个业务的重点是什么。更应该去重点思考,它背后的业务逻辑是什么?

在计算机软件中,业务逻辑或领域建模也是程序的一部分,它对真实世界的业务规则进行编码,确定如何创建、存储和修改数据。

当你明确了领域划分,你可以将一个领域封装成独立的模块,你可以将该模块在需要开发的 Flutter 应用程序中复用。

但 Luke,这有什么好大惊小怪的吗?

对,这是一个好问题!

对于相同的业务逻辑,你可以用不同的用户流来创建多个 Flutter 应用。你可以将要开发的 Flutter 应用进行分类(如:移动应用、桌面应用和 Web应用),这将能帮助关注到不同平台的差异,对特定平台进行特定处理最终将获得更好的用户体验。

3、针对不同平台要编****写多个应用程序

虽然 Flutter 还算是一个相对比较新的技术,还主要针对小公司和个人开发者,但这不妨碍它成为一个人人皆可用的伟大工具。

我参与开发过多个企业级应用程序。根据我的经验,系统的每个部分都需要有一个清晰的工作流程。开发一个系统通常需要前端、后端等。为了节约成本,编写一个应用程序,在不同的平台运行也越发流行。为了实现这个目的,你需要雇一个团队进行专门开发。你敢想象,十几个人的团队开发同一套代码来实现所有平台的特性吗?这简直是管理层的噩梦。很可能出现:一部分开发人员开发的桌面特性与移动团队正在开发的特性相冲突的情况。

其次,应用程序包也会越来越臃肿,然而很多时候并不是每个平台都需要有一份软件包。现在,正值 Flutter 2.0 发布的时候,由于我并没有将所有的包都进行升级,还不支持 null 安全还需要手动解决依赖冲突的问题。

4、为什么 Flutter 不是一个跨平台的框架

在读了这篇文章之后,或许你能够理解为什么我会认为 Flutter 不是一个真正的跨平台框架。Flutter 是一个为我们提供了为每个平台构建应用程序所需的功能的工具。我认为,真正实现跨平台不应该只开发一个应用程序,更应该开发一组由相同的业务逻辑驱动的应用程序集合。

此外,当我们编写 Flutter 应用程序时,我们并没有跨越任何平台。我们这种所谓的跨平台,不过是用 Xamarin 或其他工具将写好的代码翻译成原生元素。

如果非要把 Flutter 和其他东西进行类比的话,那么与之相似的就是游戏引擎(如 Unity)。我们不需要专门在 Windows 或者 Mac 系统上开发对应平台的游戏。我们可以使用 Unity 编写,然后将其导出到一个特定的平台。使用 Unity 编写一个游戏然后导出到多个平台和真正的跨平台完全也是两码事。

因为每个项目都有技术债务,你应该停止抱怨,并开始重构。每次开发新功能之前都应该进行小型代码重构。但接入 Flutter 大规模的重构和重写永远不会有好结果。

5、结尾

全文都在讨论跨平台相关话题, 以上就是我认为 flutter 毁了 Web 开发的原因。很多人对这一说法很感兴趣,并热切地加入了辩论。如果你认为 flutter 并没有那么糟糕,或许你会持有不同意见 。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容