# 从零开始学习构建 webOS 程序

- 作者：张恒
- 发布时间：2011-04-06 11:02
- 分类：特稿
- 原文：https://www.ifanr.com/37891

> 这是 PreCentral 开发者论坛的新人 [jbg7474](http://forums.precentral.net/members/155101.html) 编写的一篇文章，它的有趣之处不单在于对 webOS 初学者的指导，还在于表现出一种探索和尝试的精神。凡事你不去尝试它，就永远学不会。Just Do It。

by [jbg7474](http://forums.precentral.net/members/155101.html) from [PreCentral](http://www.precentral.net/zero-webos-developer-one-month?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Precentralnet+%28PreCentral.net%29) \| [@zhangh109](http://t.sina.com.cn/zhangh109) 翻译，转载请注明 ifanr.com [译文链接](http://www.ifanr.com/37891)

曾经有没有想过为自己的智能手机编写程序？我就有过，这是多么的酷。

如果你看着那些 PreCentral 上的超级开发者和美轮美奂的应用程序而没有一丝羡慕的话，那简直就不可理喻。也许 webOS 平台上的程序数量赶不上其他的平台，但质量绝对一级棒。

![ares-code](https://s3.ifanr.com/wp-content/uploads/2011/04/ares-code.png)

每一款伟大的程序背后都有一个或几个伟大的开发者。我也想成为他们中的一员。

- 首当其冲的原因是，我需要一个爱好。曾经花费了太多时间看电视和电影，充当消费者。现在是时候审视和完善自己了。
- 其次，我看到了不久的将来，惠普电脑（HP）将运行 webOS 的巨大机会。百万级别的装机量可不是小数目，说不定可以在 webOS PC 上捞到一笔金。
- 最后，即便 webOS 没有获得长足的发展，我也学会了 web 开发的技能，在这个网络无处不在的世界里非常受用。

看来 webOS 的开发真是件好事情，现在怎么做？对 JavaScript 我可是一窍不通，仅仅是懂点 HTML 而已。那么我就开始求助，开始在 Twitter 上询问如何学习 JavaScript 。这不但得到了一些资深 webOS 开发者的帮助，而且还得到了他们真诚的建议。他们也很高兴能帮助新人。

有人建议使用 w3schools.com 这个网站，上面有免费的教材和代码片段。它能有效地帮助新人学习 HTML，JavaScript，CSS 和其他必备的基础知识。而且它提供了实验区，你可以打开两个窗口对比不同代码的显示效果。我用了近一周的时间泡在上面学习 HTML 和 JavaScript。

另外一项建议是 Douglas Crockford 编写的 《JavaScript: The Good Parts》（中译本是《[JavaScript 语言精粹](http://book.douban.com/subject/3590768/)》）。有些人说 JavaScript 是一门非常灵活的语言，缺点就是太灵活了，这本书能帮助新人避免坏习惯，我一直在学习它。

![javascript-the-good-parts](https://s3.ifanr.com/wp-content/uploads/2011/04/javascript-the-good-parts.png)

经过 w3schools 的训练，我已经做好了开发 webOS 应用程序的准备。先去 [developer.palm.com](https://developer.palm.com/) 注册一个账户，了解 webOS 的基本政策，或许还应该下载免费的 SDK ？不不，先等等。

我决定从 [Ares](http://www.precentral.net/project-ares-hits-1-0-adds-components-undo-more) 开始，这是一套 webOS 的开发方案（和工具），你可以在网页上就完成一个应用软件的开发。Ares 有一个图形化的界面编辑工具，用它可以非常顺手地摆放各种元素。实际上，在线开发真是一件伟大的事情，你只需要打开一个浏览器窗口就够了。我甚至可以趁午休时间，随便在什么电脑上展开我的工作，积少成多。

Ares 也提供了几个非常有用的教程。一个是手把手教你开发 Flickr 程序，另一个是开发简单的地图程序。你只需要把代码复制粘贴就能完成教程，但代码中缺乏注释，缺乏有效信息。纯粹的新人恐怕不知道怎么去面对它，好吧，算是小瑕疵。

![ares-flickr](https://s3.ifanr.com/wp-content/uploads/2011/04/ares-flickr.png)

幸运的是，适应一小段时间后就有感觉了。你必须不断地尝试它，观察它的反应。Ares 可以连接到一个模拟器，你可以一边修改代码一边看运行结果。我感觉这是 Debug 的最好方式，你可以随时暂停程序修复 JavaScript 代码，所见即所得。用这样的学习方法，进步神速。

Ares 也有一些缺点。例如 webOS 程序中浮在底部的那些按钮，就无法用 Ares 的 GUI 编辑器直接生成。因为它们不是实例化的按钮。

这就是真正的难点所在，开发 webOS 程序并不只是用 JavaScript 和 HTML 一起工作，你还必须知道 webOS 系统本身的规则。以前有一套 Mojo 的框架，现在又进化成 Enyo 。举个例子，你需要查阅文档才知道 Mojo 中如何把一个“场景”给“推”出来。到哪里才能获得文档呢？一般在 developer.palm.com 网站上可以看到最新的。

除了 Ares ，你也可以安装 Eclipse 插件，配置自己喜欢的开发环境。Palm 公司真的很贴心，提供了多样化的环境，按照你的习惯来吧。

![gentree-emulator](https://s3.ifanr.com/wp-content/uploads/2011/04/gentree-emulator.png)

在试水之后，我就开始尝试稍微复杂一点的东西。例如从某些网站抓取内容，当然他们不会轻易地提供支持。于是继续参与 PreCentral 的讨论区，跟高手们交换想法，碰出新鲜的点子。然后再花几个星期做出原型，拿到讨论区让大家测试。很高兴的是，一两天中就有十多人愿意帮忙测试，并发现一些缺点。所以现在我的作品更加强大，更加符合用户的需求。

看看吧，我只是一个从未接触过 webOS 的开发者，对未知的事物充满好奇并试图去了解它。每天的挑战都是新的，未来还有更多技术等着呢，例如 Enyo。不是每个人都有勇气来尝试开发，但你只需要一点点坚持和一个 Web 浏览器，就能踏入这个圈子。这是多么好的机会，用耐克的话说就是：“Just Do It.”
