目前情况
自从移动系统安卓和 iOS 流行起来之后,各大企业在 PC 端,web 网页之外,又多了两个需要支持的平台,开发一项新功能,需要考虑不同的平台特性,以及开发成本。每个平台的架构不同,设计规范不同,最终做出的效果也有差异。基于这些情况,跨端技术逐渐成为各大企业技术关注的方向。
跨端的本质需求是降本增效,简单来说就是追求性价比,在开发成本和产品体验之间取得最优解。目标是一份代码,能够运行在多个平台,并且保持多端体验统一。想象的很美好,但是目前现实是没有一套整合的方案,每个厂商都需要推广自己的平台,建立自己的护城河,无法推动一套统一的技术标准,做为开发者,我们需要根据项目的情况选择合适的技术,这个主题主要谈谈跨端技术。
目前业内主流的应用开发技术方案大致分为以下五种:
- 以 Web 为基础的 H5 Hybrid 方案,原生的 WebView 作为容器,内部用网页显示,底层使用 WebKit 渲染引擎,通过JavaScript Bridge 来和原生通信。
- 以微信小程序为代表的小程序方案,由宿主应用提供的开发框架进行开发,底层实现由宿主应用控制,WebView进行渲染。
- 将 JavaScriptCore 引擎当作虚拟机的方案,代表框架是 React Native,Weex。
- 使用非 JavaScriptCore 虚拟机的方案,代表框架是 Flutter。
- 原生框架实现,如 UIKit。