跨平台技术演进
跨平台好处颇多,但挑战也不少,主要集中在以下四个方面:
. 研发效率
-
工具支持程度:补全、提示、构建管理等
-
Debug是否方便,错误日志是否详细
-
文档完备、项目活跃
-
隐藏平台差异,如React Native需要大量桥接工作
-
开发语言生态,js生态庞大,开发者众,Dart则名不见经传
-
等等
动态化
-
iOS禁止,但国内平台普遍需要
多端一致性
-
Web方案无法还原体验
性能
-
Web方案UI绘制效率低,网络流量消耗高
-
游戏引擎耗电严重,不能应用在普通应用开发中
-
SDK引入导致的安装包增量
无论哪种跨平台方案,都要回答两个问题:
-
UI如何绘制
-
逻辑(包括用户交互的逻辑和与宿主系统通讯的逻辑)如何响应
Hybrid给出的答案是webview+js
React Native给出的是VirtualDOM转Native组件+js
Flutter给出的答案是Skia+Dart