原生+web
类型
原生: iOS(Objective-C),安卓(Java)
web:React, Vue,H5
实现技术
iOS: JavaScriptCore+ WKWebView
安卓:JavaScript库
实现优点
- 结合方面,只需要通过相似的webview组件和相应的JavaScript库,可以实现三端统一采用相同的web组件渲染页面
- 分离方面(解耦),客户端原生与web的分离,比如遇到web技术实现不了的嵌套界面或动画效果,可以采用原生技术实现,而且将web从原声分离出来需要花费的工作量很少
- 业务功能方面,搭建好各自的框架,原生组件需要写多个版本,web只在需要的时候才使用
- 更新方面,web部分通过接口可以实现线上更新,原生部分需要重新打包安装
原生+React Native 混编
类型
原生: iOS(Objective-C),安卓(Java)
web:React,
实现技术
iOS: 原生(Objective-C)+ React Native
安卓: 原生(Java)+ React Native
实现分析
这里主要是分析 React Native 在苹果和安卓上的问题
- 结合方面,iOS和安卓均需要在原生中导入React相关库,React Native中使用的组件,会去各自平台的底层调用相应的原生组件,结合性比较紧密,因为各自原生组件并没有做到一摸一样,所以兼容性和效果是存在差异的
- 分离方面(解耦),导入了React库的项目,如果原生或React Native任何一方出现问题,代码就无法正常,或者React Native出现不能兼容两个平台的问题,就得做取舍,比如:相关库的版本降级,或只保留一方
- 业务功能方面,搭建好各自的原生框架,原生组件要写的地方很少,用React Native处理APP页面功能逻辑相关的开发,确实是很快,两个平台共用,这是在React Native版本,以及引用的第三方相关框架稳定性好的前提条件下,可以保证的
- 更新方面,React Native部分可以通过接口替换包实现线上更新,或者通过第三方热更新技术,原生部分需要重新打包安装
web
web:React, Vue,H5
实现技术
JavaScript相关的
实现分析
- 无论目前采用的哪一种语言,单只在浏览器上开发的话,都是可以的
网友评论