MIT App Inventor是一款图形化的APP开发环境,用户能够以拖曳积木的形式开发Android平台的应用程序。本书以App Inventor 2.0为开发平台,结合大量的具体案例,如音乐摇摇乐、GPS计步器等,深入浅出地介绍了App的开发过程和App Inventor的编程功能,并且逐步讲解第三方API应用接口调用,App和Arduino硬件、Web服务结合等高级应用。
本书适合中学生和学有余力的小学高年级学生,同时也适用于零基础的大学生、成年初学者。只要对安卓App开发感兴趣,或者对创客感兴趣,本书将是一本不可多得的创客秘籍。
说起App Inventor在我国的发展,老巫婆(金从军老师)是一个无法绕开的名字。她和她的丈夫张路*早将App Inventor 2汉化,并推出离线版,为App Inventor的国内推广,做了很多重要的工作。我和我的儿子谢集自学App Inventor 2,全靠她翻译的帮助文件。有趣的是,我在2014年才从老巫婆的博客上发现一个细节: 2013年上海创客嘉年华活动中,我和吴俊杰等教师在创客论坛上演讲,呼吁创客们关注中小学教育,坐在*排拿着摄像机的就是她和张路老师。后来她告诉我,那天听了我们的演讲后,他们就下决心要为儿童编程做点事,回到北京就开始做App Inventor 2汉化、翻译工作。
序言
算起来,我应该是App Inventor的国内早期用户了。大概是2011年年初,我在一个儿童编程软件的排行榜中了解到App Inventor。作为一个信息技术学科的教师,我早已无法忍受教材的滞后,非常期待能开设一门关于智能手机编程方面的校本课程。其实早在2010年左右,我就买过几本安卓手机编程的书,但觉得相对于中学生来说,Java的技术门槛有点高,最终放弃。通过一些介绍性的文章,我了解到App Inventor类似Scratch,是不可多得的儿童编程平台。可惜好事多磨,我久等还是没有下文。2011年认识了李大维,通过向他打听情况,得知这个项目被谷歌关闭了,很失望。幸而很快又陆陆续续地传来一些新消息,说App Inventor项目最后移交到美国麻省理工学院(MIT)云云。于是继续等待,有空就上网搜搜新动态。2012年,我终于能访问MIT的App Inventor项目网站了。虽然是英文版,但是摸索着还是成功地编写了几个小程序。我到现在还清楚地记着,编写的第一个程序就是点击我的名字,然后跳转到我的新浪博客。那段时间,我正好在写《S4A和互动媒体技术》一书,忙里偷闲中给S4A编写了一个App,实现了将手机上的方向、加速度和位置等传感器信息以远程传感器的形式,传送给S4A。这一App的编写过程后来也整理为一篇文章,作为《S4A和互动媒体技术》的附录。那段时间,国内还找不到一本关于App Inventor方面的原创书籍,可参考的资料很少。说起App Inventor在我国的发展,老巫婆(金从军老师)是一个无法绕开的名字。她和她的丈夫张路最早将App Inventor 2汉化,并推出离线版,为App Inventor的国内推广,做了很多重要的工作。我和我的儿子谢集自学App Inventor 2,全靠她翻译的帮助文件。有趣的是,我在2014年才从老巫婆的博客上发现一个细节: 2013年上海创客嘉年华活动中,我和吴俊杰等教师在创客论坛上演讲,呼吁创客们关注中小学教育,坐在第一排拿着摄像机的就是她和张路老师。后来她告诉我,那天听了我们的演讲后,他们就下决心要为儿童编程做点事,回到北京就开始做App Inventor 2汉化、翻译工作。《跟我学App Inventor 2》这本书从策划到编写、出版,经历了好几年,周期比较长。和出版社签约是在2013年,因为App Inventor一直没有出官方版本,我就有合理的借口拖延下去。但是,关于App Inventor的校本课程,则从2013年下半年就开始开课了,书中的很多案例都是在教学中日积月累而成的。2014年年底,MIT在广州市教育信息中心建立了官方服务器后,我们终于开始了写书的工作。本书的第1章、第2章主要由张洁负责撰写,第3章、第4章主要由郑祥负责撰写,第5章则由我完成。郑祥是温州四中负责创客教育的教师,他2012年参加工作后就和我师徒结对,开始研究App Inventor、Arduino等技术,是国内最早进入创客教育领域的中小学教师之一,在国内创客教育圈内已经小有名气。张洁是南京师范大学的教育技术硕士(现为南京市第十三中学教师),2014年开始在温州中学实习,并开设App Inventor课程。这两位教师在App Inventor方面都积累了大量的教学经验。因为我工作繁忙,在书的目录设计方面考虑不太周到,让郑祥和张洁多走了一些弯路,做了些无用功。在长达一年多的编写时间中,我们不断推翻原稿,增加新内容,收获还是很多的。关于App Inventor和Arduino、Web的互动,是本书的亮点所在。我们希望广大创客教师能从本书中得到启发: 只有软硬结合,才能做出更多有趣的创客作品。我们尤其不希望大家仅把App Inventor看成一款学习编程的软件,而是希望中小学生能够通过对手机中各种传感器的研究,以及对手机能支持的开源硬件的研究,设计出各种创意应用。感谢南京师范大学的刘正云同学为本书做了认真的审读,并提出了宝贵的意见。感谢丛书主编郑剑春老师,能容忍我们一而再、再而三的拖稿,最后还给这本书很高的评价。也感谢我的儿子谢集,书中有几个案例是他编写的。因为他对编程的喜欢,才让我有了更大的决心去做儿童编程的推广工作。由于水平有限,书中难免存在疏漏和不足,恳请读者批评指正。书中涉及的全部软件和源文件,都可以在我的博客上下载(博客地址: http: //blog.sina.com.cn/xiezuoru),部分工具还会继续更新。欢迎发送邮件到xiezuoru@vip.qq.com,期待得到你们真挚的反馈。
谢作如2016年5月
谢作如:温州市百名领军教师,温州市名师,温州市551人才,浙江省教育科研先进工作者,温州大学客座研究员及硕士生导师,南京师范大学客座研究员,北京师范大学访问学者,浙江省中小学信息技术教育分会理事,中国教育技术协会信息技术专业委员会理事。2010年获菁华杯全国新课程中学优质课评选一等奖,2011年获全国高中信息技术优质课大赛特等奖。
第1章Android和App Inventor11.1Android简介11.1.1智能手机与Android系统11.1.2Android系统的广泛应用21.2Android的应用开发工具41.2.1Android常见开发工具41.2.2Android图形化开发工具51.3App Inventor 2概述61.3.1App Inventor 2可以做什么61.3.2App Inventor 2在中国6第2章初识App Inventor 282.1App Inventor 2环境搭建82.1.1账户申请82.1.2登录App Inventor 292.1.3App Inventor 2程序调试92.1.4App Inventor 2操作界面132.2我的第一个App162.2.1新建项目172.2.2界面设计182.2.3编程实现202.2.4程序调试202.3基本组件与运算212.3.1基本组件212.3.2基本运算222.3.3基础任务1温度转换器242.4变量与流程控制272.4.1变量272.4.2基础任务2点我282.4.3流程控制的分支结构292.4.4基础任务3计算成绩等级302.4.5流程控制的循环结构322.4.6基础任务4计算前n个正整数的和322.5自定义过程与函数352.5.1过程的定义与调用362.5.2基础任务5过程362.5.3函数的定义与调用382.5.4基础任务6求和小程序382.6媒体组件392.6.1常用组件介绍392.6.2基础任务7音乐播放器402.7传感器组件432.7.1方向传感器组件432.7.2基础任务8指南针432.7.3位置传感器组件462.7.4基础任务9经纬度转换器472.7.5加速度传感器组件492.7.6基础任务10加速度观察器492.7.7计时器组件512.7.8基础任务11最后10秒钟51目录 跟我学App Inventor 2〖2〗〖2〗 〖1〗 第3章App Inventor 2的编程实践553.1App专题1健康测试仪553.2App专题2音乐摇摇乐613.3App专题3打地鼠653.4App专题4相片通信录713.5App专题5GPS计步器82第4章App Inventor 2和Arduino944.1Arduino和Mixly944.1.1Arduino简介944.1.2Mixly简介954.2基于蓝牙的串口通信964.2.1试验1将Arduino的串口信息显示在手机上974.2.2试验2用手机串口控制Arduino1014.3范例1手机控制的LED灯1034.3.1工作流程分析1034.3.2硬件连接1034.3.3界面设计1044.3.4编程实现1054.3.5程序调试1074.4范例2挥手机器人1094.4.1结构搭建1094.4.2运行原理分析1094.4.3界面设计1114.4.4编程实现1124.4.5程序调试1144.5让手机拥有更多传感器1154.5.1让手机显示外界温度1154.5.2接收多个传感器数据1184.5.3拓展应用122第5章App Inventor 2和Web1245.1App Inventor 2的网络组件1245.1.1网络微数据库及范例1245.1.2Web浏览框及范例1265.1.3Web客户端及范例1275.2Web客户端的高级应用1315.2.1中文编码和构建HTTP头部信息1315.2.2解析Json1355.3体验物联网技术1395.3.1中国移动物联网开放平台的设置1405.3.2编写GPS自动记录器1455.3.3物联网应用扩展1485.4App云服务器的设计1495.4.1App云服务器的设计1495.4.2App云用户管理系统的开发1505.4.3App云用户管理系统的应用1555.5综合范例听写神器1585.5.1开发背景1585.5.2工作原理分析1585.5.3服务器端和WebAPI的设计1595.5.4教师端的设计1625.5.5学生端的设计1635.5.6听写神器的使用说明166附录AApp Inventor 2离线版的安装与使用169附录BAI伴侣的安装与使用178参考文献184后记185