王杰
(广东开放大学,广东广州,510091)
基于Android与App Inventor的移动学习资源开发实践与思考
王杰
(广东开放大学,广东广州,510091)
移动学习已经成为一种新的学习形式,但移动学习资源需要专业技术人员协助开发建设,开发成本高、周期长,制约了移动学习资源的建设步伐。随着信息技术的发展,出现了一种新的基于Android系统的可视化编程工具App Inventor。App Inventor是一个在线开发的编程环境,使用搭积木的方法开发Android移动学习资源。由于App Inventor具有简单、易学、易用的优点,教师可以应用App Inventor方便自主地开发移动学习资源。目前App Inventor的功能还比较弱,还需进一步的改进和完善。
Android;App Inventor;移动学习资源;组件设计;逻辑设计
移动学习(Mobile Learning,简称M-Learning)是一种借助移动终端设备(如智能手机、平板电脑)实现的可以在任何时间、任何地点开展的学习。移动学习所使用的移动终端设备能够有效地呈现学习内容,并且提供教师与学习者之间的双向交流。移动学习在数字化学习E-Learning基础上通过有效结合移动终端设备和移动通信技术,能够带给学习者随时、随地、随身学习的全新感受[1]。
移动学习资源是指能支持开展移动学习的信息资源和移动应用程序,是移动学习系统的重要组成部分,建设丰富的移动学习资源是开展移动学习的重要条件。
移动学习已经成为目前教育技术研究的重点和热点,有许多学者、教师及技术人员参与移动学习研究与应用,但目前移动学习资源不仅种类和数量较少,且质量也不高,究其原因有以下几点:
1.移动学习资源开发难度大,目前移动平台操作系统有多种,无论选用哪种移动平台操作系统,都必须搭建复杂的开发环境,花费一定的时间学习程序设计语言,才能进行开发。
2.由于行业性质决定,目前移动应用开发的技术人员主要集中在移动互联网企业、IT企业、金融、电信等行业中,在教育行业中从事移动开发的技术人员比较少。
3.移动学习资源建设需要将教师的教学资源、教学设计、教学活动与移动开发技术有机结合起来,但目前移动应用开发技术人员与教师是分隔的。长远来看,必须让更多的教师参与移动学习资源建设,才能涌现出更多、更优质的移动学习资源。
4.目前移动学习资源建设与开发周期长、成本高,限制了移动学习资源的建设与进一步发展。
移动学习给现代远程教育与在线教育带来的不仅是移动设备和资源所提供的学习支持上的便利,更多是有助于构建一种适合个性化学习的学习情境,形成不受时空限制的学习和交互的信息化学习环境,移动学习的发展为实现“随时、随地、随身”学习提供了新的可能性及实现途径[2]。因此,研究和推广新的移动学习应用平台和开发工具势在必行。
以智能手机为代表的移动终端设备的大量涌现及普及,和飞速发展的移动通信,为移动学习的开展打下了良好的基础,任何使用移动设备的人都可以成为移动学习中的学习者或教育者。
智能手机,是指具有独立的操作系统,用户可以自行安装各种类型的移动应用程序APP,通过程序可以对手机的功能进行扩充,并可以通过移动通讯网络(3G/4G/ Wi-Fi)来实现无线网络接入的这样一类手机的总称。近几年来,智能手机的应用范围已经遍布全世界,成为与人们生活息息相关的通信工具和生活工具。
目前智能手机使用的移动平台操作系统有谷歌Android和苹果iOS两大系统。其中Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,由谷歌公司和开放手机联盟领导及开发。据最新发布的报告称,2013年8至10月三个月,Android在中国市场中所占据的份额为78.1%,2014上半年Android手机占据中国智能手机市场89.9%的份额。截至2015年12月,中国手机网民规模达6.20亿,手机上网使用率为90.1%[3]。
由于智能手机具有开放式操作系统,可以通过安装软件扩展功能,因此为学习者提供了新的选择。智能手机的便携性极大地推动了移动学习发展的进程,作为扩展的数字化教学辅助工具,智能手机可以显著地提升信息化学习的质量。
但目前移动学习资源建设需要专业人员开发,要搭建复杂的开发环境,专门学习程序设计语言,开发成本高、周期长,制约了移动学习资源建设的步伐。随着信息技术的发展,现在出现了一种新的基于Android系统的可视化编程工具App Inventor,这对于有意进行移动学习资源建设的用户来说,无疑是一大福音。
(一)App Inventor的主要功能
App Inventor是谷歌公司面向Android移动平台操作系统推出的以浏览器为基础的移动应用程序开发工具,不需特殊复杂的开发环境安装,用户只要使用浏览器便能开发Android移动应用程序,并且用户所设计的程序项目全部保存在云端服务器中。
App Inventor是一个完全在线开发的Android编程环境,它放弃了复杂的程序代码,而使用“搭积木 + 玩拼图”方法来开发Android移动应用程序。使用App Inventor开发不一定非要是专业的程序员,用户根本不需要掌握任何程序设计语言,对于Android初学者来说是一大福音。开发App Inventor 应用程序从浏览器开始,首先设计移动应用程序的界面,接着设定程序的行为与事件,就像玩乐高积木一样简单有趣。
与传统的Android移动应用程序开发技术对比,App Inventor具有入门简单、零基础等显著优点(见表1),普通用户通过短时间学习就可以使用App Inventor开发移动应用程序。
表1 App Inventor与传统Android开发技术对比
App Inventor原是Google Lab的一个子计划,2012年,美国麻省理工学院(Massachusetts Institute of Technology,简称MIT)正式接手App Inventor项目,将其更名为“MIT App Inventor”,并继续进行研发,并对公众免费开放使用。App Inventor网站为http://Appinventor.mit.edu。
App Inventor有两个版本,App Inventor (现在称为App Inventor Classic) 和App Inventor 第二版(App Inventor 2,简称AI2),AI2支持Android智能手机及平板电脑,从2014年开始,主要推广与应用AI2版本[4]。
(二)App Inventor的特色
1.云+在线开发
“云+在线开发”是App Inventor的最大特色,开发环境是基于网站的形式架设在App Inventor服务器上的,用户不需要安装其他软件,只需注册一个邮箱账号就可以随时登录App Inventor服务器进行Android移动应用程序的开发。用户创建的应用程序工程项目都保存在云端,也就是App Inventor服务器中,用户可以在家中、办公室随时进行移动应用程序开发。
2.可视化界面设计
App Inventor吸取了可视化的组件式界面设计思想,在App Inventor的设计界面中,用户拖曳组件就可以实现程序界面的设计,包括用户界面、多媒体、绘图动画等九大类型组件。这些组件都已经封装好,用户可以直接拖曳使用。
3.拼图式编程
对普通用户来说,学习软件开发需要先学习程序设计语言,如JAVA、C语言、Visual Basic等,而学习一门编程语言至少需要半年甚至更长的时间。App Inventor“拼图式编程”则正是针对这一难题而设计的,它降低了技术门槛,学习者可以是“零”编程基础,即使是中小学生,只要有灵感都可以进行移动应用程序的开发[5]。
4.模拟器
App Inventor提供了模拟器的功能,点击 “连接Connect”→“模拟器Emulator”,屏幕上会显示“正在启动Android模拟器,请等待,可能需要一至两分钟”,用户可以在模拟器中调试应用程序,大大提高了开发效率。
(三)App Inventor的三大模块
在App Inventor中主要有三大模块,分别是组件设计Designer、逻辑设计Blocks和模拟器Emulator,不同的模块有不同的功能,这三大模块可以看作是MVC(模型Model、视图View、控制器Controller的缩写)框架的一种应用,很好地实现了数据与表示的分离(见表2)。
表2 App Inventor三大模块介绍
应用App Inventor开发移动学习资源就相当于“搭积木”+“玩拼图”,与传统的Android手机开发需要搭建“Eclipse /Android Studio + SDK + JDK + ADT”的复杂环境、需要学习JAVA语言等相比,App Inventor就显然简单多了。
(一)App Inventor的开发准备工作
在使用App Inventor开发移动学习资源前,需要做一些准备工作。
1.申请App Inventor帐号:国内最常用的App Inventor服务器是广州市教育信息中心(电教馆)服务器,可访问http://app.gzjkw.net,使用自己的邮箱注册帐号。国内也有一些公开的App Inventor服务器,如http://ai2.17coding.net等,提供给用户使用。需要说明的是,App Inventor开发的工程项目都保存在App Inventor的云端服务器上,用户要选择一个稳定性高、访问速度快的服务器来开发自己的项目。
2.浏览器准备:目前有许多浏览器在使用,App Inventor 2推荐使用谷歌Chrome、Mozilla Firefox、Apple Safari最新版本浏览器。从App Inventor 2开始,该程序不再支持Internet Explorer(或IE内核)的浏览器,但支持Windows 10操作系统的Edge浏览器。
(二)App Inventor的程序结构
App Inventor 程序由两部分组成:组件设计(规划程序界面)和逻辑设计(实现程序功能)。
1.组件设计
组件是构成手机屏幕界面的基本单元要素,移动应用程序界面由许多组件组成,组件相当于乐高积木中的门、窗、屋顶等部件,组件设计就相当于“搭积木”,如图1所示。
组件面板(Palette)将组件分为用户界面、多媒体、绘图动画、传感器、界面布局、社区应用、数据存储、通信连接、乐高机器人九大类,共计60个组件(MIT App Inventor nb 148c版本)。用户可以将需要的组件拖曳到手机屏幕界面,例如Button是按钮组件、Image是图片组件。组件也可以分为可见组件和不可见组件,例如Button按钮组件可以显示在手机屏幕界面,而LocationSensor位置传感器组件则不显示于手机屏幕界面。
手机设计工作面板(Viewer)可让用户预览移动应用程序完成后在手机屏幕的显示效果,所见即所得,用户可根据此画面调整组件的位置和属性。
组件列表(Components)的主要作用是,当用户从组件面板拖曳了不同组件到手机设计工作面板时,该组件就会出现在组件列表里,标识用户使用了该组件,用户可为每个组件取一个有意义的名字,以便提高程序的可读性。
若在移动应用程序中需要使用多媒体文件,如图片、声音、视频等,可通过多媒体资源库(Media)的“Upload File”文件上传功能,将本地计算机中的多媒体文件上传至App Inventor服务器。
每一个组件都有自己的属性,用户可以通过属性设定(Properties)设置组件的不同属性,表现出不同的显示效果,例如Button按钮组件可以通过Height属性设置组件的高度、Width属性设置按钮的宽度、Text属性设置按钮显示的文字[6][7]。
综上,组件设计就是设计手机界面,是用户与手机系统、应用交互的窗口,手机界面的设计必须基于手机设备的物理特性和系统应用的特性进行合理的设计。如图1所示。
图1 组件设计Designer
2.逻辑设计
在“组件设计”中可以拖曳一些组件到手机设计工作面板,例如可以为应用程序增加一个按钮Button,然而这个按钮按下去不会有任何的反应,为了要让这个按钮发挥作用,需要在“逻辑设计”中定义这个按钮的“被点击Click”事件。“逻辑设计”就是让用户定义程序行为,也就是实现程序功能。
App Inventor采用事件触发的编程机制,当一个事件发生时,程序会调用并执行预先编写好的与该事件相对应的操作序列。例如用户点击了一个按钮,就会触发这个按钮的被点击事件,程序会自动执行被点击事件中程序代码。App Inventor的事件主要分为四类:用户触发事件、初始化事件、计时器事件和外部事件。
在“逻辑设计”的界面左侧包含有“代码块Blocks”,透过这些模块的组合,便可以完成程序的功能设计,包括“内置块Built-in”、“用户屏幕Screen”和“任意组件Any component”三大类。“内置块Built-in”提供了一些通常程序语言里需要具备的功能,如变量定义、流程控制(if,for,while等)、各种函数等,如图2所示。
图2 逻辑设计Blocks
在逻辑设计界面,拼图使用不同颜色、不同形状表示不同的功能,非常人性化。App Inventor设计非常巧妙,借鉴了中国传统木工的设计思想---榫卯,如果拼图形状不匹配,就无法组合起来,可以最大限度减少程序出错和调试的工作量。
(三)App Inventor程序开发步骤
下面以开发一个移动学习登录模块为例,介绍App Inventor程序的开发步骤:
第一步,新建工程项目。使用浏览器访问htpp://app.gzjkw.net,使用自己的邮箱和密码登录App Inventor服务器,选择按钮“项目”->“新建项目”,新建一个项目,在出现的对话框架中录入项目名称myAPP。
第二步,程序界面设计。双击myAPP工程名称,进入组件设计Designer,选择应用程序所需的组件,两个文本框组件Textbox、一个按钮组件Button,将其拖到手机设计工作面板Viewer,然后在组件列表Component中选中需要修改属性的组件,在组件属性Properties中修改组件的属性。
第三步,程序功能设计。使用逻辑设计Blocks定义组件的行为与事件。在Blocks的左侧列表中找到需要编写事件响应的组件;点击右侧会产生该组件支持的事件列表;选择一种需要的事件块并拖到右边工作区;为事件编写相应的内容,详细代码如下图3所示。
图3 逻辑设计(程序代码设计)
第四步,使用模拟器emulator或者手机调试运行程序。当用户将程序设计完成后,需要调试运行所设计好的移动应用程序,若程序运行有问题,就必须回到“组件设计Designer”或“逻辑设计Blocks”将问题做修改后再重新调试。App Inventor支持模拟器在线、手机在线(USB或Wi-Fi)、手机离线(APK文件下载)三种方式的移动应用程序调试。
App Inventor在中国目前发展时间不长,2013年麻省理工学院MIT教授Hal Abelson来到中国,与中山大学、Google联合开展App Inventor教学研讨,标志着App Inventor在中国开始应用。
由于App Inventor发展时间较短,也存在一些不足,和专业的Android开发技术相比,App Inventor的功能还比较弱,有些功能还无法实现;相关的学习资源、书籍还比较少,开发例程还不够丰富,组件种类还不够多等,这些不足一定程度上限制了App Inventor的推广与应用。
随着麻省理工学院App Inventor开发团队对App Inventor进一步的完善,App Inventor的功能会更强大,今后将会有更多对移动程序开发感兴趣的人来使用App Inventor,届时一定会有越来越多更好的用App Inventor设计的移动学习资源出现。
[1] 黄荣怀,Jyri Salomaa.移动学习——理论·现状·趋势[M].北京:科学出版社,2008:1-10.
[2] 王杰.开放大学移动学习研究[J].湖北广播电视大学学报, 2011,(7):5-7.
[3] 第37次中国互联网络发展状况统计报告[DB/OL].http:// www.cnnic.net.cn/hlwfzyj/hlwxzbg/hlwtjbg/201601/ t20160122_53271.htm,2016-01-22.
[4] The MIT App Inventor Library [DB/OL].http:// appinventor.mit.edu/explore/library.html,2016-05-20.
[5] 郭守超, 周睿, 邓常梅 等.基于App Inventor和计算思维的信息技术课堂教学研究[J].中国电化教育,2014,(3):91-96.
[6] 黄仁祥,金琦,易伟.人人都能开发安卓APP——App Inventor2应用开发实战[M].北京:机械工业出版社,2014:12-14.
[7] 王向辉,张国印,沈洁.可视化开发Android应用程序——拼图开发模式App Inventor2(第2版)[M].北京:清华大学出版社,2015:18-22.
(责任编辑: 微风)
Resources Development of Mobile Learning Based on Android and App Inventor
WANG Jie
(The Open University of Guangdong, Guangzhou, Guangdong, China, 510091)
Mobile learning is a new style of learning, but its resources development needs the participation of programmer, high cost, and long development cycle. With the development of information technology, a new Android visual programming tool---App Inventor, an online programming software which uses modular stack method to develop mobile learning resources, is developed. Its advantages of simplicity, easy to learn and use help teachers to develop mobile learning resources though there is room to be improved.
Android; App Inventor;mobile learning; smartphone;designer; blocks
G434
A
2095-932x(2016)04-0038-05
广东广播电视大学、广东理工职业学院2012年校级科研课题“一种基于Wi-Fi无线及Android室内高精度定位研究”(1209)研究成果;谷歌中国大学合作部授予“Android人才培养示范基地”建设成果。
2016-06-08
王杰(1976-),男,新疆博乐人,广东开放大学信息与工程学院讲师。