视频访谈: Horia Dragomir谈论移动设备上的HTML5

标签: 视频 访谈 horia | 发表时间:2013-01-04 14:11 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=10560380f804c7341f042a2b8a03e117
 
如果您在观看视频的过程中出现故障,请根据下面的提示帮助我们查找问题所在:
1. 在视频播放器上点击右键,选择复制日志(Copy Log);
2. 将复制后的内容通过邮件 [email protected]发送给我们(直接点击该邮件链接可以启动默认邮件客户端);
注意:如果您的邮件客户端没有自动填充邮件标题,请在邮件中包含该视频的URL链接。
3. 完成。
我们将第一时间调查您遇到的问题,并给您反馈。感谢您帮助优化我们的站点!
概要
Horia Dragomir谈及了在移动设备上开发HTML5应用和游戏所面临的挑战,还提到了图像处理的相关API,实现界面响应的相关问题,以及JavaScript和其他语言。

个人简介
Horia Dragomir是一名界面开发工程师,现就职于Berlin的Wooga公司,主要从事于HTML5手机游戏的开发。他把大部分工作时间用来在分布式团队上采用敏捷的方法,发掘团队协同合作的新途径。

关于会议
哥本哈根的GOTO会议由Trifork 和DANSK IT共同举办,它是一个厂商独立的会议并且由一个项目委员会筹划实施。GOTO会议的主要受众是软件开发工程师,IT架构师和项目管理者。
我们现在位于2012哥本哈根GOTO会议的现场,现在在我身边的就是Horia Dragomir。请介绍一下你自己,好吗?我对你名字的发音没错吧?
大家应该管我叫Horia Dragomir,我是一名罗马尼亚籍的界面开发工程师。求知若渴,虚心若愚的我现就职于柏林一家名叫Wooga的公司。
Wooga是家什么样的公司?
Wooga是一家专门从事社交游戏开发的公司。这个名字是游戏的世界(World of Gaming)的简称,因为我们坚信游戏就是应该为大众所设计的,它不仅要服务于那些发烧级玩家,还要服务于那些闲暇时打发时间的人。我们就是这样定义游戏,也是这样开发游戏的,对于大多数闲暇的人来说,我们职责就是使他们享受更多的休闲和乐趣。
在iPhone上,你使用什么样的技术开发游戏?
我们大部分开发的还是FaceBook上的Flash游戏。同时在移动市场上我们也取得了巨大的进展,因为我们相信下一个潜在的市场就是移动领域,而事实也证明确实如此。所以我们在移动设备上开发了一些本地应用程序,网页应用程序和网页游戏。
你们确实在移动设备上使用JavaScript和HTML5开发过性能密集型的游戏吗?你是怎么做到的?它们真的可以运行吗?
当你在构建一些东西,特别是游戏的时候,总是有些东西需要你时刻关注,性能就是其中之一。你完成每一步的优化工作从而找到了应用程序的痛苦根源,你试图缓解这些痛苦,所以你只能提高性能,就像在应用程序上的那些传统做法。

