2022年了,该如何选择跨端技术方案呢?
伴随着移动互联网的高速发展,目前市面上“端”的形态多种多样,Web、App 、车载、微信小程序等各种端大行其道,同一个业务需求往往又需要在多端上去实现,针对不同端去去编写多套代码的成本显然非常高。为了解决多端独立开发的问题,跨平台技术便应运而生,各大互联网公司为此都投入大量人力,于是出现了各种跨平台技术框架。作为代码多端运行需求的开发对于跨端框架多少都会产生一些疑惑:这些框架都有什么优缺点?到底应
伴随着移动互联网的高速发展,目前市面上“端”的形态多种多样,Web、App 、车载、微信小程序等各种端大行其道,同一个业务需求往往又需要在多端上去实现,针对不同端去去编写多套代码的成本显然非常高。
为了解决多端独立开发的问题,跨平台技术便应运而生,各大互联网公司为此都投入大量人力,于是出现了各种跨平台技术框架。作为代码多端运行需求的开发对于跨端框架多少都会产生一些疑惑:这些框架都有什么优缺点?到底应该用哪个?
本文分享一下几个主要跨端方案:React Native 、Weex、Taro、Flutter、Finclip
React Native
React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的UI框架 React 在原生移动应用平台的衍生产物,目前支持iOS和安卓两大平台。RN使用Javascript语言,类似于HTML的JSX,以及CSS来开发移动应用,因此熟悉Web前端开发的技术人员只需很少的学习就可以进入移动应用开发领域。
主要特性:
1、原生的iOS组件
通过React Native,开发者可以使用UITabBar、UINavigationController等标准的iOS平台组件,让应用界面在其他平台上亦能保持始终如一的外观、风格。
2、触摸处理
React Native引入了一个类似于iOS上Responder Chain响应链事件处理机制的响应体系,并基于此为开发者提供了诸如TouchableHighlight等更高级的组件。
3、异步执行
JavaScript应用代码和原生平台之间所有的操作都采用异步执行模式,原生模块使用额外线程,开发者可以解码主线程图像、后台保存至磁盘、无须顾忌UI等诸多因素直接度量文本设计布局。
Weex
Weex 是阿里巴巴开源的一套构建高性能,以 web 的开发体验构建高性能、可扩展的 native 应用。。在 2016 年阿里双十一中,Weex 在阿里双十一会场中的覆盖率接近 99%,页面数量接近2000,覆盖了包括主会场、分会场、分分会场、人群会场在内几乎所有的阿里双十一会场业务。阿里双十一主会场秒开率97%,全部会场页面达到 93%。
特点:
1. 一次编写,三端(Android、iOS、前端)运行
2. 页面的开发目前支持Rax和Vue
3. 支持 Native 扩展
4. UI 的绘制通过 native 的组件,JavaScript 逻辑在 JS 引擎里运行,两者通过 JavaScriptCore 通信。
5. 可以在chrome中调试JS代码,weex支持在chrome中预览页面dom节点 6. 异步:weex只支持callback
Flutter
Flutter是谷歌的移动UI框架[2],可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。它也是构建未来的Google Fuchsia应用的主要方式。
前端对于 Flutter 的热忱度之高一度让人有点惊讶,事实上在 Flutter 社区内见到的客户端开发者远多于前端开发,不过前端对于跨端解决方案确实有着天然的渴求。
优点:
1、跨平台;
2、Dart语言简单易学;
3、性能强大,流畅,混合开发中,最接近原生开发的框架;
4、极大降低了开发成本。原来需要招一个iOS、一个安卓,用了flutter后,只需要招一个flutter人员就够了;
缺点:
1、开发工具版本升级后,修改量大;
2、 Widget的类型难以选择,糟糕的UI控件API;
3、原生集成第三方SDK后,兼容性适配是个令人头痛的问题;
4、Dart 语言的生态小,精通成本比较高。
5、代码可读性较差(嵌套地狱),对代码质量和管理要求较高;
简短版:flutter是个性能强大的框架,但是坑多。
Finclip
Finclip是凡泰极客研发的一套小程序容器技术,也可以说其实就是小程序SDK,可以兼容通过 vue 或 react 导出的小程序代码。
与Flutter、Reactive-Native等跨端语言不同的是,Finclip严格意义上讲是一项容器技术。与上述的跨端技术不仅不冲突,还可以完美融合。不管是通过Flutter、Taro、 kbone等开发出来的小程序均可在FinClip当中运行。
这种小程序容器技术也带来了许多好处:
- 1、方便多个小程序页面之间的数据共享和交互。在小程序的生命周期中具有相同的上下文可以为具备原生应用程序开发背景的开发人员提供熟悉的编码体验;
- 2、Service 和 View 的分离和并行实现可以防止JS 执行影响或减慢页面渲染,这有助于提高渲染性能;
- 3、因为 JS 在Service 层执行,所以JS 里面操作的DOM 将不会View 层产生影响,所以小程序不能操作 DOM 结构的,这也使得小程序的性能比传统的H5 更好。
更多推荐


所有评论(0)