当初跨平台开发不是新鲜事了,各个跨平台框架都曾经百花齐放,各有千秋。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 嘛~~ 我只能说您悠着点,有勇气的能够试试。
Electron(VScode 的技术栈 桌面开发首选)
它是基于 BS 开发电脑桌面的框架,赫赫有名的 VScode 就是用它开发的(当然是微软团队开发的),当初曾经成为前端人员开发桌面利用的首选没有之一。
最初大家也能够关注 滴滴和腾讯新出的跨平台框架 下期讲一讲。