是的,它通常都是一个很大的障碍,我们有时候会因为它运行得不够流畅而不得不放弃一些好的想法。因此,即使它可能产生很好的效果,但也不能真正的起到作用,因为它会让人感觉不真实。
你刚刚提到了流畅性,响应能力就是你现在的工作重心吗?
是的,我现在确实很热衷于流畅性和响应能力。如果你所构建的程序不能让用户使用起来觉得很自然,那么用户就会时刻认为他是在使用某些东西。但对于游戏或者应用程序,如果它们可以有一个很完美的响应表现,或者在某种程度说是一种无缝的体验,那么用户就会全身心的投入其中,而忘记在他和他要达成的目标之间有另一个层次的互动。
使用HTML5和CSS,你觉得做移动程序开发或提高响应能力最大的障碍在哪里?你觉得有没有一些事情是不可能的,或者说它们有可能性,但是仅仅是在某些很细小的层面?你对此有什么看法?
我有个很坚定的信念,那就是你不应该问一个工程师什么是可能的,什么是不可能的。因为答案永远都是可能,因为任何事都是有可能的,确确实实也是如此。只是通常所花费的时间和精力不同而已。但是基本上这些障碍现在只跟硬件相关。随着科技的进步,当iPhone 4S的问世的时候,它的确比iPhone 4快了许多,我们利用它性能的提升开发了更多的动画效果,在游戏中使用了更好的帧速率。这么看来,障碍的根源就在于硬件问题,软件是永远都可以跟上硬件的步伐的。
硬件问题——你指的就是硬件的局限性吗?
是的,处理器每秒能处理的点击次数和运转次数。在屏幕上同时能展现的画面个数都是性能的表现。你不得不对这些内容都进行测试,从而来发现你的性能瓶颈在哪里,这样你就知道你的应用程序能表现到什么程度。有时候这些还不够,你可能要进行更多的测试,但这是有好处的,我觉得这也是在推动整个产业的进步。
当你在开发移动游戏的时候,你在浏览器上使用了什么样的技术,你使用Canvas还是用SVG,或者其他技术?
我不明白为什么人们不使用SVG这门技术,我觉得它是一门好的技术,但是我也不明白自己为什么不使用,好吧,我确实是没有使用。我使用的是Canvas。自从去年开始,Canvas的性能就有很好的表现,但除了Android系统,但是总的来说,它的表现还是不错的。即使在Android系统上,它的表现也是不俗的,这样你就可以获得相当好的性能体验,相当好的动画效果和其他诸如此类的体验。你不再需要进行大幅度的改进工作。我是Canvas的忠实粉丝,所以即使是在桌面程序上我也使用它,它的确是一门不错的技术。
我碰到过的Canvas的众多问题之一就是抗锯齿,你对此好像有些自己的看法?
的确是的,在基于iOS系统的设备上,虽然它的表现还是不错的。但始终还是会有一些问题。在Android系统上,抗锯齿更加显而易见,你需要注意的就是在你第一次创建图片的时候要处理好这些图片,虽然这些图片并没有多少抗锯齿的地方,另一方面,如果你面对的是视网膜显示屏,那么你所面对的问题可能只有以前的一半。对于老式的设备,它并没有这么多的不同,再加上如果你真的需要一些出色的图片或者类似的东西,你完全可以使用DOM来实现。抗锯齿并不会真的成为一个很棘手的问题——最起码是实践中不会。
你真的是使用Canvas来绘画线条和路径吗,或者你主要还是使用它来处理sprite。
我大部分使用它来处理sprite。但是我们对于处理抗锯齿的圆角和Canvas上其他元素都没有什么问题。我们感觉没什么困难,包括我和整个团队。我还依然记得在早些时候我们看到的使用Canvas的一些经历。它确实看起来有点飘忽不定,而且可能会占用更多的处理器性能。但是我想,我只是对于它背后的整个技术框架有点茫然而已。
在Canvas上使用动画,那现在可以使用requestAnimation的API吗?
还不能,在桌面程序上是可以的,但是对于移动设备,现在还做不到。我们现在十分期待,因为Apple已经承诺很快就会提供相关的支持。可能在最新的版本中已经实现了,只是我还没有求证。但是我觉得这并不能帮助到Canvas,因为Canvas是运行在一个独立的线程。你可以使用它来进行图像绘制而独立于浏览器的动画循环,这是一件好事。Canvas自身进行绘制操作是一个耗时耗能的过程,所以你只能自己对它进行优化操作。
采用什么样的方式优化呢?
你可能会想到缓存一些大的图片,然后重绘那些要修改的地方,最后将它们刷新到你所展示的Canvas上。我们就是这么做的,我们有一个脱离显示屏的Canvas,然后在那里操作所有事情,包括处理所有的点击事件。接着我们只需要更新那些要修改的地方就可以了,我们获取到图片然后绘制它,大概我们每秒做30次的这样更新操作,而且它也确实有效。
在某种程度上,它是一种双缓冲区的方式吗?
是的,如果Canvas不需要任何的更新,那么我们也不会去做任何操作,如果不是迫不得已的话,我们也不会进行重画操作,这也是对电池一个好的保护措施。
我想谁适合你的游戏呢,因为....?
我希望人们都可以玩这些游戏,大家到最后都会有邮箱,有手机。
Werner Schuster:二十分钟以后。
Horia Dragomir:是的是的。即使电池对于每个人来说很重要或者应该很重要。现在在Firefox 里有很好的API用来显示电池的电量或者正在充电的状态。如果电池没有充电你就该考虑是否应该显示那些动画效果。我希望这些API可以在全平台都可用,因为我觉得它们是很有帮助的。
你是怎样为移动平台开发程序的?你是在电脑上通过模拟器来开发的吗,或者说你是怎么测试这一切的?
对大部分而言,主要只有两个不同的模块,确切的来说,是界面和图像部分,你必须是在手机或者模拟器上进行测试。我使用Adobe Shadow在七台设备上同时加载一个测试,这是节省时间的一个好方式。如果我只是做一些很小的修改我会使用模拟器,因为它更加快捷,但是对于逻辑部分,你可以在任何地方进行实现,通常我们都是在Chrome上,对于更高级的工具,虽然还有Safari可供选择,但是我们还是喜欢Chrome。我们就是在那些地方进行逻辑位,、逻辑部分,、业务逻辑的开发,不管你们怎么称呼它们,我觉得它们应该是平台无关的开发内容。
Werner Schuster:如果你想测试或者是在实际设备上发现一个问题...?
Horia Dragomir:在部门内部我们是有一些真实的设备。
好吧,你个人对在真实设备上进行调试和测试有什么看法?
这曾经是一段很痛苦恐怖的经历,但是现在,那些协助人们工作的工具已经有了很大的进步,在真实设备上调试和测试不再是那么痛苦的事情了。就如我所说的,我们现在有了Adobe的Shadow工具,它本身就非常好用。还有远程检查器,Apple已经允许本地应用程序可以做类似的事情。如果你正在做调试工作,你可以直接将Safari的检查器连接到你的手机上,或者是模拟器上。Opera已经专注于这方面的工作很多年了,但那时并没有人提到它们,也没有人给予它们关注,但是我却十分关注它。Opera大概是从2008年开始就从事于移动设备的远程调试工作。现在整体环境越来越好了,从而最终调试工作成为了现实。这很好,而且它还会越来越好。
你刚才提到了iOS和Android系统和这些平台上的一些不同表现。你对此有什么经验吗?你有开发过基于HTML5的移动应用吗?你只开发过iOS平台应用而没有涉及其他平台吗?
在Windows Phone、Android和iPhone之间还是有很多共同点的。但是对于不同的平台你还是需要做一些平台性的调整,请允许我称呼它们为平台性的调整,因为事情并不是总是一成不变的,我们应该习惯如此。我是一名专业的网页开发者,这是我的背景。所以通常我都很习惯于处理浏览器之间的差异,对不同的浏览器做一些基于它们自身特性的调整。这不是什么新鲜事情,我想对于在这个行业工作的人来说,没人会觉得这个很奇怪。如果什么都可以一成不变固然很好,但这是不现实的,我觉得这也没什么问题。
但对于你自己,你还是使用Flash的是吧?
是的,特别是在桌面程序上我都是使用Flash,因为它十分好用,而且不必担心什么副作用。
但现在的GOTO会议,我们讨论的主旨是Google新推出的语言——Google Dart。你有想过什么时候切换到该语言进行开发吗?
切换?我从没想过要切换。我从来没有切换到CoffeeScript上进行开发,但是我依然使用CoffeeScript,我只会在开发大型项目时才会使用Dart。不要误会我,游戏就属于大型的项目,但是我们构建的很快,我们并没有在原型和自然实现上做一个合适的过渡。而是直接在原型的基础上进行构建,这就是为什么我们开发的这么快。在我看来,Dart只有在需要多人协作的大型代码库上才有意义,在那个时候,你就可以忽略语言本身的问题,而享受它所提供的语法和构造器所带来的好处。对于一个星期式的编程马拉松,我不会选择Dart,特别是我还需要重新学习这门语言,我会使用CoffeeScript来替代它。
那么你是使用CoffeeScript 来进行快速开发咯?
是的,那是种享受,也是个很愉快的事情。
Werner Schuster:那么CoffeeScript都为你做了些什么呢?是不是修复了JavaScript上的所有问题?
Horia Dragomir:哦不,没有谁可以完全修复JavaScript上的所有问题。但这也是为什么我喜欢它的原因。而CoffeeScript 更像是我要从事某项工作的一个捷径。比如完成某项工作我需要一百行的JavaScript 代码,而CoffeeScript 只需要二十行代码就可以完成同样的工作。这样我就可以少写很多行代码,而且CoffeeScript的代码更简洁一些,它可以直接编译成JavaScript代码而我不需要做任何语法检查,这是很好的一点,因为我很不擅长语法。
你只需要记住CoffeeScript 的语法吗?
是的,它更加简单一些,再加上我在大学的时候有一些口齿不清,你基本上都听不清我在说什么。所以我很喜欢它,因为它不会使代码变得模糊不清。它很像Python 和Ruby,但是它更易于阅读。
那 ClojureScript呢?
我不是很喜欢它,但是我并不讨厌它,我也不反对它。我喜欢更多样化的选择,但是我没有真正考虑过使用它来做一些有意义的事情。所以这就是为什么我不是很喜欢它。我觉得我需要好好的尝试一下。
那你对那些可以编译成JavaScript的语言有什么看法?比如,GWT?你会将它作为一个备选方案吗?就像对于大型团队你会将Dart作为备选方案一样?
我偏向于在呆在这里因为我不喜欢在大型的团队里工作。如果一项工作需要超过20个人来进行编码,那么我就会选择离开那里。对我个人而言,它并没有什么吸引力,这只是我个人的问题。我知道而且我也承认,在大学里它还是拥有一定的生存空间,但我并不在那种地方。所以在实际产品中我不会选择那些可以编译成JavaScript的大型框架。
最后总结一下,除了现有的这些平台以外你还有关注其他类型的平台吗?还有什么有趣的移动平台即将出现吗,或者我们只能受限于现存的这些平台?
我们当然没有被限制住,如果你知道Mozilla,他们总会推出一些神奇的东西。他们的Boot2Gecko平台,我觉得它迟早会变得很受欢迎。我不认为它像其他的技术一样会分割整个web,它只是给了大家一个可选方案,如果你可以编写JavaScript和简单的HTML应用并将他们插入到操作系统里面,从而直接访问电池的电量,立即知晓屏幕的方向,那么我觉得将会出现很多有趣的应用,发展出很多以前由于各种限制而无法实现的功能。所以我当然会不断关注Boot2Gecko。
show all  show all show all

