Native App VS Web App--花开两朵,各有短长

移动开发
移动互联网的发展正如火如荼,app浪潮方兴未艾,潮人们都变成了拇指控,天天忙着下载应用。作为IT从业者,我们应该做到看山不是山,看水不是水的禅境,看到app不应只停留在表面,更应深入思考它是如何设计、如何开发、如何运行。

移动互联网的发展正如火如荼,app浪潮方兴未艾,潮人们都变成了拇指控,天天忙着下载应用。作为IT从业者,我们应该做到看山不是山,看水不是水的禅境,看到app不应只停留在表面,更应深入思考它是如何设计、如何开发、如何运行。

目前的智能移动平台,无论是iphone、android,还是wp7、webos,都为我们的app开发提供了两条路,一条是native app,一条是web app。我们在开发时该走那条路?要想搞清楚这个问题,我们先来分析分析两条路有些什么区别。

native app

native app是指使用移动平台开发语言(ios为objective-c,android为java)+移动平台SDK来开发的软件包。

native app的优点:

可以充分发挥系统特性(调用系统服务、内存管理等),操控设备硬件(如相机、蓝牙、振动器等)

可提供***的用户体验,***质的用户界面,最华丽的交互

可访问本地资源

与web app相比,性能更好,交互流畅(尤其是复杂应用)

可节省带宽成本

native app的缺点

各平台开发语言、sdk和开发环境不同,学习成本高

各平台不兼容,多平台的开发、移植比较复杂,开发成本高,开发周期长

针对多种设备(不同分辨率、不同硬件配置等)的调试和适配较麻烦,开发成本高,开发周期长

维持多个版本的成本比较高

从目前来看,native app虽然开发成本较高、周期较长,但因为它可以自由操控硬件、充分发挥平台特性、提供***的体验,所以绝大多数移动应用都是native app模式。这也证明了业界以用户体验为中心的思想得到了坚决贯彻,宁可设计人员、开发人员累点,也要提供***的体验。

web app

web app是指使用web标准技术(html、css、javascript)开发的针对移动设备优化的网站,我们可以使用一些工具(如phonegap)将网站封装成各平台的软件包,使其看起来像是一个native app,但它的本质仍然是一个运行在浏览器中的网站。

web app的优点:

使用web标准技术,学习成本和开发成本低

可兼容多平台(实际上是兼容浏览器),适配多平台多设备的成本低

开发周期快,维护成本低

无需安装,也可使用

web app的缺点:

无法充分发挥系统特性(调用系统服务、内存管理等),无法操控设备硬件(如相机、蓝牙、振动器等)

< 短期内web app提供的交互体验无法与native app媲美

对于复杂应用,web app受限于浏览器,性能不佳。

无法访问本地资源

你可以说html5是未来,web app是未来趋势,但现在的情况是,只有少部分app是使用web app模式开发的,web app还不能胜任复杂应用和手机游戏。要想在体验和性能上媲美native app,要想像native app那样访问硬件和本地资源,web app还有很长的一段路要走。

“兼容性越强的技术,成本越低,性能越差;兼容性越差的技术,成本越高,性能越好。”--月光博客

那我们该用哪种模式?请看下篇“native app or web app--敢问路在何方?”

做为一个把握现在,展望未来的从业者,我们该何去何从?请看下下篇“native app & web app--两手都得抓,两手都得硬”

责任编辑:张叶青 来源: 技术博客
相关推荐

2014-12-18 13:40:16

Web AppHybrid AppNative App

2011-12-31 09:17:02

Web App

2013-09-04 15:07:06

移动应用设计

2011-04-12 16:02:09

Web AppNative AppWeb

2012-02-08 14:23:29

Wi-Fi千兆Wi-Fi802.11ac

2014-11-25 12:30:50

Web AppNative App

2011-12-08 20:09:12

App

2012-05-29 09:05:12

2013-09-04 14:55:01

Web AppNative App技术

2015-08-25 09:51:50

WebAppNative App

2016-01-20 16:04:58

NativeApp开发

2014-10-29 19:24:50

百度Blend

2013-04-10 15:14:18

Web App开发WebApp

2011-12-22 15:33:05

Web

2017-07-20 14:13:38

前端浏览器Native App

2012-05-28 14:13:26

HTML5Web AppNative App

2015-06-17 10:28:10

WebAPP开发技巧

2015-06-04 10:44:59

WebAPP开发技巧

2013-12-16 15:07:59

NativeHybrid开发移动

2012-09-07 10:09:54

MySQLMongoDB云计算
点赞
收藏

51CTO技术栈公众号