译 者 序
在当今的移动互联网时代,绿色机器人Android可谓家喻户晓。Android开发自然也随着搭载Android平台的智能手机、平板电脑和可穿戴设备的热销而变得异常火热。目前人们所熟知的Android集成开发环境包括Eclipse和Android Studio,除此之外,本书的主角App Inventor随着新版本的发布也开始得到越来越多的关注。App Inventor是一款完全基于Web的、所见即所得的集成开发环境。本人从事软件开发工作已经近十年,见过许多所见即所得的开发工具,但本书介绍的App Inventor着实算得上是非常有特色的一款工具。
得益于浏览器和网页前端技术的发展,如今网页上已经能够承载非常复杂的应用。App Inventor充分利用了这些技术,并提供了一个全部基于Web的开发环境,用户不需要安装任何软件或插件就可以开始进行开发。此外,App Inventor中的工程会默认保存在云服务器上,因此在自己账号中所做的开发可以很轻松地在不同的开发机之间“漫游”,根本不必担心同步问题。
主流的客户端框架大多采用事件驱动的编程方式,这在Android中也不例外。App Inventor最大的优势就在于事件处理器中并不是一行行的代码,而是一个个形象生动的拼图块。有趣的是,这些拼图块具有不同的颜色、形状和类型,用来区分不同的变量、过程或控制逻辑等编程元素。用户还可以根据需要来设置和修改这些拼图块的形状,例如改变过程输入参数的数量、增减列表中元素的个数等。总之,用户可以在不编写任何代码的情况下完成事件处理操作。
对编程感兴趣的初学者、教授程序设计思想和编程算法的老师,当然还有广大的Android开发者均是本书的目标读者。App Inventor易于上手、所见即所得的特性可以帮助初学者克服诸多障碍,而且非常便于演示应用的效果。另一方面,App Inventor中提供的界面组件和功能模块已经足够强大,能够轻松满足大多数主流的Android应用开发需求。与其他需要编写代码的开发环境相比,App Inventor能够尽可能快速地开发出应用的雏形。在如今激烈竞争的环境下,开发速度很多时候就是制胜的关键。希望本书能够对读者有所帮助。
本书的翻译和校对工作均是利用业余时间完成的,因此牺牲了不少本应该陪伴家人的时间,在此感谢他们的理解和支持。此外,黄宇轩、李一夫、刘峰、龙伟、穆玉伟、张宇欣、周俊健、朱文等人也参与了本书部分章节的翻译工作,在此一并对他们表示感谢。
由于译者水平有限,加之时间仓促,翻译中难免会有一些疏漏和不当之处,敬请广大读者批评指正。
靳晓辉
2015年4月
作 者 简 介
Derek Walter是一位专注于移动领域的自由撰稿人。他定期为PCWorld、Macworld、Greenbot和其他一些关注消费技术的网站供稿。他还在撰写关于移动App和其他一些技术话题的博客。他拥有大众传播/新闻学的学士学位,还拥有乔治?华盛顿大学教育技术专业的硕士学位。作为一名任课老师和兼职大学辅导员,Derek在教育行业工作了长达15年之久。
Mark Sherman是计算机科学教育领域的研究人员,并且在美国、印度和中国向本科生讲授计算机操作、编程和机器人学。他是一位MIT App Inventor高级讲师,教授学生们使用App Inventor进行移动App设计,同时还为老师和教员们培训最佳实践和教育方法。他拥有马萨诸塞大学罗维尔校区的计算机工程专业学士学位和计算机科学硕士学位。
致 谢
来自Derek:
感谢妻子Candy,她很了不起,在我写书的艰苦过程中,她一直支持着我。她的力量和勇气让我能够熬过一个个深夜和精疲力竭的周末,并勇于直面与这个项目一起到来的挑战。
感谢MIT App Inventor团队成员们的支持以及他们在这样一个使得计算机编程平民化的重要项目上的持续努力。另外,还要感谢Laura Lewin和Pearson团队给予我这位首次出书作者的指导。
来自Mark:
感谢MIT的AI团队、AI高级讲师课程的组织者Lyn Turbak,特别是Fred Martin。是你们所有人的帮助成就了今天的我,我所积累的全部知识都归功于你们。
感谢我亲爱的朋友们,他们包容我在许多活动中还要写书和工作,并且经常在我睡着时,善意地将笔记本电脑从我面前拿开。我很感激。尤其感谢Stacy对我无微不至的照料。Stacy,你会嫁给我吗?
前 言
智能手机本质上就是个人计算机。移动设备与我们形影不离,并且已经成为个人效率和生活方式必需品的核心部分。我们将其用于收发消息、社交媒体、Google搜索、游戏、拍照,当然还有打电话。
通过为这些设备引入一系列可扩展的App,Android操作系统让市面上的大多数智能手机变得更强大。根据Google的统计,目前有超过10亿部活动设备正在运行着Android系统。
或许你现在已不满足于仅在自己的智能手机上使用移动App—— 是时候该自己创建一个App啦。你可能只是想改进并编写一个简单的App,或者想出了一个尚未出现的新概念。不管怎么样,MIT App Inventor都是一个极好的起点。
App Inventor是一款简单易用的工具,适于构建简单的和复杂的Android应用。你可以很容易地将所创建的App移植到手机上、与其他人分享,甚至发送到Google Play商店,面向全球所有的Android设备发布。
对于那些想要掌握一门编程语言的人,MIT App Inventor可以作为一个获得更复杂编码技巧的优秀桥梁。与向新用户展示令人沮丧的消息和不熟悉的命令不同,App Inventor有着可视化的友好界面,它使用拖曳、放置和连接拼图块的方法来编写应用(参见图P-1)。
图P-1 MIT App Inventor的Blocks Editor(块编辑器)。可视化编程的
设计目标是帮助初学者掌握构建移动应用的窍门
尽管App Inventor不需要编写代码,但它建立在与成功的程序员编写优秀应用所需要的相同原理之上。无论你今后是深入研究编程,还是使用App Inventor开启新的事业,使用App Inventor都将会是一段非常激动人心和充满挑战的经历。此外,Android开放和灵活的本质让其成为入门的完美之选。
MIT App Inventor是什么
MIT App Inventor是一款基于Web的工具,用于构建Android App(参见图P-2)。通常称其为可视化编程,意思是说用户能够在不输入任何计算机代码的情况下完成编程任务。
图P-2 MIT App Inventor主页,这里是App创造之旅的起点
App Inventor由MIT的移动学习实验室积极地管理和开发(该项目最初由Google公司构建)。作为向没有编程经验的人介绍计算机科学和App开发原理的一种方式,App Inventor正在教育工作者当中变得越来越流行。想要涉足编程或者渴望增长智能手机App工作方式相关知识的人可以将其作为一个极好的出发点。
工作主要在App Inventor的两个关键区域展开:Designer(设计器)和Blocks Editor(块编辑器)。在Designer中,你要确定该App将执行何种操作以及它的外观(参见图P-3)。
图P-3 在App Inventor的Designer中设计该App并为其添加关键功能
程序编写在Blocks Editor中完成。在这里告诉App应该做什么并给出用于实现目标的特定指令。
我们通过连接拼图块来编程特定的功能。随着时间的推移,你将了解每个块的用途并掌握让它们彼此交互的多种方法。没有交互的片段将不会彼此相连——这是另一种有助于初学者对入门级的编程原理产生感觉的方法。
MIT在2013年12月发布了App Inventor 2,这是一款功能更加强大且易于使用的工具。最显著的改进是所有工作都能够在浏览器中展开(之前的版本需要下载软件来支持某些功能)。
最重要的改进当属屏幕模拟器,它将一台虚拟的Android设备屏幕嵌入你的计算机。使用该模拟器可以观察到当App投入使用时的外观和功能。对于那些没有Android设备的人或者想要通过在计算机屏幕上查看App构建情况来监督学生们进展情况的教育工作者来说,这是极其有用的。
App Inventor还提供了一种用于在工作过程中实时使用App的方法:AI Companion App(参见图P-4)。有了这款可以在Google Play上免费下载的应用,你就能够在开展工作的同时看到自己的App的变化和进步。Companion App也能够以无线方式工作,因此你在App Inventor中工作时并不需要把自己的手机物理地连接到计算机上。
图P-4 通过AI2 Companion查看一款使用App Inventor开发的App。
这让你能够在开发过程中看到App的执行方式和界面外观
为什么选择Android
Android不仅是最流行的操作系统,而且最具可扩展性。它构建在主流手持设备制造厂商(例如,三星、HTC、LG和摩托罗拉)的多种旗舰设备之上。App Inventor的搭建充分利用了Android所提供的定制化和灵活性。
App Inventor还是一款为那些几乎没有编程经验的人而设计的工具。其他的平台均有非常高的入门门槛,但使用App Inventor,很容易学会在世界上最流行的移动平台上构建App所必需的技巧。
尽管你所创建的许多App很可能是用于练习或者与人分享的(参见图P-5),但MIT App Inventor也能够创建可以上传到Google Play商店进行发布的App。只需要一次性缴纳25美元,任何人都可以发挥他的技能并成为一名已注册的Android开发者。第12章讨论这个过程并演示实现方法。
图P-5 AI2 Companion中的一款App Inventor应用
本书涵盖的主要内容
本书到底讨论哪些内容呢?下面简要介绍接下来12章中的关键点。
第1章:编程入门
在开始介绍MIT App Inventor之前,了解一些计算机科学的关键原理是很重要的。该章讲述移动操作系统的关键部分以及计算机程序员在创建应用时应该如何思考。
第2章:使用MIT App Inventor构建应用
该章详细介绍App Inventor的关键组件。Blocks Editor(块编辑器)和Designer(设计器)在这里得到了更加充分的关注,而且你将开始构建自己的第一个App:Sherlock Is Watching。
第3章:App Inventor工具箱
App Inventor有一些用于设计和构建Android App的功能强大且易于使用的工具。该章的焦点在于Designer(设计器)中可用的不同组件。该章可以视为讲述Designer不同功能的优秀资源,而且值得经常参考。
第4章:变量
变量是App Inventor的关键组件之一,你所构建的几乎任何App都将以某种方式使用它们。该章涵盖了关于变量的核心知识,并提供了一些高效使用它们的策略,尤其是在构建本章示例App的上下文中。
第5章:过程
在亲手构建了一些基础的App之后,现在应该更进一步并开始使用过程了。当需要构建更大、更复杂的App时,过程可以使你的生活更轻松,因为它能够让你将代码片段组合起来,供以后重新调用。
第6章:使用列表
与变量一样,列表是将要使用App Inventor构建的大多数App的一个核心组件。列表可以承载大量的数据或信息。该章完成了一个测验App,并提供了一些在列表使用方面的最佳实践。
第7章:游戏和动画
单调的工作和生产没有任何乐趣。该章讲授App Inventor中游戏和动画功能的基础知识。该章的成果是一个简单的游戏,它可以作为你在其他基础的或更复杂的游戏中使用App Inventor的起点。
第8章:多屏幕和调试技术
App通常有多个屏幕,这样会更加清晰并让用户能够更顺畅地访问App中的内容。该章关注于使用多屏幕的策略并探讨了在应用中构建它们的方法。该章还包含一些App Inventor的调试技巧。
第9章:使用媒体
人们所使用的大多数智能手机App都是富媒体的。你将在这里得到一些底层知识并练习把媒体功能构建到自己的App中,而且会学到哪些功能是可以在App Inventor中实现的。
第10章:传感器
许多App都可以感知位置,允许用户查找特定的信息或者基于位置自定义其交互方式。该章展示如何将这些工具中的一部分构建到你自己的App中,并说明了它们是如何提升用户体验的。
第11章:数据库
数据库听上去可能并不令人激动,但它们是所有依赖于信息存储的优秀App中的一个核心特性。该章考察了在不同场景下高效使用数据库的方法。
第12章:发布App
将构建出来的App仅留给自己使用没有什么乐趣,应该将它分享给其他人。这很简单,就像把文件发送给朋友或家人,或者将它置于Google Play商店中向全世界发布。不管选择哪种方式,该章都会协助你达成目标。
下一步
使用App Inventor是一种构建Android App的极好方式(参见图P-6)。和计算机科学领域的诸多其他技巧一样,构建移动应用在创造性和逻辑思维方面都是一种锻炼。你需要解决理性的、复杂的问题,与此同时构建出具有创造性的视觉体验。尽管你可以非常迅速地掌握App Inventor的基础知识,但是要构建更加强大和复杂的应用,还需要额外的时间和实践。
图P-6 可以使用App Inventor创建各种应用类型
第1章以一些计算机科学的核心原理作为开始。了解操作系统的工作方式以及开发者在构建软件时实际要做的事情将为你在编写高效率程序方面奠定坚实的基础。在此基础之上,跟随着本书的进程,你将为构建各种示例Android App做好准备,并进而将这些技能扩展到你自己的Android App中。
本书在线资源
www.tupwk.com.cn/downpage
