这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
随着技术发展端,有PC端(Windows、Mac) ,移动端(安卓、iOs)web端、IoT 设备(车载设备、手表)等。
目标
- 研发效率高:学习成本低、多端一致性高
- 用户体验好:稳定性高、性能体验好
- 动态化:支持动态化下发展,满足日益增长的业务需求
跨端技术对比
现在火热的React Native和Flutter。一个出自Facebook,一个出自Google。
在端上的开发,有前辈总结了一个很精辟的观点:端上的开发无外乎三件事,“数据获取”,“状态管理”,“页面渲染”。而在跨端领域的竟争,我理解是“虚拟机”,“渲染引擎”,“原生交互”,“开发环境”的竟争。
从 Flutter (自渲染方案)来看,在虚拟机上使用了 Dart VM,Dart 支持 JIT 与 AOT 两种编译模式,也就是我们所说的动态编译与静态编译。在渲染引擎上,Flutter 使用了 Skia 渲染引擎进行视图绘制,避开了不同平台上控件渲染差异。
然后再说 RN (原生渲染方案),在早期的架构上虚拟机使用的是 JSC (Javascript Core) 执行运算,这样它可以充分复用 JS 生态,吸引大量前端开发者参与。而且由于 JS 天生跨平台的特点,跨端移值 App 也顺理成章。在渲染引擎上 RN 没有直接使用 WebKit 或其它 Web 引擎,因为之前 Web 在构建复杂页面时带来的计算消耗,远比不上纯原生引擎的渲染。所以它直接复用了原生的渲染通道,这样就可以带来与原生近乎一致的体验。
小程序优化
目标:留住用户、提升转化率、提升用户体验
优化方式:启动时和运行时优化