跨渠道开发优势
一套代码,多端运转
(iOS、Andriod、MacOS、Windows、Linux、Web、小程序…)。
增加事务代码的复用率,削减多个渠道适配的工作量,然后降低开发本钱
, 带来直接的经济效益
在进步事务专心度的一起,为用户提供一致的用户体会
,到达多快好省
效果。
本文首要探讨如下跨渠道计划
-
Flutter
自带烘托引擎,提供画布到达从事务逻辑到功用出现的多端高度一致的烘托体会。 -
Web开发+原生烘托
选用类Web规范进行开发,运转时把制作和烘托交由原生体系接收- React Native
- Week
-
Web开发+Web烘托
基于Web相关技能, 经过Web浏览器组件来完成界面及功用- Ionic
- 微信小程序
- Electron
-
C++
运用高功能可移植的C++言语,一次编码多端编译
来完成跨渠道开发, 适用于中心渠道是桌面端
的企业- 原生UI + C++
- QT + C++
各个跨渠道计划比照
跨渠道计划 | Flutter | Web技能+原生烘托 | Web技能+Web烘托 | C++ |
---|---|---|---|---|
功能 | 高 | 一般 | 低 | 高 |
开发功率 | 一般 | 高 | 高 | 低 |
社区生态 | 活泼 | 一般 | 活泼 | 一般 |
Flutter
Flutter是Google的移动UI框架,可以快速在iOS/Android/PC上构建高质量高功能
的原生
用户界面App。
烘托引擎依靠跨渠道的Skia
图形库来完成,Skia引擎运用Dart构建笼统的视图结构然后加工成GPU数据,交由OpenGL终究提供给GPU烘托,最大程度上确保App在不同渠道、不同设备上的体会一致性。
支持JIT(Just-in-Time,即时编译)和AOT(Ahead-of-Time,预编译), 统筹开发功率和运转功率
缺陷:
- 桌面端功用不行完善, 信任随着后面的迭代会进一步增强
Web开发+原生烘托
裁剪了Web规范
,保留了构建移动端页面必要的Web规范,运用JavaScript开发确保了快捷的前端开发体会;
抛弃了浏览器控件烘托,运用原生UI组件
代替中心的烘托引擎,仅坚持必要的基本控件烘托才能,然后使得烘托进程更加简化,也确保了良好的烘托功能
。
React Native
和Weex
是这种计划的佼佼者。
Web开发+Web烘托
运用Web开发+WebView/Chromium
加载网页
JS Bridge
(桥): H5与原生代码交互协议,将部分原生体系才能露出给H5,然后扩展H5的才能。
既有原生代码也有Web代码,因而被称为Hybrid开发模式
。因为H5代码只需求开发一次,就能一起在多个体系运转,大大降低了开发本钱。
选用了Web开发技能,社区资源丰富。
浏览器加载H5页面进程
- 加载H5页面的HTML主文档;
- 如果遇到CSS文件,浏览器另外宣布一个请求去获取;
- 遇到图片资源,浏览器也会另外宣布一个请求去获取。
- 遇到JavaScript文件,因为JavaScript代码可能会修改DOM树,因而HTML文档会挂起烘托(加载解析烘托同步)的线程,
等到JavaScript文件加载解析并执行结束
,才可以恢复HTML文档的烘托线程
。 - JavaScript代码中有用到CSS文件中的特点款式,所以堵塞,等待CSS加载结束才能恢复执行。
加载、解析和烘托
进程是耗时操作, 使得这种计划功能很差
。
原生UI + C++
运用高功能可移植的C++言语, 一次编码多端编译
来完成跨渠道开发
一次编码, 运用GCC/Clang编译成iOS/mac下的dylib
,Android/Linux下的so
,win下的dll
C++完成中心的网络+数据存储+加解密+中心事务+接口界说, 所以能做到各个渠道通用
各个渠道基于C++界说的接口开发自己的UI, 所以不存在兼容性问题
C++ 是桌面端开发最重要的言语, Windows/Linux官方言语就是C++, MacOS开发中C++也是很重要的言语
缺陷:
- 学习难度高:C++ 语法和概念相对杂乱,需求必定的学习和实践经验。
- 开发调试难度大:会出现一些渠道特有的问题,需求理解各个体系的差异性和兼容性, 并进行更多的调试和测试。
QT + C++
Qt 是跨渠道的 C++ 开发框架。提供了集成的开发环境,跨渠道开发桌面、移动和嵌入式App。开发者经过简单的 API 编写可移植的代码。
QT完成了内存办理/网络/数据/UI等功用, 屏蔽了底层的操作体系和渠道差异。完美的避免了上一套C++计划的缺陷
自绘引擎
,界面上的按钮和文本框,都是Qt引擎自己画的,确保了界面在不同操作体系上的一致性。
缺陷:
- 商业授权不太友好,开发商业运用必定要谨慎。个人开发者可以免费运用。
- 移动端兼容不太好
计划挑选总结
移动端优先
的企业, 短平快
运用React Native/小程序这种基于 Web 的计划, 寻求功能的运用Flutter
桌面端优先
的企业, 短平快
运用QT/Electron, 寻求功能和极致用户体会
的运用原生UI+C++