您可能也会喜欢

相关 [视频 访谈 horia] 推荐:

视频访谈: Horia Dragomir谈论移动设备上的HTML5

- - InfoQ cn
如果您在观看视频的过程中出现故障,请根据下面的提示帮助我们查找问题所在:. 在视频播放器上点击右键,选择复制日志(Copy Log);. 将复制后的内容通过邮件 [email protected]发送给我们(直接点击该邮件链接可以启动默认邮件客户端);. 注意:如果您的邮件客户端没有自动填充邮件标题,请在邮件中包含该视频的URL链接.

视频访谈: Hadoop全方位解读

- - InfoQ cn
如果您在观看视频的过程中出现故障,请根据下面的提示帮助我们查找问题所在:. 在视频播放器上点击右键,选择复制日志(Copy Log);. 将复制后的内容通过邮件 [email protected]发送给我们(直接点击该邮件链接可以启动默认邮件客户端);. 注意:如果您的邮件客户端没有自动填充邮件标题,请在邮件中包含该视频的URL链接.

《乔布斯传》作者访谈 节目完整视频放出

- jimmy54 - cnBeta.COM
感谢apple.178.com的投递. 之前我们报道过乔布斯传记作者Walter Isaacson将做客美国CBS电视台王牌节目《60 Minutes》,讲述他在撰写乔布斯传记时的点滴趣事.

