论文部分内容阅读
摘 要:App Inventor积木式编程程序,其优点是可视化操作、模块拼接编程,易读懂、易编写、易理解,使学习变得简单有趣。基于App Inventor开发的“天气预报APP”应用案例,在互联网环境下,结合大数据应用,在移动终端上开发应用程序,大大地提升了青少年学习积木式编程的兴趣。在对案例编写、创建和调试的过程中,有意识的培养学生的计算思维,有效提高学生发现问题、解决问题的能力,使程序学习不再枯燥。
关键词:App Inventor;API调用;天气预报APP
中图分类号:TP311.56 文献标识码:A 文章编号:2096-4706(2020)22-0026-04
Design and Implementation of API Call in Building Block Programming Based on App Inventor
——Take the Weather Forecast APP as an Example
LIU Zaixing
(Guangzhou Institute of Educational Research,Guangzhou 510110,China)
Abstract:App Inventor building block programming program,its advantages are visual operation,module splicing programming,easy to read,easy to write,easy to understand,make learning simple and interesting. Based on the application case of “weather forecast APP” developed by App Inventor,in the internet environment,combined with big data application,the application program is developed on the mobile terminal,which greatly enhances the interest of teenagers in learning building block programming. In the process of writing,creating and debugging cases,we should consciously cultivate students’computational thinking,effectively improve students’ability to find and solve problems,and make program learning no longer boring.
Keywords:App Inventor;API call;weather forecast APP
0 引 言
随着信息技术的日益发展,智能设备已广泛地使用在我们的日常生活中,为我们的生活带了许多便利。App Inventor积木式编程是一款基于浏览器的在线安卓软件开发工具,采用搭积木的方式进行编程,由于其界面友好,能很好的实现学生的创意,简单有趣,使程序學习不再枯燥。笔者作为广州市教育研究院初中信息技术教研员,主编广州市中学信息技术学科教材《信息技术》第二册的“App Inventor手机积木式编程”,本文基于App Inventor积木式编程设计与开发的天气预报APP为例向读者展现API调用的设计与实现的过程,在发现问题、解决问题的过程中激发学生学习手机积木式编程的兴趣,培养学生计算思维能力,养成良好的编程思维。
1 App Inventor积木式编程在初级中学信息技术学科教育中的实用性
信息技术是什么,很多人首先想到的是编程,这就说明信息技术学科中的编程课程尤为重要。初级中学阶段的学生的信息技术专业知识欠缺,外语水平也不高,想要学习好一门编程语言确实不容易,往往因为传统编程课程的学习,造成很多同学对信息技术学科产生畏难情绪,觉得编程很难掌握,磨灭他们对编程乃至信息技术课程的学习兴趣。2012年1月,美国麻省理工学院推出基于安卓系统的积木式编程软件——App Inventor。不同于传统编程,App Inventor积木式编程的设计比较简单,学生不用编写烦琐的代码,使用“积木”对程序代码块进行拼接,实现在智能手机或平板上直接查看程序的调试结果,这对于活泼好动的初中生具有非常大的吸引力。初中信息技术课程App Inventor积木式编程包括“摇一摇听单词”“创意涂鸦”和“调用API制作天气预报APP”等教学内容。本文截取App Inventor积木式编程中常用的API调用为例,阐述如何设计与实现天气预报APP。
2 天气预报APP的功能及技术可行性分析
天气预报需要综合大量的数据进行专业处理,事实上我们很难凭一己之力实现这样的应用。不过,专业机构已经将数据处理并发布在网络上,我们只需要按照特定规范进行调用,即可获得专业的数据,这就需要调用API应用程序接口。
Web服务器通常提供两种方式的用户接口与客户端交互,如图1所示:一种是Web UI,就是通常所说的网站或网页,客户端不需要安装特定的程序,通过浏览器就可以访问网站;另一种是Web API,需要在客户端安装应用程序,用户与客户端APP交互,客户端APP再通过Web API与服务器交互,将结果展现给用户。本文以制作一款天气预报APP为例,阐述API调用的设计与实现。 2.1 天气预报APP功能
基于App Inventor编程平台开发天气预报APP,设计实现以下功能:
(1)输入某个城市名称,显示该城市的实时天气状况。
(2)可以查询任意城市的近7天天气数据,包括气温、风向、风力等信息。
2.2 技术可行性分析
(1)API调用。应用程序编程接口(Application Pro-gramming Interface,API)调用,即开发人员和应用程序无须访问源码或理解程序的内部工作机制细节,通过预定义函数,基于某软件或硬件得以访问一组例程的能力。API的实现是提供API所定义的功能的软件,API仅仅是一种程序接口,它的优势在于:1)系统各部分的相互依赖通过API良好的接口设计得以解决,既可降低组成单元间的耦合程度又能提高它们的内聚性,同时系统的维护性和扩展性得到很好的提升。2)API是一组极其复杂、数量上千的函数和程序构成应用程序接口,程序员可以利用程序接口完成各类开发任务。高质量的API接口,除了自身的数据外,接口的稳定性和质量也是非常重要。
目前,世界上许多大型企业,如京东万象、Amazon等都通过API接口开放数据,使得全世界的开发人员都能够调用他们的数据。API数据接口近年来受众多开发人员的追捧,在程序的设计与开发工作中起着重要的作用。
把通信连接Web客户端组件内置到基于App Inventor开发的天气预报APP内,天气预报APP可根据客户需求查询城市的名称,调用Web客户端组件来设置API的链接地址,使用京东万象提供的API服务,获取返回数据。
(2)解析数据。解析的数据主要是京东万象平台API程序接口中获得的各类返回信息,包括城市的信息和当前天气的状况、目前的气温等。因为这些信息都是用JSON数据格式返回,同时Web浏览器组件中具有解码JSON文本的方法,并返回列表数据,因此我们可以在列表中通过对“键值对”的查找,查询到数据的值。
3 JSON格式数据
JSON相对于XML来说更为小巧,同时没有削减描述能力,是一种轻量级的数据交换格式,易于机器解析和网络传输。JSON对象表示为键值对,是一个“名称/值”的集合,每个名称后跟一个冒号,大括号保存对象,数据由逗号分隔。我们从调试信息中的JSON返回示例值中取出与本例相关的其中一段来做说明。本例中,程序需要的是關键字“weather”对应的值,作为天气预报的结果显示在界面上。
根据JSON返回的文本结构,先查找第1层结构中关键字“result”对应的值,然后在其返回的结果(键值对“列表”)里查找第2层结构中关键字“result”对应的值,最后在其返回的结果里(键值对“列表”)查找第3层结构中关键字“weather”对应的值。用这样的方式,通过3层查找来找出关键字“weather”得到对应的值,并赋值给标签来显示数据。
"code":"10000",
"charge":false,
"msg":"查询成功",
"result":{
"status":0,
"msg":"ok",
"result":{
"city":"广州",
"cityid":75,
"citycode":"101280101",
"date":"2019-07-13",
"week":"星期六",
"weather":"阴",
"temp":"30",
……
}
……
}
4 天气预报APP组件界面设计
本系统的屏幕(Screen)布局设计如图2、图3所示,天气查询界面如图2所示,输入城市名单击“查询”按钮后显示的界面如图3所示,组件界面设计如图4所示。
(1)如图2所示,屏幕上方是查询天气输入框,在输入框里填入要查询的城市后,单击“查询”按钮即可查询该城市的天气状况。所使用的组件有水平布局、标签、文本输入框、按钮等等。
(2)通信连接Web客户端1个:把网址设置为京东万象和风天气API的接口地址,用来获取返回的信息以及进行解析。
(3)语音合成器1个:使用语音播报查询到的某城市天气情况。
5 京东万象平台
系统需求方使用数据服务方(或大数据交易平台)提供的数据接口获得所需要的数据。这些数据经过平台的处理与分析,能很好地满足需求方对数据的需求。天气预报APP调用的API接口是大数据交易平台中的京东万象平台提供的“世界和中国天气预报”程序,它能提供全球5万多个城市实时和近7天的天气、气温、风力、风向等数据信息。京东万象平台的天气数据采用JSON格式数据,编写的格式比较简单,很适合初学者使用,平台每天都可以有5 000次的免费请求,满足简单程序的编写。初学者在京东万象平台上注册并申请一个APPKEY即可使用该数据接口获取数据。调用京东万象平台天气API的链接地址为:https://way.jd.com/he/freeweather?city=城市名&appkey=您的密钥。涉及的程序代码块如图5所示。
6 天气预报APP程序设计
当京东万象平台数据服务的API返回数据时,解析JSON数据,获取相关关键字的值,并显示在屏幕上。我们要在JSON返回文本中查找关键字“weather”对应的值,可以通过列表组件提供的“在键值列表…中查找…,没找到返回”方法来实现。此方法需要3个输入值:键值对“列表”、关键字以及找不到时的提示信息。根据JSON返回的文本结构,先查找第1层结构中关键字“result”对应的值,然后在其返回的结果(键值对“列表”)里查找第2层结构中关键字“result”对应的值,最后在其返回的结果里(键值对“列表”)查找第3层结构中关键字“weather”对应的值。用这样的方式,通过3层查找来找出关键字“weather”得到对应的值,并赋值给标签(“标签_天气数据”)来显示数据,如图6所示。
当输入城市名,点击“查询”按钮时,设置Web客户端的网址并向京东万象平台API发送数据请求服务。调用语音合成器来将查询结果(文本)转换成语音,通过设备的扬声器进行播报,Web客户端获得文本事件的完整代码块如图7所示。
7 结 论
从本文介绍的基于App Inventor积木式编程API调用的天气预报APP系统的设计与实现可以看出,其结构简单,操作便捷,体现出App Inventor积木式编程软件编写简易的特点。2017年7月国务院印发《新一代人工智能发展规划》,强调“在中小学阶段设置人工智能相关课程,逐步推广编程教育”,而本系统的程序设计在互联网环境下,App Inventor积木式编程作为编程入门的课程在初级中学普及开展,学生利用积木式编程开发手机APP,更好地提升自身的信息技术素养,适应新时代的发展。
参考文献:
[1] 金从军.App Inventor开发训练营 [M].北京:人民邮电出版社,2018.
[2] 广州市教育研究院.信息技术 小学:第2册 [M].广东:广东教育出版社,2015.
[3] 白乃远,曾奕霖.App Inventor 2 Android应用开发实战 [M].北京:电子工业出版社,2017.
[4] 鲁丹,李欣,陈金传.基于API技术的数字人文基础设施的构建 [J].图书馆学研究,2019(13):42-46+57.
[5] 魏晓风,蒋家傅,钟红,等.我国中小学编程教育发展的路径思考 [J].中国教育信息化,2018(24):1-4+9.
作者简介:刘载兴(1963—),男,汉族,广东广州人,中学高级教师,硕士研究生,研究方向:计算机技术教育、中小学信息技术教育、人工智能。
关键词:App Inventor;API调用;天气预报APP
中图分类号:TP311.56 文献标识码:A 文章编号:2096-4706(2020)22-0026-04
Design and Implementation of API Call in Building Block Programming Based on App Inventor
——Take the Weather Forecast APP as an Example
LIU Zaixing
(Guangzhou Institute of Educational Research,Guangzhou 510110,China)
Abstract:App Inventor building block programming program,its advantages are visual operation,module splicing programming,easy to read,easy to write,easy to understand,make learning simple and interesting. Based on the application case of “weather forecast APP” developed by App Inventor,in the internet environment,combined with big data application,the application program is developed on the mobile terminal,which greatly enhances the interest of teenagers in learning building block programming. In the process of writing,creating and debugging cases,we should consciously cultivate students’computational thinking,effectively improve students’ability to find and solve problems,and make program learning no longer boring.
Keywords:App Inventor;API call;weather forecast APP
0 引 言
随着信息技术的日益发展,智能设备已广泛地使用在我们的日常生活中,为我们的生活带了许多便利。App Inventor积木式编程是一款基于浏览器的在线安卓软件开发工具,采用搭积木的方式进行编程,由于其界面友好,能很好的实现学生的创意,简单有趣,使程序學习不再枯燥。笔者作为广州市教育研究院初中信息技术教研员,主编广州市中学信息技术学科教材《信息技术》第二册的“App Inventor手机积木式编程”,本文基于App Inventor积木式编程设计与开发的天气预报APP为例向读者展现API调用的设计与实现的过程,在发现问题、解决问题的过程中激发学生学习手机积木式编程的兴趣,培养学生计算思维能力,养成良好的编程思维。
1 App Inventor积木式编程在初级中学信息技术学科教育中的实用性
信息技术是什么,很多人首先想到的是编程,这就说明信息技术学科中的编程课程尤为重要。初级中学阶段的学生的信息技术专业知识欠缺,外语水平也不高,想要学习好一门编程语言确实不容易,往往因为传统编程课程的学习,造成很多同学对信息技术学科产生畏难情绪,觉得编程很难掌握,磨灭他们对编程乃至信息技术课程的学习兴趣。2012年1月,美国麻省理工学院推出基于安卓系统的积木式编程软件——App Inventor。不同于传统编程,App Inventor积木式编程的设计比较简单,学生不用编写烦琐的代码,使用“积木”对程序代码块进行拼接,实现在智能手机或平板上直接查看程序的调试结果,这对于活泼好动的初中生具有非常大的吸引力。初中信息技术课程App Inventor积木式编程包括“摇一摇听单词”“创意涂鸦”和“调用API制作天气预报APP”等教学内容。本文截取App Inventor积木式编程中常用的API调用为例,阐述如何设计与实现天气预报APP。
2 天气预报APP的功能及技术可行性分析
天气预报需要综合大量的数据进行专业处理,事实上我们很难凭一己之力实现这样的应用。不过,专业机构已经将数据处理并发布在网络上,我们只需要按照特定规范进行调用,即可获得专业的数据,这就需要调用API应用程序接口。
Web服务器通常提供两种方式的用户接口与客户端交互,如图1所示:一种是Web UI,就是通常所说的网站或网页,客户端不需要安装特定的程序,通过浏览器就可以访问网站;另一种是Web API,需要在客户端安装应用程序,用户与客户端APP交互,客户端APP再通过Web API与服务器交互,将结果展现给用户。本文以制作一款天气预报APP为例,阐述API调用的设计与实现。 2.1 天气预报APP功能
基于App Inventor编程平台开发天气预报APP,设计实现以下功能:
(1)输入某个城市名称,显示该城市的实时天气状况。
(2)可以查询任意城市的近7天天气数据,包括气温、风向、风力等信息。
2.2 技术可行性分析
(1)API调用。应用程序编程接口(Application Pro-gramming Interface,API)调用,即开发人员和应用程序无须访问源码或理解程序的内部工作机制细节,通过预定义函数,基于某软件或硬件得以访问一组例程的能力。API的实现是提供API所定义的功能的软件,API仅仅是一种程序接口,它的优势在于:1)系统各部分的相互依赖通过API良好的接口设计得以解决,既可降低组成单元间的耦合程度又能提高它们的内聚性,同时系统的维护性和扩展性得到很好的提升。2)API是一组极其复杂、数量上千的函数和程序构成应用程序接口,程序员可以利用程序接口完成各类开发任务。高质量的API接口,除了自身的数据外,接口的稳定性和质量也是非常重要。
目前,世界上许多大型企业,如京东万象、Amazon等都通过API接口开放数据,使得全世界的开发人员都能够调用他们的数据。API数据接口近年来受众多开发人员的追捧,在程序的设计与开发工作中起着重要的作用。
把通信连接Web客户端组件内置到基于App Inventor开发的天气预报APP内,天气预报APP可根据客户需求查询城市的名称,调用Web客户端组件来设置API的链接地址,使用京东万象提供的API服务,获取返回数据。
(2)解析数据。解析的数据主要是京东万象平台API程序接口中获得的各类返回信息,包括城市的信息和当前天气的状况、目前的气温等。因为这些信息都是用JSON数据格式返回,同时Web浏览器组件中具有解码JSON文本的方法,并返回列表数据,因此我们可以在列表中通过对“键值对”的查找,查询到数据的值。
3 JSON格式数据
JSON相对于XML来说更为小巧,同时没有削减描述能力,是一种轻量级的数据交换格式,易于机器解析和网络传输。JSON对象表示为键值对,是一个“名称/值”的集合,每个名称后跟一个冒号,大括号保存对象,数据由逗号分隔。我们从调试信息中的JSON返回示例值中取出与本例相关的其中一段来做说明。本例中,程序需要的是關键字“weather”对应的值,作为天气预报的结果显示在界面上。
根据JSON返回的文本结构,先查找第1层结构中关键字“result”对应的值,然后在其返回的结果(键值对“列表”)里查找第2层结构中关键字“result”对应的值,最后在其返回的结果里(键值对“列表”)查找第3层结构中关键字“weather”对应的值。用这样的方式,通过3层查找来找出关键字“weather”得到对应的值,并赋值给标签来显示数据。
"code":"10000",
"charge":false,
"msg":"查询成功",
"result":{
"status":0,
"msg":"ok",
"result":{
"city":"广州",
"cityid":75,
"citycode":"101280101",
"date":"2019-07-13",
"week":"星期六",
"weather":"阴",
"temp":"30",
……
}
……
}
4 天气预报APP组件界面设计
本系统的屏幕(Screen)布局设计如图2、图3所示,天气查询界面如图2所示,输入城市名单击“查询”按钮后显示的界面如图3所示,组件界面设计如图4所示。
(1)如图2所示,屏幕上方是查询天气输入框,在输入框里填入要查询的城市后,单击“查询”按钮即可查询该城市的天气状况。所使用的组件有水平布局、标签、文本输入框、按钮等等。
(2)通信连接Web客户端1个:把网址设置为京东万象和风天气API的接口地址,用来获取返回的信息以及进行解析。
(3)语音合成器1个:使用语音播报查询到的某城市天气情况。
5 京东万象平台
系统需求方使用数据服务方(或大数据交易平台)提供的数据接口获得所需要的数据。这些数据经过平台的处理与分析,能很好地满足需求方对数据的需求。天气预报APP调用的API接口是大数据交易平台中的京东万象平台提供的“世界和中国天气预报”程序,它能提供全球5万多个城市实时和近7天的天气、气温、风力、风向等数据信息。京东万象平台的天气数据采用JSON格式数据,编写的格式比较简单,很适合初学者使用,平台每天都可以有5 000次的免费请求,满足简单程序的编写。初学者在京东万象平台上注册并申请一个APPKEY即可使用该数据接口获取数据。调用京东万象平台天气API的链接地址为:https://way.jd.com/he/freeweather?city=城市名&appkey=您的密钥。涉及的程序代码块如图5所示。
6 天气预报APP程序设计
当京东万象平台数据服务的API返回数据时,解析JSON数据,获取相关关键字的值,并显示在屏幕上。我们要在JSON返回文本中查找关键字“weather”对应的值,可以通过列表组件提供的“在键值列表…中查找…,没找到返回”方法来实现。此方法需要3个输入值:键值对“列表”、关键字以及找不到时的提示信息。根据JSON返回的文本结构,先查找第1层结构中关键字“result”对应的值,然后在其返回的结果(键值对“列表”)里查找第2层结构中关键字“result”对应的值,最后在其返回的结果里(键值对“列表”)查找第3层结构中关键字“weather”对应的值。用这样的方式,通过3层查找来找出关键字“weather”得到对应的值,并赋值给标签(“标签_天气数据”)来显示数据,如图6所示。
当输入城市名,点击“查询”按钮时,设置Web客户端的网址并向京东万象平台API发送数据请求服务。调用语音合成器来将查询结果(文本)转换成语音,通过设备的扬声器进行播报,Web客户端获得文本事件的完整代码块如图7所示。
7 结 论
从本文介绍的基于App Inventor积木式编程API调用的天气预报APP系统的设计与实现可以看出,其结构简单,操作便捷,体现出App Inventor积木式编程软件编写简易的特点。2017年7月国务院印发《新一代人工智能发展规划》,强调“在中小学阶段设置人工智能相关课程,逐步推广编程教育”,而本系统的程序设计在互联网环境下,App Inventor积木式编程作为编程入门的课程在初级中学普及开展,学生利用积木式编程开发手机APP,更好地提升自身的信息技术素养,适应新时代的发展。
参考文献:
[1] 金从军.App Inventor开发训练营 [M].北京:人民邮电出版社,2018.
[2] 广州市教育研究院.信息技术 小学:第2册 [M].广东:广东教育出版社,2015.
[3] 白乃远,曾奕霖.App Inventor 2 Android应用开发实战 [M].北京:电子工业出版社,2017.
[4] 鲁丹,李欣,陈金传.基于API技术的数字人文基础设施的构建 [J].图书馆学研究,2019(13):42-46+57.
[5] 魏晓风,蒋家傅,钟红,等.我国中小学编程教育发展的路径思考 [J].中国教育信息化,2018(24):1-4+9.
作者简介:刘载兴(1963—),男,汉族,广东广州人,中学高级教师,硕士研究生,研究方向:计算机技术教育、中小学信息技术教育、人工智能。