之前一直在做Java的项目,最近要开发移动端,对App的开发刚开始的时候是没有任何概念的,有接触也就是玩手机用过的N多App,这算是真正意义山的第一次和App握手相识!
App,你知道多少?
目前主流的应用程序有三大类:
一、 什么是Native App?
Native App即原生应用,即我们一般所称的客户端,是针对不同手机系统单独开发的本地应用,如需使用需要先下载到手机并安装,下载Native App的最常见方法是访问应用程序商店,如苹果的App Store、安卓市场、Google Play等。在技术实现上一般采用针对操作系统的特定语言进行编写,如:使用Objective-C开发iOS应用,使用Java+Android开发android应用。
优点
运行效率高
可调用各种设备资源
缺点
人力成本高
发布速度慢(AppStore确认的时间很长)
更新版本的问题(用户就是不更新!)
实现图文混排等功能拥有各种坑!
二、 什么是Web App?
Web App又叫Web应用,简单的说就是一个触屏版的网站。Web应用完全用HTML、JavaScript和CSS等Web技术开发,通过移动设备的浏览器来访问,缺点是这些基于浏览器的应用无法调用系统API来实现一些高级功能,也不适合高性能要求的场合。WebApp的核心思路:
常见Web App框架对比:
优点
开发成本低,使用现有的Web开发技术即可
适用范围广,覆盖所有智能手机,跨平台和终端
方便、快捷地部署,无需用户安装
用户总能访问到最新版本,迭代更新容易
可被搜索引擎收录并带来流量
缺点
浏览体验短期内还无法超越原生应用
不支持离线模式(HTML5将会解决这个问题)
消息推送不够及时
调用本地文件系统的能力弱
较差的和较慢的性能体验(大部分需要链接互联网)
支持图形和动画效果较差
不适用于应用商店及没有靠下载应用盈利机会
限制用户使用功能(比如,相机、GPS等)
Web APP 的开发基于HTML5语言。而html5语言本身又有着不可避免的局限性。正是这些局限性的存在,使得Web App在体验中要逊于Native App。具体的首先因素及设计要点大家可以去参考《聊聊Web App、Hybrid App与Native App的设计差异》
三、 什么是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。
优点
综合了开发效率和运行效率
发版本更方便
缺点
运行效率中等(切换等交互效果)
需要写一点原生代码(至少2个平台)
四、 Web App、Hybrid App、Native App比较
|条件\应用程序|Web App|Hybrid App|Native App|
| --:--|--:--|--:--|--:--|
|开发成本|低|中|高|
|维护更新|简单|简单|复杂|
|体验|差|优|优|
|Store或market认可|不认可|认可认可|
|安装|不需要|需要|需要|
|跨平台|优|优|差|
|开发语言|网页语言HTML5+JS|网页或原生语言|原生语言ObjectC、java、net等|
|跨平台性|高|高|低|
|设备能力|低|高|高|
|向后兼容|好|好|差|
从上面的表格中可以看出,没有哪一种开发方法总是提供所有的优点。每一种开发方法有天生的局限性,没有哪一种方法能够满足现代移动企业的所有要求、应对复杂情况。选择一种合适的方法取决于企业的具体要求,可能取决于诸多因素,比如预算、时间表、内部资源、目标市场、所需的应用程序功能、IT基础设施及其他许多方面。但是有一点很清楚:如今的大多数公司显然在两个方面之间作取舍:一是用户体验和应用程序功能,另一是开发成本和产品上市时间。问题就变成了选择一种合适的开发方法,能兼顾企业的要求和其在预算和产品上市时间方面的限制。