浅谈:谁将会动那些抵制学习还装懂的人的蛋糕 开发环境现状与为什么选择Flutter
我本从不屑于写这种技术外的技术文章,但是今天刷某应用优点上头,想发唯一一篇。这篇文章可能会得罪一些就喜欢地址学新架构的,以及还不了解就开始起哄人。在某金社区有一个耸人听闻的标题:
紧接着一些神评接踵而至:
但是事实如此吗?------恐怕并不是。
我想要澄清一点,我并不是想要制造你们的焦虑,而是希望你们能够看清楚现实。我从评论区的反馈中看到,有些人似乎对学习新事物抱有抵触情绪,甚至选择散播不实之言。
是不是真的未大量使用Flutter------先看一些事实
在过去的几年里,即使是国内的大型企业,也有许多新项目选择使用Flutter。那些认为大厂不会使用或者不会向Flutter迁移的观点,其实是一种误解。事实上,无论是在国内还是国外,Flutter的发展趋势都非常明显。
在国内,尽管我们在技术更新上可能稍微滞后,但这并不影响Flutter的普及。例如,字节跳动的抖音火山版、学浪、今日头条、西瓜视频、皮皮虾等众多应用都已经使用或者正在迁移到 Flutter 或者改为 Flutter+Native。阿里巴巴的 aliflutter 组织也开发了一个名为 hummer 的引擎。阿里的夸克、1688、淘宝特价版(陶特)、闲鱼等应用都是基于Flutter构建的,盒马、优酷、飞猪等也都开始使用Flutter。美团等公司也已经建立了自己的Flutter工程化体系,并且在各自的业务场景中得到了应用。腾讯也在多个App上进行了Flutter的应用尝试,并在Flutter渲染能力服务小程序的场景下做了很多探索。
HarmonyOS next 来了,还不用跨段吗?
想必今年(2023)的发布会大家都看过了。华为在最近的发布会后,一些曾今认为鸿蒙将持续使用AOSP的"大厂" 以高达四到六万月薪招聘鸿蒙开发者,以和提前布局鸿蒙的"大厂" 抢鸿蒙派发人才。
但是对于中小企业而言,手里如果没有足够的子弹,HarmonyOS next 到来又意味着什么呢?
如果明年初鸿蒙next发布,那些仍然停留在Native的开发者将会面临企业增加成本的问题。那些自称为"高级工程师",但只愿意停留在Native的人,可能会面临被企业替换的风险。
React Native 表现如何
国内有些知名企业自己的跨段框架在移动端上使用的都是React Native。 React Native和Flutter都是非常流行的跨平台移动应用开发框架,但它们在设计理念、性能、开发体验等方面存在一些差异。对比而言:
- 性能 :Flutter在性能上具有绝对优势。Flutter直接与底层C++引擎通信,采用自绘UI,因此性能更接近原生应用。而 React Native 则通过 JavaScript桥接器 与原生模块通信,这可能导致一些性能问题,虽然名字带有 Native,仅仅是将web 中的组件替换未 Native 组件而已。
- UI一致性:Flutter使用自己的渲染引擎和widget库来创建UI,这意味着无论在哪个平台上,Flutter应用的UI看起来都是一致的。而React Native则依赖于原生组件来渲染UI,这可能导致在不同平台上的UI不一致。
- 开发体验:Flutter提供了热重载功能,这使得开发者可以在不重启应用的情况下看到他们的更改,这大大提高了开发效率。虽然React Native也提供了热重载功能,但Flutter的热重载更稳定,更少出现问题。
- 语言:Flutter使用Dart语言,这是一种相对较新的语言,可能需要一些学习成本。但Dart的语法清晰,易于学习,特别是对于有Java和C#背景的开发者。而React Native使用JavaScript,这是一种非常流行的语言,但其动态类型系统可能会导致一些难以发现的错误。
另外,对于新的系统,React Native的表现如何还是一个未知数。而且,即使是目前,在iOS和Android上,其性能也无法与 Flutter相比。个别人士用一种情绪化、并带有挑逗意味的语气,发表对 Flutter 的性能问题进行了一些无根据的批评,却说不出具体内容。可以肯定,这些人大多数并没有深入了解,也没有相关的实践经验。实际上,遇到问题的开发者大多都在积极寻找解决方案,因为目前看来,除了Flutter,似乎没有更好的选择。
Flutter 似乎是当前的最佳解
在开发鸿蒙的官方仓库下,我们可以看到Flutter的更新非常频繁。这并不难理解,因为对于鸿蒙来说,新推出的arcUI虽然很好,但是在海外,Flutter已经有500万的开发者,并且在3.10版本后,许多方案已经相当成熟。如果想要在短期内推广生态系统,必须适配Flutter,让海外的开发者也愿意加入。
现在已经是2023年底,我们应该看清楚现实,而不是被一些耸人听闻的标题所迷惑。今年华为在发布会后,已经明确表示将弃用AOSP,不再兼容安卓。在这种情况下,除非是有历史原因,否则新项目还选择原生开发,就等于是企业在增加自己的成本。如果企业不想浪费资金,那么明年就需要做出改变。