跨平台 webapp 开发技术之 Hybrid App

前所知的 APP 开发模式有三种:html

  1. 基于操做系统运行的 APP -> Native App,侧重于原生开发,用户体验好,须要安装才会升级
  2. 基于浏览器运行的 APP -> Web App,侧重于网页技术实现,跨平台兼容性好,只要开发人员更新代码,无需经过安装升级
  3. 基于移动应用引擎 -> Hybrid App,使用H5和JS开发。若是不追求用户体检时,这种方式最快也最省钱

下面的图摘自简书,是对三种不一样形态的 APP 的对比:前端

 

 

Hybrid APP是目前普遍流行的一种APP开发模式,Android、iOS、JS三端内容初步都已经完成,有完善的设计思路、教程以及API文档。html5

 

Hybrid App,这种既有跨平台开发周期短成本低的基因,又能发挥Native App体验和性能的优点,HybridApp混合式移动应用开发逐渐成为企业移动开发的首选。
Hybrid App一般是基于第三方跨平台移动应用引擎框架进行开发web


在国内开发者中比较知名的有PhoneGap、Titanium和AppCan这些引擎框架通常使用HTML5和Javascript做为编程语言,调用引擎封装的底层功能如照相机、传感器、通信录、二维码等。HTML5和Javascript只是做为一种解析语言,真正调用的都是NativeApp同样封装的底层功能,这是和Web App的最大区别和不一样由于使用了浏览器技术,因此Hybrid App一般具备跨平台的特性,而且开发成本和WebApp接近,开发效率也远高于Native App编程

说实在的,从表面上看的话,很难区分一个App究竟是Native App仍是Hybrid App,但实际上咱们更多的是把Hybrid App当作是Webapp的一部,由于他是一部分Native(比较少),绝大部分的web页面(html5页面)。小程序

Hybrid App和Native App同样都是须要用户在各类App分发渠道上下载并安装到手机上才能用的。Hybrid App的体验固然是没话说,比较棒的,有这Native App的所有优势。html5很好的解决了跨平台性的问题,也解决了开发成本太高的问题。api

 

国内外Hybrid App的开发平台众多,目前有三种开发模式:浏览器

  1. 使用PhoneGap、AppCan之类的中间件,以WebView做为用户界面层,以JavaScript做为基本逻辑,以及和中间件通信,再由中间件访问底层API的方式,进行应用开发。这种架构通常会很是依赖WebView层的性能。
  2. 使用Adobe Air、RubyMotion、Appcelerator或者是Xamarin这种非官方语言的工具,打包成原生应用的方式开发。为何笔者会将它们定义为Hybrid App,主要是它们并无很单纯地使用原生提供的语言进行开发,而是经过对开发者提供友好的开发工具,并折中地把这种开发语言转换成原生语言,最终打包出整个应用,因此也属于混合应用范畴。
  3. 在开发原生应用的基础上,嵌入WebView可是总体的架构使用原生应用提供,通常这样的开发由Native开发人员和Web前端开发人员组成。Native开发人员会写好基本的架构以及API让Web开发人员开发界面以及大部分的渲染。保证到交互设计,以及开发都有一个比较折中的效果出来,优化得好也会有很棒的效果。

国内 Hybrid App 框架,比较多:

dcloud

成立时间:2014年安全

融资状况:1200万人民币服务器

产品:hbuilder、5+runtime、mui(免费)

集成的原生sdk:经过5+sdk自行集成

 

phonegap(Cordova)

成立时间:2008年8月

融资状况:已被adobe收购

产品:phonegap(cordova)

集成的原生sdk:自行集成

产品功能:

PhoneGap是一款国外的开源移动开发平台。目前已经将核心代码贡献给Apache cordova,最新版本是2.6.0,它是基于HTML,CSS和JavaScript的,可使用一些开源的框架好比jQuery Mobile,Dojo Mobile,Sencha Touch等等来提升用户体验,也提供了比较丰富的原生插件调用。

缺点:

  1. 须要针对相应的平台环境配置,进行编译,打包测试,发布等等。因为使用Hybrid开发的用户群,大部分是web开发者,对原生开发基本不了解,这无疑给每个开发者增长了沉重的负担,须要对各个平台的开发都要须要了解,对硬件等等都要配置,加大开发成本。

  2. 使用效果启动慢,页面切换响应慢,数据请求慢。调试难度大,内存消耗大。不能彻底跨平台,不一样平台代码须要微调。

  3. 文档虽比较详细可是基本是英文,对于国内大部分用户英文水平较差的是比较大的挑战。

  4. 由于是国外的框架,技术支持不够到位,出现问题,没法排解,成为技术攻关的难点。

侧重点:侧重于对硬件的访问控制

 

appcan

成立时间:2010年初

融资状况:1亿元人民币

产品:公众版(免费)与企业版(收费)

缺点:

    1. 虽然有中文的开发文档,但描述比较简单,但愿他们丰富他们的API文档。

    2. 免费版本不支持自定义插件(听说企业版能够自定义插件)。

    3. 暂时只支持iOS,Android两大平台,不知道何时推出Windows Phone 8?

    4. 许多功能须要企业版才能实现,不过是收费的。

    5. AppCan免费版因须要把源代码上传到厂商的服务器上打包,对于企业开发来讲源代码泄露安全性上有必定风险。企业版虽然能够解决,但企业版稳定尚待观察。

    6. AppCan采用封装的组件,依赖性比较高。不是开源代码。

    7. AppCan 不能很好的解决原生代码的功能。

 

phonegap与appcan什么区别?

大概浏览了一下appcan的文档,api设计只能用莫名其妙来形容,各类缩写,各类看不懂。 

比较表格 Phonegap AppCan
框架功能 简单 丰富
支持平台 大部分平台 仅4种平台
开发环境 不一样平台须要不一样开发环境 只需一个IDE包
调试 可直接调试 本地发布的IOS包,必须部署在越狱的机器上
发布 在本地能够直接发布 必须将代码上传至服务器,才能发布
IOS 签名管理 本地管理 须要上传至服务器
代码泄露风险 低:仅在本地、svn保存代码 高:需将代码上传至appcan服务器

 

 

Hybrid面临的挑战

Facebook推出的React Native方案,这是Facebook在放弃h5后自行推出一个'反H5方案',一句话总结就是:里面能够用JS来完整的写一个原生应用

微信推出的小程序,这也是一个微信主导的'反H5方案',一句话总结就是:里面能够同JS+微信自制的UI方案来写一个相似于原生的应用,只不过这个应用不是发布到App Store中,而是发布到微信中。

相关文章
相关标签/搜索