传统的原生App开发模式,有iOS和安卓两大系统,须要各自语言开发各自App。css
优势:性能和体验都是最好。
缺点:开发和发布成本高, 维持多个版本的更新升级比较麻烦,用户的安装门槛也高html
移动端的网站, h5
开发和发布成本最低, 性能和体验较差,受到浏览器处理能力的限制api
混合模式移动应用,介于Web App、Native App这两之间App开发技术, 兼具“Native App良好交互体验的优点”和“Web App跨平台开发的优点”浏览器
原理: 由Native经过JSBridge
等方法提供统一的API,用html,css实现界面,JS写逻辑调用API,最终页面在Webview
中显示,这种模式下,Android、iOS的API通常有一致性,HybridApp因此有跨平台
效果app
开发者能够像开发WebApp同样开发app的视觉UI,当须要使用原生功能(如摄像头,陀螺仪等功能)时,只须要调用官方的API就能够实现Native的效果。至于JS和Native的通讯,经常使用的有URL监听
和Hybrid厂商使用的JSBridge通讯
,二者原理相近。工具
Hybird App 的常见跨平台开发工具备PhoneGap,Ionic, 国内有AppCan布局
缺点:Hybird严重受限于WebView的解析渲染效率,须要原生配合。性能
JSBridge调用方式开发工具
Facebook
发现Hybrid存在不少缺陷和不足,而后本身开发了一套RN, 使用JSX写原生界面,js经过JSBridge
调用原生API渲染UI交互通讯
。
支持flexBox布局, 采用DOM 结构;flex
优势:效率体验接近Native App,发布和开发成本低于Native App。
缺点:新东西,更新迭代快,api后期同早期变化很大,须要踩坑。。
阿里开发团队在RN的成功案例上,设计的一套开发模式,2016年4月正式开源,并在v2.0版本官方支持Vue.js优势:单页开发模式效率极高,热更新发包体积小,而且跨平台性强。缺点:同RN, 且社区没有RN活跃,已捐献给 Apache 基金会孵化管理。。。奔溃。。。