一,原生开发
二,跨平台开发
1,Hybrid技术(H5+原生混合开发)
原理:将APP的一部分功能通过H5来开发,即通过原生的网页加载控件来加载。
技术点:原生开发可以访问平台所有功能,而混合开发中,H5代码是运行在WebView中的。WebView实质是一个浏览器内核,其javascript依然运行在一个权限受限的沙箱中。所以H5无法实现的功能,需要原生去做。那么WebView就成了原生和JavaScript通信的桥梁。通信需要协议,协议规定了消息的格式和含义,我们把依赖于WebView的用于在JavaScript和原生之间通讯的传输协议工具称之为WebView Javascript Bridge,简称JsBridge。我们需要做的就是使用某个JsBridge(iOS :WebViewJavascriptBridge Android:JsBridge),或者自己开发一套JsBridge。
UI渲染方式:WebView渲染
性能:一般
开发效率:高
动态化:支持
框架代表:Cordova,Ionic,微信小程序
2,JavaScript开发+原生渲染
原理:使用javascript开发,通过JavascriptCore将布局信息传递给原生。原生根据布局信息使用原生控件渲染。
UI渲染方式:原生
性能:好
开发效率:中
动态化:支持
框架代表:RN,Weex, 快应用
3,自绘UI+原生
原理:通过在不同平台实现一个统一接口的渲染引擎来绘制UI,而不依赖系统的原生控件,可以做到不同平台的一致性。只解决UI的跨平台性,如涉及其他系统能力的调用,依然需要原生开发。
UI渲染方式:调用系统UI 绘制API进行绘制
性能:好
开发效率:flutter 高, QT低
动态化:默认不支持
框架代表:QT,Flutter