头图

2021了!你都用哪些跨平台框架

别把代码当饭吃

image.png
现在跨平台开发不是新鲜事了,各个跨平台框架都已经百花齐放,各有千秋。2021都有哪些跨平台框架值得推荐呢?这篇文章就不说石器时代的开平台框架了,当然不靠谱的也不说了,只说能用的

Ract Native(FaceBook出品 社区强大 JScore+原生组件渲染)

适用于:B/S技术栈程序员 react开发经验 有一定SDK集成经验
首先要说的是React Native(RN),我本人比较喜欢。程序员写react组件编译成原生组件渲染,jscore执行js程序。要学习RN你要先学会react,react是率先提出虚拟DOM概念的,后续vue等框架开始模仿,正因为虚拟DOM的概念太过强大和超前,导致它不受平台限制,从而衍生了RN,它的背后也是大厂支持facebook。说它凉了都是谣言,大家放心学习即可。它的原理是通过react的方式可开发APP,它可以把我们用JS写的组件,编译成原生组件,不是什么H5应用或是webapp。所以用户体验还是很不错的,小公司追求效率可以选择,但是RN毕竟是一个APP UI的解决方案,需要集成复杂SDK的话还需要会原生开发。目前它的生态已经非常完整完善,你不必担心你的APP太过复杂它不能实现的问题,因为它可以和原生无缝衔接配合,随时呼叫原生支援。那么它的性能如何呢?有的人对于性能问题纠结不放,实话说;它和远程肯定还是有差距的,毕竟中间多个JS层,基于jscore运行的,但是一般APP用户根本无法察觉其中的差距,没有垃圾框架只有垃圾程序员,我们完全可以用技术弥补一些性能差距,所以不必在意那些微乎其微的性能差距,强烈建议学习和使用。

适用场景:可用于中大型APP开发,跟原生开发配合,RN主要用于开发业务,而原生用于扩展赋能,需要的人才质量高,招聘难度较大,性能问题不大,介于webview和原生之间,不适合太吃性能的APP开发。

Uni-app(国产 零学习成本 社区强大 外包利器)


适用于:Vue技术栈 零学习成本 快速交付用
第二个要说的是国内很火的uniapp,编译成原生组件结合webview渲染方式,V8和jscore执行js程序。号称有370W开发者,在国内很火,它背后的公司是国内的dcloud,技术栈是基于vue的。react在国际上很火,但是在国内;不好意思vue已经是大哥了。可以说dcloud把vue玩的很透,基本可以说是国内vue用的最6的公司,uniapp的优点是能够一次编写编译APP和小程序端全覆盖,对于国内程序真的是福音,它的优势在于成本低(学习成本低、开发成本低),uniapp结合了weex的概念推出了nvue,它的原理在于能把web组件编译成远程组件,跟RN有些相似的想法。但是uniapp开源程度不够,现在选择它的都是一些小公司或是外包公司,uniapp提供了很多与原生/小程序交互的“桥”,目的在于让你无脑开发即可,我们可以轻松开发例如微信支付、蓝牙、分享、定位、推送等,而且uniapp上架商店是完全合规没有风险的,有人说它是基于webview的,性能是个问题,我本人体验了一下和亲身用过uniapp开发,认为uniapp是做过很多优化的,比我们自己套个壳子用的webview用户体验要好很多(小公司不推荐套壳开发),高频页面可以用nvue开发,效果更好,如果我们前期开发为了快速上线,完全可以选择uniapp,非常符合国内的国情,为国内程序员提供了很大的福利,vue技术栈的同学可以学习掌握。

适用场景:企业快速开发引流,适合中小型APP开发,不适用于集成三方SDK多的APP,不适合开发大型高质量高性能APP,人才好招聘,Vue基础好就行,平滑过渡。

Flutter(Google出品 性能强劲 噱头满满)


适用于:对APP质量要求高 开发人员最好是原生开发 B/S程序员不推荐(学习成本高)
第三个要说的是flutter,flutter是google推出的,开发基于dart语言,属于强类型的解释性语言,Dart之前是为了跟js抗衡出现的,但是结果可想而知,js虽然设计的有缺陷,但是也有其优势不是那么容易打败的。
如今dart在flutter打了个翻身仗,flutter自称能达到60帧,渲染也有自己的引擎,性能完全可以跟原生媲美,我也用过一段时间,推荐原生APP开发的学习,如果你是前端开发人员其实没必要涉猎,因为跟前端关系并不大了,如果非要学习可以了解一二,当然flutter开发web还是有点不成熟的,我也相信flutter不能取代web领域。flutter跟RN一样是UI的解决方案,它的开发对于前端程序员来说可能不太适应,感觉就像是在套娃,好的是它有热重载,开发效率会提成一大截,编译成安卓ios都是原生代码,中间没有中间层,是彻底脱离JS的,相当于没有中间商赚差价,因此性能什么的都是问题了,对于追求绝对品质和性能的同学可以学习,但是我个人理解flutter不会走的太远,因为它脱离了不太完美但是很普遍的JS和JS程序员。。

适用场景:因为flutter跟原生基本无异,任何场景都很适合,成本偏高,人才招聘难度最大,适合CS程序员学习,BS程序员学习成本较高。

当然跨平台的框架很多,它们三个只是代表,它们的原理无非是webview派,代表的uniapp、Cordova。第二种是编译成原生组件,通过JS作为桥的:RN、weex、uniapp(nvue),还有就是编译成原生代码,没有中间商的flutter等,根据自己的实际情况选择即可,但我要说的是,我们要能用好框架才是最重要的,好的程序员用H5 套个壳子也能做出媲美原生的APP,而有的程序员用原生也不能弥补技术的差距。因此选择自己和团队擅长的才最重要。

Taro(京东出品 react/vue技术栈都可用)

基于京东-凹凸实验室,技术栈:vue/react,对React更友好一些,对Vue的支持是后出现的,能编译成H5、小程序、APP(编译成RN代码)。Taro搞个小程序还是完全OK的,至于APP嘛~~ 我只能说您悠着点,有勇气的可以试试。

image.png

Electron(VScode的技术栈 桌面开发首选)

它是基于BS开发电脑桌面的框架,大名鼎鼎的VScode就是用它开发的(当然是微软团队开发的),现在已经成为前端人员开发桌面应用的首选没有之一。
image.png

最后大家也可以关注 滴滴和腾讯新出的跨平台框架 下期讲一讲。

阅读 357

笨鸟先飞

119 声望
14 粉丝
0 条评论
你知道吗?

笨鸟先飞

119 声望
14 粉丝
宣传栏