36氪最近有一系列的文章讨论HTML5开发的未来,其中包括乐观派的《HTML 5终于定稿,八年后我们再一次谈谈怎么改变世界》,还有悲观派的《HTML 5定稿了?背后还是那场闹剧》以及《反思HTML5惨痛的500天和四个谎言》。
这几篇文章已经基本上把Web App(以下简称Web)和Native App(以下简称App)的优劣讲清楚了,Web的优势是
Web没有真正提高开发效率
但是即使理论上Web有诸多优势,但是无法改变目前App开发占据主流的现状,其原因不外乎以下:
从用户体验的角度来讲,上海手机应用开发用户对于Web并没有强烈的需求。而且传统Web模式在产品模式上是有问题的,它在操作系统与应用之间插入一个自有的操作体系和业务体系。这在PC上可行,在手机端则会引发以下问题:
操作极其不流畅 相对于PC上可以通过鼠标、键盘、菜单等丰富的操作方式,手机上的操作方式非常有限。用户在手机浏览器等Web平台中针对Web App的操作,一部分将会被平台本身截获,产生不符合用户预期的执行结果。典型的被截获操作是系统回退和左右滑屏——这使得Web App在传统应用模式下无法实现应用内回退或侧边栏等设计。
没有减少操作 传统手机浏览器试图在其自身操作范畴内建设一个大而全的生态。用户进入所谓的轻应用,和桌面一样需要寻找,指示操作的对象从App Store换成了搜索引擎。Android和iOS的App虽然数以百万计,但用户常用的业务类型只有10种左右,除游戏外,用户只需要针对每种业务类型选择安装1~2种垂直领域的“超级App”就可以满足日常绝大部分移动互联网需求。
UI元素落后 所有的手机浏览器,基本操作元素都来自PC浏览器,包括:菜单栏、网址框、搜索框、窗口标签等。不过,在寸土寸金的手机屏幕,这些元素都是必须的吗?在功能机时代,系统桌面不是多任务的,手机浏览器的多任务会给用户带来极大的便利;但智能手机系统本身就是多任务、多窗口的。用户没有感受到Web的便利。
除了一般意义上的Web,还有一个要单独拿出来讲的是手机上的网页游戏。
上海手机应用开发高品质的手机游戏,如果完全基于传统Web App即时下载的运行模式,根本无法启动运行。而针对一些轻小的休闲游戏,微信、QQ空间、微博等平台基于其社交属性,很容易引起用户的交流和分享,给“打飞机”“神经猫”“2048”等看似简陋却极易传播的HTML5游戏带来了巨大的访问量,但这样的游戏又很难找到持久粘性。
HTML5标准的设计者认为Canvas就是2D HTML5游戏的技术基础;但在实际的开发中,绝大部分HTML5手游开发商却选择DOM作为运行基础。根本不是为游戏定义的。但是基于canvas开发高品质游戏,对研发人员有很高的要求。DOM是HTML的基本组成部分,所有的前端开发人员都会;而拥有Canvas商用开发经验的前端人员则凤毛菱角。Canvas的API非常底层,如果基Canvas开发游戏,必须从最基础的元素开始构建帧画面,其开发成本并不亚于基于Native。