我以为web app 、源生app和混合app,没有哪一个好与很差之说,主要还得看所作的app,开发app还得从多方面去考虑,好比投入开发的人员、开发周期、开发费用、是否支持跨平台、用户体验等。android
1、什么叫作源生app、什么叫作移动web appp 、什么叫作混合appios
源生app 是专门针对某一类移动设备而生的,它们都是被直接安装到设备里,而用户通常也是经过网络商店或者卖场来获取,开发起来不支持跨平台,每种平台得单独开发相同应用。随便说几个源生APP的例子,好比ios的camera+以及android的keepassdroid。web
移动app 都是须要用到网络的,它们利用设备商的浏览器(好比iPhone的safari)来运行,并且他们布须要在设备上下载后安装。编程
混合型应用(Hybrid App)就是介于两者之间的折中方案。在许多状况下,它能集二者之长,再经过中间件包装成一个可发布到应用商店的应用程序。Hybrid App运行在一个源生App的容器里,接住移动系统自带的浏览器引擎来渲染界面和解析脚本。例如:PhoneGap开发的程序就属于混合型应用。浏览器
2、优缺点网络
1.源生appapp
你使用过微软PowerPoint 或者Word吧?这些可直接在你电脑上运行或者在智能手机上运行,简单来讲,原生应用是特别为某种操做系统开发的,好比iOS、Android、黑莓等等,它们是在各自的移动设备上运行的。框架
优势:编程语言
可访问手机全部功能(GPS、摄像头);工具
速度更快、性能高、总体用户体验不错;
可线下使用(由于是在跟Web相对地平台上使用的);
支持大量图形和动画; 容易发现(在App Store里面)和从新发现(应用图标会一直在主页上);
应用下载能创造盈利(固然App Store抽取20-30% 的营收)。
缺点:
开发成本高;
支持设备很是有限(通常是哪一个系统就在哪一个平台专属设备上用);
上线时间不肯定(App Store审核过程不一);
内容限制(App Store限制);
得到新版本时需从新下载应用更新。
举例:Yellow Pages Group 就开发了是几个版本(iOS、黑莓、Android),他们在每个原生应用市场都有上架。
2.移动web App
Web应用本质上是为移动浏览器设计的基于Web的应用,它们是用普通Web开发语言开发的,能够在各类智能手机浏览器上运行。
优势:
支持设备普遍;
较低的开发成本;
可即时上线;
无内容限制
用户能够直接使用最新版本(自动更新,不需用户手动更新)。
缺点:
表现略差(对联网的要求比较大);
用户体验没那么炫;
图片和动画支持性不高;
无法在App Store中下载、没法经过应用下载得到盈利机会;
要求联网;
对手机特色有限制(摄像头、GPS等)。
对于这些缺点,若是能把HTML 5的优势用到Web上的话就会获得很大改善,尽管技术在提升,目前它还不能作原生应用能够作的每件事。
有些公司,好比金融时报继原生应用后也开发了Web应用,用户经过浏览器来访问他们的应用,由于他们的应用要采起应用内购买,而App Store是不容许应用内购买的,否则它们就没法拿到那20%-30% 的抽成了。
3.混合型App
混合应用你们都知道是原生应用和Web应用的结合体,采用了原生应用的一部分、Web应用的一部分,因此必须在部分在设备上运行、部分在Web上运行。
不过混合应用中比例很自由,好比Web 占90%,原生占10%;或者各占50%。
优势:
兼容多平台;
顺利访问手机的多种功能;
App Store中可下载(Wen应用套用原生应用的外壳);
可线下使用。
缺点:
不肯定上线时间;
用户体验不如本地应用;
性能稍慢(须要链接网络);
技术还不是很成熟。
好比Facebook如今的应用属于混合应用它能够在许多App Store畅通无阻,可是掺杂了大量Web特性,因此它运行速度比较慢,而如今为了提升性能FB又决定采用原生应用。
3、总结(什么状况下用什么):
h5:
常常换的东西用h5,好比活动页面
广告位用h5
用户手册。使用协议用h5。由于不须要更新版本就能够完成修改
有些动画不易于用源生实现的用h5
预算有限,不在意用户体验和速度用h5
源生:
讲究页面切换流畅用源生
对网络很敏感的用源生
频繁调用硬件用源生
结论,重点差别:
● 开发难度。移动web和混合App开发难度对于web开发者来讲相对较低,并且能够充分利用现有的web开发工具和工做流程
● 发布渠道和更新方式。混合App能够在应用商店App Store发布,但能够自主更新,而原生App的更新必须经过应用商店App Store。
● 移动设备本地API访问。混合App能够经过JavaScript API访问到移动设备的摄像头、GPS;而原生App能够经过原生编程语言访问设备全部功能。
● 跨平台和可移植性。基于浏览器的移动web最好的可移植性和跨平台表现;混合App也能节省跨平台的时间和成本,只需编写一次核心代码就可部署到多个平台,而原生App的跨平台性能最差。
● 搜索引擎友好。只有移动web对搜索引擎友好,可与在线营销无缝整合。
● 货币化。混合App除广告外,还支持付费下载及程序内购买;原生App的程序内购买金额2012年首次超过下载收费。
● 消息推送。只有混合App和原生App支持消息推送,这能增长用户忠诚度。Apache Cordova是PhoneGap贡献给Apache后的开源项目,是从PhoneGap中抽出的核心代码,是驱动PhoneGap的核心引擎。 PhoneGap是一个开源的开发框架,使用HTML、CSS和JavaScript来构建跨平台的的移动应用程序。目前开发商能够只编写一次应用程序, 而后在6个主要的移动平台和应用程序商店(app store)里进行发布,这些移动平台和应用程序商店包括:iOS、Android、BlackBerry、webOS、Bada以及Symbian等。 现今有哪些互联网公司正在使用PhoneGap/Apache Cordova吗?咱们没法用一个准确的名单列表呈现给你们,本文罗列出一些巨头公司,正在使用PhoneGap或是Apache Cordova做为他们的移动应用跨平台开发工具: