移动互联网的发展正如火如荼,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--两手都得抓,两手都得硬”