从本钱和商场掩盖的视点来看,跨端计划的优势是巨大的,写一次即可全渠道运行。
那么,跨端计划怎样选?Flutter 仍是 React Native?
Flutter VS React Native:生态比照
通过 Flutter 和 React Native 在 GitHub 上的基础数据比照两边生态。
Flutter 的基础数据:Watch 3.6K,Fork 19.9K,Starred 134K。
Fork 代表潜在的开发者,有近两万人重视这门语言。Star 数自不必说,证明它的受欢迎程度。挑选第三方框架时,看 Star 数也会帮助开发者下降挑选本钱。
还有一个重要方针,Issues 数量。目前一共是 5K+,已封闭 5 万+。这些数据,都阐明团队在保护 Flutter 的社区上十分用心,及时处理用户在运用过程中遇到的问题。
React Native 的基础数据:Watch 3.7K,Fork 21.6K,Starred 100K。其实从时刻周期上看,React Native 的数据是有优势的。在这个前提下,两边 Watch、Fork 分数相差无几,Star 数落后。结合时刻周期考虑,Flutter 胜出。
Issues 数量 1.9K,比较起来,Flutter 这个数值更大。首要,这或许是由于用的人多,而且触及端线多,问题必定更多;其次,Issues 不代表代码或框架有问题,也有或许是开发者在运用的时分单纯对一些设计不太了解。
所以,社区昌盛度:Flutter > React Native
Flutter VS React Native:功能 PK
从几个维度,比较 Flutter 和 React Native 对同一个项目的处理功率。
功能 PK 之 List view benchmarking
List view benchmarking,列表测试。
FPS,Native 60,RN 58,Flutter 60,基本打平,相对杂乱的视图里,刷新率差不多。
CPU,在相同保持 60 FPS 的情况下,Native 的 CPU 运用率 2.4%。
React Native 的 CPU 运用率 11.7%,是 Native 的 6 倍,阐明它冗余的作业许多。
Flutter 的 CPU 运用率是 5.4 %,差不多是 Native 的 2 倍。
内存,Native 是 58,React Native 是 139,Flutter 是 114。由于 Flutter 相当于是另外一套烘托引擎。
电量,Flutter 更优异一些。电量跟 CPU 占用成正比,React Native 仍是比较耗电的。
总归,从 List view 这一项的比较来看,Flutter 吊打 React Native。
功能 PK 之 Heavy animations test
用 Lottie 来测 Heavy animations test,看同屏有许多 AE 动画的情况下,哪方的体现更超卓。
十分意外,同频有许多 Lottie 动画情况下的 FPS,Native 是 30,是最好的;React Native 29;Flutter 9。
React Native 或许通过桥用 Native 完成,只承担了转接的使命,所以跟 Native 距离并不大。
CPU 运用率 Native 是 18.9;React Native 是 15.6;Flutter 最低 12.8。电量方面也几乎是打平。
从动画这一项来说,React Native 的体现是比 Flutter 胜出的,或许是由于 Flutter 没有针对 Lottie 这种动画场景做优化导致的。
功能 PK 之 Even heavier animations test
看两边在更杂乱的动画作用上的体现。
FPS, Native 是 58,Flutter 19,React Native 最差,只要 7。
需要留意的是,这些测试数据,是针对于去年的版别来进行的。2020 年 10 月,Flutter 发了 1.7 版别,2021 年 2.0 版别,最近发了 2.8 版别。
但咱们能够看出,Flutter 2020 年的版别,现已体现出极具潜力的一面,在优化不那么充分的情况下,功能上现已大于等于 React Native。
加上 Flutter 在社区建造方面的体现,它被国内多个大厂采用,发展得十分迅速。
从技能计划选型到技能发展途径
对跨渠道计划的 PK 本质上是一种技能计划的挑选,延申到技能发展途径的挑选也十分值得讨论。假如你要掌握一门新的技能,或者去深挖一门技能。你会怎样挑选呢?嘉宾们在节目中也给出了自己的经验共享。
一方面,在对前端的积累基础上,能够挑选偏后端一点,深化了解后端体系的架构。
另一方面,Flutter 这样的跨端方向是很好的挑选。首要针对各端去开发一套相同的界面,相同的功能,本钱是很高的。通过跨端来做,门槛大大下降。
更重要的是,Flutter 是开源的,让咱们有机会对 UI 体系的构建、内存管理、编译等进行深挖。即使咱们以后不必 Flutter 了,也能够通过它去了解一套语言是怎样构建的,程序是怎样加载的,整个树是怎样构建的,烘托引擎是怎样做的。这些都是宝藏。万变不离其宗,掌握底层原理就无所畏惧。
顺着这个思路,Rust 是一个十分好的方向。目前特别多运用 C++ 的厂商,包括微软也发布了一个公告,或许会把百分之六七十底层的 C++ 库用 Rust 从头写一遍。
关于技能选型,还有一点十分重要。你的技能选型必定要和当时做的事务有关,由于学习一个语言时,你得先有一个方针或者一个待处理的问题,然后尝试用一个新的语言和技能去处理,更有成就感也更有效。
那么,关于这个问题,你怎样看?