原生开发
原生开发有以下主要优势:
可访问平台全部功能(GPS、摄像头);
速度快、性能高、可以实现复杂动画及绘制,整体用户体验好;
主要缺点:
平台特定,开发成本高;不同平台必须维护不同代码,人力成本随之变大;
内容固定,动态化弱,大多数情况下,有新功能更新时只能发版;
跨平台技术
Hybird技术--H5+原生混合开发
- WebView + JsBridge: 性能一般,开发效率高,H5 部分可动态更新
H5运行在WebView 中,WebView渲染,复杂界面会使WebView 不堪重负,权限受限制,并且要预先使用原生开发来实现JsBridge,才能访问平台API ,
React Native和Weex
-
JavaScript开发+原生渲染:原生控件渲染,性能较好
JavaScript Core:
1、为JavaScript 提供运行环境;
2、提供JavaScript 与原生应用之间通信的桥梁,作用和JsBridge一样,事实上,在iOS中,很多JsBridge的实现都是基于JavaScript Core 。将虚拟DOM映射为原生控件的过程:
1、布局消息传递; 将虚拟DOM布局信息传递给原生;
2、原生根据布局信息通过对应的原生控件渲染控件树;
Flutter
自绘UI +原生:调用系统API 渲染,性能好,接近原生开发,支持热重载可帮助开发者快速地进行测试、构建UI、添加功能并更快地修复错误。
网友评论