Native App即原生应用,即我们一般所称的客户端,是针对不同手机系统单独开发的本地应用,如需使用需要先下载到手机并安装,下载Native App的最常见方法是访问应用程序商店,如苹果的App Store、安卓市场、Google Play等。在技术实现上一般采用针对操作系统的特定语言进行编写,如:使用Objective-c开发IOS应用,使用Java+Android开发android应用。
Native App的优点:
可以在应用商店轻易地找到并且能在手机主屏幕上生成相应的图标
可以利用系统API及平台特性,访问手机的提供的功能(GPS,相机等)
可访问本地资源,支持离线工作,节省用户的流量成本
可针对不同平台提供不同的体验,针对平台特性去做用户体验优化
与系统高度切合,可获得更快的运行速度和性能,并支持丰富的图形和动画。
Native App的缺点:
开发成本高,需要针对不同平台需要不同的技术背景进行开发
维护成本高,用户必须手动下载更新,历史版本又不能不维护
未知的上线时间,需要通过应用商店的审核
Native App最大的优势就是可以使用操作系统开发商提供的API。这些API可以分为两大类:低级API和高级API。
低级API:应用程序能直接与触摸屏或键盘进行联系、渲染图形、连接至网络、处理从麦克风收到的音频、通过扬声器或麦克风播放声音,或者接收来自摄像头的图像或视频。应用程序能访问全球定位系统(GPS)、接收方位信息,当然还可以读写固态硬盘上的文件,或者访问现有和将来会有的其他任何硬件元件。
高级API:提供对个人移动体验来说很重要的较高级服务,这类服务包括浏览Web,管理日历、联系人资料和相册等,当然还包括打电话或收发文本消息的功能。
操作系统提供的另一组重要的API是GUI工具包。每一种移动操作系统都随带各自的一组用户界面组件,比如按钮、输入区、滑块、菜单、菜单栏、对话框及其他。可以使用这些组件的应用程序继承了该特定移动操作系统的外观和感觉,通常会带来非常流畅的用户体验。
二、什么是Web App?
Web App又叫Web应用,简单的说就是一个触屏版的网站。Web应用完全用HTML、JavaScript和CSS等Web技术开发,通过移动设备的浏览器来访问,缺点是这些基于浏览器的应用无法调用系统API来实现一些高级功能,也不适合高性能要求的场合。
Web App的优点:
开发成本低,使用现有的Web开发技术即可
适用范围广,覆盖所有智能手机,跨平台和终端
方便、快捷地部署,无需用户安装
用户总能访问到最新版本,迭代更新容易
可被搜索引擎收录并带来流量
Web App的缺点:
浏览体验短期内还无法超越原生应用
不支持离线模式(HTML5将会解决这个问题)
消息推送不够及时
调用本地文件系统的能力弱
较差的和较慢的性能体验(大部分需要链接互联网)
支持图形和动画效果较差
不适用于应用商店及没有靠下载应用盈利机会
限制用户使用功能(比如,相机、GPS等)
移动Web App是一种很有希望的趋势。为了紧紧抓住这个趋势,帮助开发者构建客户端用户界面,已开发出越来越多的JavaScript工具包,比如Sencha Touch和jQuery Mobile,它们创建的用户界面在外观和感觉上与Native App大同小异。两者都完全在移动设备的浏览器里面执行,充分利用了现代移动浏览器所提供的最新JavaScript、CSS和HTML5特性。
三、什么是Hybrid App?
Hybrid App又叫混合应用,是一种介于Native App、Web App之间的App,它虽然看上去是一个Native App,但只是一个UI WebView,里面访问的是一个Web App。Hybrid App实质是伪造一个浏览器的apk/ipa原生程序,并运行了一个Web APP。Hybrid App兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”。它可以使web开发人员可以几乎零成本的转型成移动应用开发者,并且相同的代码只需针对不同平台进行编译就能实现在多平台的分发,而相较于Web App,开发者可以通过包装好的接口,调用大部分常用的系统API。
Hybrid App的优点:
支持多平台访问
手机功能都可访问
适用于应用商店
部分支持离线功能
Hybrid App的缺点:
未知的部署时间
用户体验不如本地应用
性能速度较慢(需链接网络)
该技术尚未发展成熟,依然是一门新技术
Hybrid开发方法结合了Native开发和Web技术。借助这种方法,开发者就能使用跨平台Web技术,开发应用程序的大部分代码,又可以在需要时直接访问Native API。App的Native代码部分使用操作系统的API来创建嵌入式HTML渲染引擎,该引擎在浏览器和设备的API之间充当了桥梁。这座桥梁让Hybrid App得以充分利用现代设备所提供的全部特性。App的Web部分可能是驻留在服务器上的网页,也可能是一组HTML、JavaScript、CSS和媒体文件,封装到App代码中,存储在设备本地。放置在服务器上的HTML代码让开发者不必经历提交和批准过程,把Web代码封装到App里面可以提高性能和可访问性。