欢呼吧!App Inventor for Android 使用总结
昨日我们报道了Google App Inventor for Android,它是一个基于网页的开发环境,即使是没有开发背景的人也能通过他轻松创建Android应用程序。这个产品已经测试了一年之久了,主要是和教育机构合作进行的测试,因此,在课堂上接触到它的学生们很可能成为Android应用暴增的主要力量。纽约时报的一篇报道引用了项目带头人Harold Abelson(MIT教授)的话:“App Inventor编写的应用程序或许不是很完美,但它们却是普通人都能做的,而且通常是在几分钟内就可完成。”那么,会不会今后成千上万的Android用户都会为自己的设备编写应用程序呢?说不准。
今天早晨,我花了大概90分钟在App Inventor上编写了几个应用程序。我对此非常兴奋,不过我觉得这不是真的‘普通人’就能完成的。除非你只想做一个如‘Hello World’的简单应用,否则你就得通读所有文档,而且现有的文档感觉还不太够,不过对于学生课堂学习应该是很充分了。对于普通人来说,App Inventor学习起来并不是那么容易的,当然,相比直接编写代码要简单的多。
在我介绍我使用App Inventor的经历之前,我想有必要公布一下我的编程背景。在高中,我学习了一年的Visual Basic,其后我还选修过几门C++的课,不过从没实战过。我也从未用过和App Inventor很像的Scratch。相比于专业开发者,我当然差距很大,不过相比于‘普通’Android用户而言,我的编程知识还算不少。
相对于安装Eclipse和Android SDK,启动App Inventor要更简单,不过还是有些麻烦。首先,你要确保正确版本的Java已经开启;然后,你要为你的设备安装一个客户端;接着,你要为你的Android手机更改一些设置(允许安装未知来源的应用,开启开发人员模式等等)。将手机连上电脑,登录进App Inventor,最后再允许Java应用启动,你就可以玩弄App Inventor了。看起来过程好像有些麻烦,不过如果你知道这些该怎么做的话,整个过程应该不超过10分钟。
开始使用App Inventor后,你会发现它由两个部分构成:设计视图和块编辑视图。帮助文档很好解释了这两者的区别,大概就是:你可以在设计视图中完成诸如添加按钮、文本框等程序外观的设计,设计视图就是一个网页;在块编辑视图进行真正的代码编辑,块编辑视图就是一个Java应用。如果你将Android设备连接到了电脑上,你还可以随时在手机上看到你对应用程序做的修改。
我首先想到的是开发一个TechCrunch应用程序,用户可以通过关键词监测TechCrunch的文章,一旦有相关的报道这个应用程序就会提醒。程序的外观设计很简单——首先在设计视图放置一个文本框、一个标签、一个按钮,再把宽度等设置一下,不要太丑就行。接下来就到了难的了:让这些按钮真的工作起来,这就需要使用块编辑视图了。
块编辑视图让我想到了苹果的Automator,通过Automator用户可以将自己对应用程序的逻辑绘制出来,当然,块编辑视图要复杂的多。如果App Inventor已经有了可以完成你要的任务的组件,那么让应用程序按你的思路工作就很简单了,比如,在用户按下按钮时要保存文本框的内容到数据库就很简单。不幸的是,已有的组件还不能很好的满足我们的需求,在我使用App Inventor的过程中就因此而失败了两次。
先找到合适的组件再下手
起初我打算使用RSS feed来监测TechCrunch的文章,我觉得这个组件应该是有的。可事实是:真的就没有!不过,App Inventor却有一些现成的Twitter组件,包括一个搜索功能——或许我可以通过监测TechCrunch Twitter feed来完成用户的检索?于是我将相应的组件拖进来稍加设置修改(大概只花了两分钟),我的应用程序就能按照用户输入的内容呈现Twitter上的搜索结果了,太酷了。不过这却不能实现只检索一个Twitter帐号的状态更新(搜索结果是从所有的tweet中得到),看来我是没有能力用App Inventor来实现找个小项目了,不得不搁置一旁。更新:貌似我可以使用join块在搜索命令前增加“from:techcrunch”来实现这个功能。
于是,我开始了我的第二个小项目,我把它叫做Draw N’ Send。考虑到第一个小项目遇到的困难,这次我要做的应用程序和App Inventor中的一个叫PaintPot示例应用很相似,用户可以通过它绘制简单的图案(我想增加一个email功能,发送绘制的图案)。起初进展很顺利,毕竟有一个一步步的示例教程:我很快就把颜色按钮安放到位,我已经可以在画纸上绘制彩色的点和线了。现在基本的绘制功能已经到位了,我就开始研究我的email功能。可是我再次遇到个问题:不知道什么原因,似乎没有组件能完成将我绘制的图案保存成图片文件的功能,因此没法完成email。我不得不再次放弃。
总结和展望
最后总结一下。首先,尽管App Inventor号称是面向‘所有人’的开发环境,你仍旧要花时间学习它,才能真正的顺畅使用。不过学习可不是那么容易的,现在的示例、文档都还不够充分。(如果你想读到更多的示例和文档,可以参考南佛罗里达大学教授Dave Wolber的网站Appinventor.org,它并不隶属于Google。)
另外一个很重要的事情是App Inventor中的组件种类还不够多,如果‘普通人’去使用App Inventor,却没有自己要的组件,或许他就得和我一样不得不放弃了。Google称他们在努力丰富组件库,而且Component Developer Kit(组件开发工具包)可能会让组件数目迅速增加(译者注:或许未来 的组件库将和WordPress的插件库类似)。但现在,你可以先去熟悉各种功能,到时候你就可以使用App Inventor编写出色的应用了。
English Version by Jason Kincaid