移动端跨平台开发

一、概述

  • 混合(Hybrid)App主要以JS+Native两者相互调用为主,从开发层面实现“一次开发,多处运行”的机制,成为真正适合跨平台的开发。
  • Hybrid App兼具了Native App良好用户体验的优势,也兼具了Web App使用HTML5跨平台开发低成本的优势。
  • 为什么我们需要跨平台开发?
    本质上,跨平台开发是为了增加代码复用,减少开发者对多个平台差异适配的工作量,降低开发成本,提高业务专注的同时,提供比web更好的体验。
    通俗了说就是:省钱、偷懒。

二、开发方式

  • Native App: 本地应用程序(原生App)
  • Hybrid App:混合应用程序(混合App)
  • Web App:网页应用程序基于浏览器,也可套壳(移动web)
特性 Native App Hybrid App Web App
开发语言 只能用Native开发语言 Native和Web开发语言 只能用Web开发语言
代码的移植性和优化
升级灵活性
兼容性 仅支持Android或IOS单一 Android和IOS等多平台 Android和IOS等多平台
性能 较好 较差
交互体验 较好 差(无法调用手机硬件)
界面体验 较好
安装体验
成本
开发周期 较长 较短

三、常见框架

1、Ionic Native
  • Ionic Native 是一个专注于用WEB开发技术,基于HTML5创建类似于手机平台原生应用的一个开发框架。绑定了AngularJS和Sass。这个框架的目的是从web的角度开发手机应用,基于Cordova(PhoneGap 2.0)的编译平台,可以实现编译成各个平台的应用程序。
  • Ionic Framework是一个开源UI工具包,用于使用HTML,CSS和JavaScript等Web技术以及与Angular、React和Vue(测试)等流行框架的集成来构建高性能,高质量的移动和桌面应用程序。
  • Apache Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。
  • Cordova的基础是html和js运行在webview容器里面,通过Cordova提供的接口与硬件通讯,所以它的效率也受到了各个厂商对webkit内核的好坏。
  • ionic1基于angularJS(指angular 1.x),ionic以后的版本基于angular,angular 2.x之后的版本统称为angular。
2、React Native(Facebook)
  • React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 React 在原生移动应用平台的衍生产物,支持iOS和安卓两大平台。RN使用Javascript语言,类似于HTML的JSX,以及CSS来开发移动应用。
3、Weex(阿里)
  • Weex致力于使开发者能基于通用跨平台的 Web 开发语言和开发经验,来构建 Android、iOS 和 Web 应用。简单来说,在集成了 WeexSDK 之后,你可以使用可以使用现代化的 Web 技术开发高性能原生应用的框架。
  • 目前对 Vue.js 和 Rax 这两个前端框架支持性最好。
4、DCloud.io(数字天堂)
  • H5+ 通过传统h5 app调通过h5+ runtime调用原生接口达到效果。
  • uniapp 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。它结合了小程序,和自家h5+特性,用vue方式书写的跨平台解决方案,屏蔽dom操作,封装了一部分预加载,使用体验比没有手动优化过的h5+ app好
5、Flutter(Google)
  • Flutter 用于 Fuchsia、Android、iOS 和 Web 开发,使用 Skia 2D 图形引擎、Dart 语言,GUI 一般采用质感设计(Material Design)。
  • 其他框架都是基于h5技术,本质上是js引擎渲染,而flutter是通过c/c++调用底层接口,还用了自家的跨平台2d引擎skia来渲染,所以效率很高。
特性 Ionic Native React Native Flutter Weex uniapp
性能 中高
难易程度 中高 中高
语言 JS/TS JS/TS Dart JS/TS JS/TS
引擎 JS V8 JSCore Flutter Engine JS V8 JS V8
设计模式 Angular React 响应式 Vue Vue
框架程度 较重 较重 较轻 较重
社区生态 ★★★★ ★★★★★ ★★★★ ★★★ ★★★★
推荐指数 ★★★★ ★★★★★ ★★★★ ★★★ ★★★

你可能感兴趣的:(移动端跨平台开发)