遗失16年的乔布斯访谈(文字+视频版)

- - 互联网的那点事
本文摘自一段 16年前遗失的、72分长的乔布斯访谈,这段重新发布于世、16年前遗失的长达72分钟的乔布斯访谈,记录了他的坦率、非凡的魅力和独特的视野:. 一九九五年是乔布斯职业生涯的低潮. 这卷纪录片,被导播丢在车库里十六年,直到乔布斯逝世后不久才找出来. 透过它,我们填上了“乔布斯密码”的最后一个空格.

51CTO的访谈

- - 四火的唠叨
文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》. 这篇51CTO对我的访谈是关于找工作过程相关的体会,文章有过整理改动. 无论从年纪还是从资历来说,其实我并不能算是一个很有资格的受访者. 当然,我还是希望可以帮到那些软件行业涉足未深和忙于找工作的朋友. 邮件对话最终整理成51CTO的 这篇文章.

宅视频:裸

- 小鱼儿 - 宅映像
明天公司组织去贵州走红路,唱红歌,一去就是三天,所以这三天俺估计就没法发博客了,等我被红歌洗脑后回来再给大家继续胸奴吧. 今天要给大家推荐的是一段视频,名字叫《裸》是不是很带感,至于内容,大家看了就知道了. 这段关于女优和AV的故事片是不是相当泪流满面(坑爹啊. 里面竟然没有我们想要的AV镜头,这才真是让我泪流满面).

