基于App Inventor开发平台的移动程序设计实践
徐衙迪
[摘 要] 程序设计实践是每个计算机专业学生学习必经之路,将书本上的理论知识转化为实际的应用。然而,在Android、window应用程序设计中因为项目难度较大,代码错误排除能力不强导致学生容易失去学习的兴趣。介绍基于APP Inventor的“小鸡跑跑”应用程序设计为例,以实践应用驱动学习,使学生在未完全掌握编程语言之前,即可独立完成项目,培养学生学习兴趣,养成良好的编程思维。
[关 键 词] 程序设计实践;App Inventor;编程思维
[中图分类号] G642 [文献标志码] A [文章编号] 2096-0603(2018)01-0160-02
一、App Inventor介绍
App Inventor是谷歌推出的一款基于浏览器且免费使用的手机软件开发工具,用户能够通过软件开发安卓手机系统的应用程序。在2012年移交到麻省理工学院运营,由于该学院与教育机构合作进行测试,所以App Inventor在课堂中被各类学生接触到。同时因为它的众多特点,被创客列为常用开发工具。App Inventor具有以下优点:
(一)易于搭建开发环境
App Inventor环境搭配具有步骤简单,方便操作的特点。搭建方法为下载App Inventor和安装Java虚拟机。即使没有良好的计算机基础也能较好完成工作同时软件占用空间并不大,对其他软件安装影响不大。
(二)开发过程方便
App Inventor提供积木式编程方式,从而避免了初学编程者因个别编码和指令错误,降低了程序设计的门槛,也极大地提高了编程效率。它里面添加了蓝牙、GPS、光电、加速度等传感器编程模块,开发者只要在调用模块的时候添加相应的参数即可。开发者进行可视化编程,从而更好地进行逻辑设计,提升学习效率。
(三)编程基础要求不高
在视图化编程中,各代码已封装在模块中,不需要编码,里面添加了蓝牙、GPS、光电、加速度等传感器编程模块,开发者只要在调用模块的时候添加相应的参数即可,只需调用各模块即可。开发者可直接运用抽象思维完成设计,不需要理解难懂的理论知识,从而大大调动了学生的积极性。
(四)开发时间短
App Inventor可在几十分钟内完成程序,而要用Java语言需几天才能完成。App Inventor可直接通过下载伴侣通过无线网络连接,实现了边编程边看结果的设想,可直接排查错误,节约了时间。考虑到上课时间简短,App Inventor可明显提高课堂效率。
(五)在线离线皆可编程
在线编程只登陆http://app.gzjkw.net,而且可将所编写的程序存储在云端,随时随地查看。也可以在学校机房安装离线版软件,减轻对学校网络速度的压力。
二、程序设计实践的意义
华东师范大学祝智庭教授认为,关注并投入娱教技术研究与应用实践,为教育技术开辟了一个新领地,对促进教育技术学科发展具有重大意义。基于编程思维,App Inventor的可视化编程可结合有价值的实际问题,培养学生的编程思维。在教学中教师基于App Inventor探索师生研讨,学生互相合作等多种形式培养学生逻辑编程能力。程序设计之前,在教学者建立的场景中学生需要提出待解决的问题,并对具体问题进行总结、归纳。经个人思考或多方式的研讨,学生需结合App Inventor提出解决方案,同时设计逻辑图,使解决的问题具体形象化。最后学生根据自己创意设计完成项目,掌握编程思维。
在普通编程语言实践中,语言的掌握将占据大片时间,同时语法错误将极大地影响学生编程的主动性。基于App Inventor应用程序实践避免了这一问题,使学生和老师不再专注于语言使用的正确性,而是编程能力和创新能力,这也是现代教育的需要。
三、程序设计
(一)逻辑设计
设计在游戏中可以通过触碰拖动恐龙追逐小圆球,一旦恐龙追到小球便立即变大。而小鸡将会一直跟随恐龙,紧跟恐龙移动,但当小鸡的体积小于恐龙时,小鸡就会自动隐藏起来。
在这样的背景下,学生通过项目了解游戏程序设计的原理,同时掌握了一些部件的使用方法,将枯燥的编程变成有意思的事情。在程序设计中,第一步骤需要根据需求设计合理的逻辑图。项目“小鸡跑跑”逻辑图如图1所示。
(二)界面设计
在本程序中我们将会用到画布、球形精灵、图像精灵和定时器。首先将画布拖到工作板上,设置画布高为320像素,宽为填满,其次将球形精灵组件拖入到画布中,可放置到任意位置,画笔颜色可用于小球颜色,小球的半径可自定义,再将两个图像精灵放于画布中,任意放置即可,最后将定时器拖入工作板内。为了便于识别,修改组件的名字和属性,将图像进攻组件分别命名为恐龙和小鸡,球形精灵重命名为小球(如图2)。
(三)逻辑设计
完成了前端界面设计,需要通过后端逻辑设计实现功能。首先需要定义一个“尺寸大小”全局变量,用来计算恐龙的放大。在开始之前,尺寸大小定义为1,表示恐龙每次碰到球時宽和高都增加一个像素。之后设置恐龙被拖动的动作,使用“恐龙.被拖动”事件来响应拖动。在程序中,恐龙可通过下,y坐标的改变进行移动,所以用“恐龙.移动到指定位置”方法来控制恐龙位置。在恐龙移动位置之后,使用“小鸡.转向制定位置”方法来保持小鸡朝恐龙的位置移动。小球的移动通过定时器“定时器1.计时”事件来控制小球移动。而小球的具体坐标可采用随机数模块,在1~300中随机产生数值作为坐标值,如此小球就能随时间任意变换位置。“恐龙移动到指定位置”和“计时器1”代码如图3所示。
如图4所示,恐龙碰到小球后恐龙变大则可以使用“小球.被碰撞”事件进行处理。响应碰撞事件后,再通过如果判断所碰到是否是恐龙。如果碰到的是恐龙,则设置恐龙变大,同时添加随机数设置小球位置。
在最后当恐龙变成与小鸡一样大的时候,需要设置小鸡自动隐藏。与恐龙被碰撞同理,使用“小鸡被碰撞”响应事件。因为恐龙的与小鸡的宽度和高度比例一样,所以只需要比较其中的一项,高度或宽度都可以,随后使用设置小鸡状态为“假”来隐藏小鸡。
四、评价总结
项目“小鸡跑跑”在App Inventor开发环境下进行开发,使用了图像精灵、定时器、随机数等模块进行开发。学生在项目开发过程虽未完全掌握编程语言基础,但增加了整个项目开发经验,更好地掌握了编程思维,也更深刻地理解了相应的计算机概念。虽然基于App Inventor的程序设计实践独具特点,还是有一些不足之处,如组件还不够完善,一些想要的模块仍需要通过其他模块组合进行实现,使学生不得不放弃一部分具有创新的想法。故此,App Inventor模块尚需开发,以此提高开发者使用效率。
参考文献:
[1]王寅峰.App Inventor2中文版开发实战:Android智能应用开发前传[M].北京:电子工业出版社,2015.
[2]梁展峰.基于App Inventor的创客教育实践[J].教育信息技术,2016(6):21-23
[3]祝智庭,邓鹏,孙莅文.娱教技术:教育技术的新领地[J].中国电化教育,2005(5):11-14.