《InfoQ访谈:用HTML5开发移动Web应用程序》阅读笔记

Dylan Schiemann是Dojo基金会的共同创立者。光凭这一点,使我觉得他就是Web开发的引领者,尤其他所提倡Open Web的价值观并不一定为商业团体所接受。虽然很难中立,但也可以作为预测发展道路的一点参考。我整理了采访文章的几点如下。文章地址:http://www.infoq.com/interviews/mobile-web-h5-js

一、陈旧的技术。
一开始,移动设备从无到有,其过程之始端自然简陋:黑白的荧屏,用键盘控制,9,600bps的连接速度。在此环境下所谓WAP/WML上网只是种种功能中其中可选一项,消费者也认为可有可无,尽管不是说鸡肋就是得排斥的意思,毕竟也是新事物,或者认为一种装饰品吧,因而也谈不上“用户体验”。

在过去十数年发展的无线冲浪过程中,使用者与开发者虽然认识到这仅仅是一个开始,尚未成熟,但随着消费水平提升和用户需求的爆炸性增长,这样的移动设备已经早已不能满足新的调整,随之而来应当是技术升级。各厂商的设计者如果还停留在HTML3/4的版本水平(WML实际只是基于HTML的扩展),只能解析WML/HTML,不支持脚本或提供的是缓慢的脚本引擎,这样则不是消费者甚至一般消费者眼中可接纳的机型,连山寨的机型也不会如此吧。

个人感觉,这里还没谈到终端与网关的连接手段,当然那是另一层面的内容,与硬件因素关联性较大,属于GPRS/EDGE/CDMA等方面的内容。

二、开发人员的学习曲线。

市场是有的也是庞大的,那么开发人员也应该是充沛量足的,开发环境和条件应该不是过于阳春而让开发者望而却步。抛开J2ME/C/Flash Lite不谈,因为它们与桌面程序的API差别较大,只剩下语法相同,不足以吸引原先熟悉桌面程序开发的那一帮人。这一帮人就是重要的开发力量,试问,谁不是从学习Desktop的API开始的?再试问,设不理会Desktop的与否,如果我用我已经熟悉的技术,再能够在另外一片天地发展出新的业务,重新受用,岂不顺哉?反过来说,如果用学习Objective C、C、Java、Windows Moblie才能开发手机程序,对于许多新入行的开发者,经验还不够,开发效率自然差一大截。

当然,上述只是开发者个人本身的主观意愿,而客观的条件是怎么样的?答案是“拥抱标准”,标准是不是就是“最客观”的呢?呵呵,见仁见智……那是什么标准?Open Web standards。具体说,所面对的API就是浏览器,手机版的浏览器,例如WebKit 、Mozilla的浏览器、 Opera的mobile浏览器甚至微软的也会有……等等。HTML5首先变化的是一批新的tag,这些tag对于移动设备还是普通浏览器的意义与价值都是一样的。个人认为,以Web三层设计划分,HTML作为表示层其扮演的角色不变,但新的HTML5便会塞进不知道是不是“表示层”的功能。另外,很重要的一点,也是不断强调的,就是作为标准的实现版本,其跨平台、write codes once run everywhere诸如这类特性应该是毫无疑问地支持,否则标准将无意义。

“拥抱标准”就可以把原来Web开发的技术及经验转移到移动平台,难道不是很诱人吗?可是,不同机型有不同的硬件版本,不同的软件版本,不同的平台,代码跑起来是否一切都那么美好?

就拿WebKit来说,不同的厂家可能在Webkit的基础上增加或删减某些功能,导致虽然是Webkit做出来的浏览器,却又不一定让您的技术跑得过,更不要说“放之四海皆准”了。这样的话,就需要一个解决各个移动平台的JavaScript API。考虑不同机型的差异,的确就像试图解决跨浏览器问题那样的头痛,好在只要让API解决,不用写检测哪个哪个浏览器if-else代码,不然真的很痛苦。当然,本来就不支持的技术开发人员就要清楚是哪些了,例如支持不支持SVG、支持不支持canvas、支持不支持CSS3等的细节。另外,使用服务端解决兼容问题也是一个解决思路,也就是动态生成针对浏览器特定代码,其好处是优化程度会很高,代码冗余率相对低。

针对移动设备的存储方案,一个是分布式的远程存储,另外一个是本机存储方案。Dylan认为无论那种方案都是很快可成熟的技术。

三、关于HTML5的来临

对于时下热门的话题,Flash vs HTML5,Dylan提出了自己的看法,他认为Flash有洗心革面式的改变才可以在Web世界中谋得生存(参见Dylan博文《Can Flash thrive》),并且他从纯技术角度出发,质疑Adobe为什么不干脆在Flex中使用HTML,而是沿用自成一套的系统仿佛在远离标准。

HTML5把过去十年Web标准发展积累下来的宝贵经验财富作一次升华,技术上是如此,然而市场究竟接不接受就是另外一回事。事实上HTML4/4.2已经是很陈旧的技术,这么多年来一次升级过都没有。

HTML5对移动设备而言有什么现实意义呢?其中一个比较实用的是CSS特效、动画和变形特效的支持,让“页面”更活泼,还有可大大减少网络延迟的Web Sockets,属于原生的Socket方案。实时的网络聊天就很需要Web Sockets了。

有时候改革不能一蹴而就,换句话说,该如何渐进增强?许多移动浏览器还是不兼容的HTML5,可否做到一些技术能够使用其他手段达到HTML5的功能?如果是表单Form或一些语义的新元素,就比较好办,可以用JavaScript模拟HTML5的特性,如果涉及视频和音频,还是无奈地使用Flash来搞掂。既然谈到Vidoe/Audio,就不能不谈到当下的codec之争(Flash/H264 raw/Ogg Theora),各家有各家的道理,看来还是莫衷一是。

关于开发工具的支持。开发工具应当不单单包含了HTML5如何支持的部分,更重要的是整合开发语言的支持。我们需要一个成熟的代码编辑环境,成熟的模拟器,成熟的IDE。

四、需要注意的一些问题

一个项目,如果要把支持的平台的列表从PC、iPad/iPhone到Android都纳入其中,有什么经验可借鉴呢?Dylan回答说,应该明确各平台的差异制定需求。Dylan本身是Web起家的专业人士,他首先以Web与移动平台作比较,自己熟悉的内容作为切入点。他说到,一些Web中考虑的知识点在移动设备中却可以忽略,例如拖动(DD);一些是移动设备经常使用到的而Web上面却待遇不同,例如本地存储访问、摄像头控制、GPS访问等等。最后Dylan还谈到像3D渲染此类的技术——无论Web还是移动设备在现阶段中不可能的、或者不轻易达到的技术。

相关项目:PhoneGap/EventNinja(by Uxebu)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sp42a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值