ifanr 访谈:谁在《失控》?

- IwfWcf - 爱范儿 · Beats of Bits
Twitter 之父 Jack Dorsey 曾经说过:“追求细节的完美,但是,控制细节的数量”. 今天 iPhone 上的 Apps 虽多,真正做到这点的,却非常有限. 唐茶版《失控》,似乎可以算最新的例子. 我代表 ifanr 采访了唐茶计划总监李如一. 为大家带来《失控》背后的人和故事. ifanr : 你在广泛的领域做过事情:媒体,艺术,语言⋯⋯做了这么多看起来都很有趣的事情后,为什么会选择做电子书.

AWK之父访谈录

- Eastar Lee - 牛博山寨 编辑推荐
计算机科学家、编译器专家Alfred V. Aho一直紧盯计算机科学研究前沿. Aho教授一直致力于编程语言开发,曾任贝尔实验室计算机科学研究中心副主任,现为哥伦比亚大学Lawrence Gussman 计算机科学系教授. Aho教授不仅是“龙书”系列的作者之一,而且在上世纪70年代同Brain Kernighan 和Peter Weinberger一起开发了模式匹配语言AWK.

Google CEO Larry Page访谈录

- - 36氪 | 关注互联网创业
编者注:Google CEO Larry Page刚刚接受了财富杂志的专访. 这是他自2011年担任CEO以来第二次接受平面媒体如此规模的长篇专访. 在媒体面前腼腆的他此次侃侃而谈,所涉及的话题十分广泛,讨论到了移动计算、搜索的发展,Google的未来,与苹果的关系、对摩托罗拉的整合,以及对管理的认识等话题,我们编译如下供大家参考.