作为一个有10年ios和android双端原生开发的码农来说,uni-app 和原生开发是有很大差别的,至少在性能和需求覆盖度上会差很多。uin-app 框架使用的其实是 cordova 的进阶版,也就是把 web 代码打包到本地,本地实质上还是通过 WebView 运行,那性能的瓶颈不言而喻。

     当然要承认一点,uniapp相对于普通的项目来说,一套代码同时生成ios,Android,h5,微信小程序,百度小程序,头条小程序等等。确实能省下不少成本。但是优势也是劣势:

      1、真正要实现一套代码多平台,对兼容性来说是一个巨大的坑。99%的的开发者能实现 小程序+app+h5 能兼容就非常不错了,多端跨平台实现难度大虽然是多端了,但是代码写法实现上也是需要去考虑样式的,总之工作量还是有的,而且这种写法考虑兼容问题是特别特别多的。    

      2、很多组件插件的不成熟会导致很多坑,这也是个循序渐进的过程是没有办法的,就像我们一颗优雅草科技开发的几个插件也是频频需要更新,没办法需要考虑的问题太多,但是没有关系啊,几百万的开发者一起爬坑。

      3、uniapp 虽然吹着扩展性强,能采用原生插件,本人开发过几套原生插件,或者是混合开发,这种能力,没有原生开发功底的人,想都不要想。而且uniapp的sdk的坑,说多少就有多少,如果想要升级sdk,,升级功能,想一想就怕,让原有的项目编译通过,至少能整你一天。尤其是在ios的原生开发上面,更加坑。

      4、跟随uniapp4年多了,发现再也不是为了技术而技术的公司,也不是为了做专研开发工具,反而是一个捞钱的公司。集成了很多附加功能,什么广告,什么云开发,甚至打包都限制你次数,之前是免费,再后台一个账号一个app一天6次。最后变成 了一个账号一天3次,想更多就得要出钱,也可以离线打包,但是对开发人员的成本和能力又提升了不少。

      如果只是开发微信小程序,建议用uniapp开发,他比原生的开发,方便了很多,小程序原生开发有不少槽点:原生wxml开发对Node、预编译器、webpack支持不好,影响开发效率和工程构建流程。所以大公司都会用框架开发 微信定义的这套语法,wxml、wxs,以及wx:if等语法,私有化太强。不如正经学vue,学会了全端通用,而不是只为微信小程序vue生态里有太多周边工具,可以提高开发效率,比如ide、校验器、三方库。。。而微信的开发者工具和专业编辑器相比实在不好用,个性化设置也非常少。

      如果是开发app,建议用原生开发,或者用相对坑的 flutter,说到 flutter,先看一下什么是flutter。

     1,高性能

      最贴近原生APP的就是flutter了,编译的程序可达到60bps的高性能。

     2,一套代码双端发布

        只需要写一套代码即可发布ios和Android,这点也是混合开发通用优势。

     3,开发难度极高

         不熟悉dart语言,不熟悉原生开发,不深度学习flutter,什么?入门?????算了算了,版本,卖出之前客户想着自己维护,卖出去后客户根本维护不了,最后迫不得已宁愿换成纯原生都没办法维护。

    4,原生sdk生态未成形

        我们可以去很多技术社区看,目前flutter的原生sdk生态完全是摸索状态,而且插件开发以后是收费还是免费,如果没有大量的开发者能获利去开发,估计flutter整体的推动比uniapp还是太远了,毕竟光让马儿跑不给马儿吃饭可行?


      未完,有空再写吧

发表评论 已发布 1

还可以输入 800 个字
 
 

网友

424

2年前 回复

评论 打印