聚享导航App开发的技术选型

预备方案

做为一名前端去开发移动端,感觉还是要有些微妙的。目前已有的通用跨端开发方案有以下几种:

  1. Flutter
  2. Weex、React Native
  3. Uni-app、ApiCloud

以上介绍的每一种,我都拿出了一周时间进行开发体验。虽然网络上充斥着各种方案的对比文章,但很多时候只有自己都用过这些技术,才能有较正确的选型。这让我不禁想到,为什么那些做架构的比较抢手,最起码他们经过时间的洗礼,很多技术都有涉及,因此在面对技术选型时能根据项目的需求,综合评估出合理的开发方案。

以上5种被分为3类,Flutter可谓大热特热,无论在性能和开发体验上都没的说,确实优秀,毕竟谷歌出品。第二类是目前市面上使用较多的方案,用前端技术开发原生app,重点是能够热更新。第三类就是混合开发,基于webview渲染,uni-app有点特殊,后面会详细说明。下面是对这三类技术的综合体验总结。

体验感觉

为了能较详细的分析每种技术方案,针对每种技术都从性能、上手难度、生态三方面进行考量,结果仅供参考。

Flutter

Flutter的渲染器使用的自家的渲染引擎,性能优化到了极致,完全可以和原生媲美,其本质是提供了一个画布,不依赖系统的UI控件,可以天马星空的绘制,但涉及到系统功能的调用时需要使用插件,这点每种方案都一样。大量的的原生开发人员积极拥抱了Flutter,少部分前端人员也在积极探索Flutter。在跨端方面目前跨三端问题不大,即Android、iOS、web。

在学习成本上,对前端人员有一定难度,dart这门语言和js有相似也有很多差异,它更像是js和java的结合体。好的一点的是无论是前端开发还是原生开发,大叫都要学习新语言,可谓一视同仁了。Flutter在语法层面使用的声明式,这点对熟悉Vue或者React的人员来说问题不大,问题可能就是API太多记不住。

生态方面目前看来也是比较好的,常用的插件社区都有提供。Flutter打出的包比较大,至少20m以上,这点官方还在优化。

综合评估:性能5分 上手难度5分 生态4分

React Native

RN这项技术由于出现的较早,市场占有率是很高的。大部分使用这种技术的公司都有原生开发人员,使用较多的是他的热更新功能。在性能上同样是很优秀的,毕竟是编译成了原生代码。对于熟悉React的人员来说,学习成本也能接受。生态方面自然也是没的说,常用的功能在社区都能找到开源方案。

RN由于很多东西都是社区提供的,给人的感觉就是太分散了。我个人是比较喜欢大而全的东西,最起码核心的技术要有官方提供支持。RN的升级也是一个头疼的问题,可以说是升级一次吐血一次,总是会有莫名其妙的bug,这些bug不仅和RN的版本有关系,有时候可能是系统的问题。

综合评估:性能5分 上手难度4分 生态5分 开发体验2分(哼)

Weex

自从阿里不再维护weex后,weex基本淡出了大众的视野。虽然没有大范围的更新,但看了下GitHub还是有更新的,索性就也尝试了一下。对于熟悉vue开发的人员来说,weex学习成本也很小。性能和RN一样很优秀,但是生态就不行了,可以说没有生态。涉及到原生调用,如果公司没有原生开发人员基本玩不转,weex的开发体验还是要比RN好一些的。

综合评估:性能5分 上手难度3分 生态2分 开发体验3分

uni-app、ApiCloud

这两种一起说吧,ApiCloud、uni-app由于就是webview渲染,因此可以使用纯前端技术开发app,基本没啥学习成本,性能上自然要差一些。生态方面也还好,都提供了通过JS调用原生的方式。ApiCloud由于其封闭性,整体上不如uni-app。uni-app提供了一种nvue模式,使用weex模式渲染页面,如果使用纯nvue模式开发性能也还是不错的,如果app定制化程度不高(功能型app),nvue模式是一个不错的选择。但也有问题,就是bug很多,既不能完全使用vue的语法还有很多莫名其妙的bug,官方对于社区提出的bug回答也不是很积极。

uni-app综合评估:性能4分(nvue)、上手难度2分、生态4分、开发体验3分

ApiCloud综合评估:性能3分、上手难度2分、生态3分、开发体验3分

最终选型

由于我本身对vue比较熟悉,所以最后就选择了uni-app nvue模式开发app。如果我对react比较熟悉,我会选择RN。如果我有原生开发基础,我会毫不犹豫的选择Flutter。

没有最好的技术,只有合适的技术。

后续计划

目前的App尚处于beta版,会抽出一些时间进行优化。由于uni-app社区没有提供较好的纯nvue UI框架,时间允许的话我可能会自己开发一套。对app的要求比较高的话,我还是更推荐Flutter,时间允许的话也计划学习下。

以上,拜拜

posted @ 2020-07-06 12:19:02 浏览(147) 聚享导航

avatar