前所知的 APP 开发模式有三种:html
下面的图摘自简书,是对三种不一样形态的 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的开发平台众多,目前有三种开发模式:浏览器
成立时间:2014年安全
融资状况:1200万人民币服务器
产品:hbuilder、5+runtime、mui(免费)
集成的原生sdk:经过5+sdk自行集成
成立时间:2008年8月
融资状况:已被adobe收购
产品:phonegap(cordova)
集成的原生sdk:自行集成
产品功能:
PhoneGap是一款国外的开源移动开发平台。目前已经将核心代码贡献给Apache cordova,最新版本是2.6.0,它是基于HTML,CSS和JavaScript的,可使用一些开源的框架好比jQuery Mobile,Dojo Mobile,Sencha Touch等等来提升用户体验,也提供了比较丰富的原生插件调用。
缺点:
须要针对相应的平台环境配置,进行编译,打包测试,发布等等。因为使用Hybrid开发的用户群,大部分是web开发者,对原生开发基本不了解,这无疑给每个开发者增长了沉重的负担,须要对各个平台的开发都要须要了解,对硬件等等都要配置,加大开发成本。
使用效果启动慢,页面切换响应慢,数据请求慢。调试难度大,内存消耗大。不能彻底跨平台,不一样平台代码须要微调。
文档虽比较详细可是基本是英文,对于国内大部分用户英文水平较差的是比较大的挑战。
由于是国外的框架,技术支持不够到位,出现问题,没法排解,成为技术攻关的难点。
侧重点:侧重于对硬件的访问控制
成立时间:2010年初
融资状况:1亿元人民币
产品:公众版(免费)与企业版(收费)
缺点:
虽然有中文的开发文档,但描述比较简单,但愿他们丰富他们的API文档。
免费版本不支持自定义插件(听说企业版能够自定义插件)。
暂时只支持iOS,Android两大平台,不知道何时推出Windows Phone 8?
许多功能须要企业版才能实现,不过是收费的。
AppCan免费版因须要把源代码上传到厂商的服务器上打包,对于企业开发来讲源代码泄露安全性上有必定风险。企业版虽然能够解决,但企业版稳定尚待观察。
AppCan采用封装的组件,依赖性比较高。不是开源代码。
AppCan 不能很好的解决原生代码的功能。
大概浏览了一下appcan的文档,api设计只能用莫名其妙来形容,各类缩写,各类看不懂。
比较表格 | Phonegap | AppCan |
---|---|---|
框架功能 | 简单 | 丰富 |
支持平台 | 大部分平台 | 仅4种平台 |
开发环境 | 不一样平台须要不一样开发环境 | 只需一个IDE包 |
调试 | 可直接调试 | 本地发布的IOS包,必须部署在越狱的机器上 |
发布 | 在本地能够直接发布 | 必须将代码上传至服务器,才能发布 |
IOS 签名管理 | 本地管理 | 须要上传至服务器 |
代码泄露风险 | 低:仅在本地、svn保存代码 | 高:需将代码上传至appcan服务器 |
Facebook推出的React Native方案,这是Facebook在放弃h5后自行推出一个'反H5方案',一句话总结就是:里面能够用JS来完整的写一个原生应用。
微信推出的小程序,这也是一个微信主导的'反H5方案',一句话总结就是:里面能够同JS+微信自制的UI方案来写一个相似于原生的应用,只不过这个应用不是发布到App Store中,而是发布到微信中。