APP下载

基于Android阿拉伯语学习APP设计与实现

2020-06-08刘巨铭温柔赖益强周海贝

现代信息科技 2020年19期
关键词:阿拉伯语

刘巨铭 温柔 赖益强 周海贝

摘  要:针对目前手机应用市场上关于阿拉伯语学习类APP功能单一,无法满足学习者日常学习需求的问题,同时为了广外南国商学院阿拉伯语学习者们能拥有一个具有自身特色的学习APP,设计并实现了口袋阿语APP。该APP基于Android平台,使用了多线程、9Patch、XML、JSON和SHA-256等技术实现了用户注册登录、单词学习复习、趣味学习、个人中心和打卡签到等功能。该APP可以为学习者们在移动端学习阿拉伯语带来极大的便利和趣味性。

关键词:Android;APP开发;阿拉伯语;单词学习

Abstract:Aiming at the problem that the functions of Arabic learning APPs in the current mobile application market are single,and cannot meet the daily learning needs of learners,at the same time,for the Arabic language learners of SCBC to have a learning APP with their own characteristics,the Pocket Arabic APP was designed and implemented. Based on the Android platform,the APP uses multi-threading,9Patch,XML,JSON and SHA-256 technologies to realize user registration and login,word learning and review,fun learning,personal center and check-in and other functions. The APP can bring great convenience and fun for learners to learn Arabic on the mobile terminal.

Keywords:Android;APP development;Arabic;word learning

0  引  言

國内对于英语学习软件的开发起步较早,但与阿拉伯语相关的学习软件可选择范围较小且功能单一。针对此问题,口袋阿语APP借鉴了各类外语学习APP软件的功能特点,为阿语学习者们搭建了一个具有专业特色的学习互动平台。该APP通过查词、单词学习、基于艾宾浩斯遗忘曲线的智能单词复习、“消消乐”卡片复习和口袋阿语世界排行榜等功能模块构成了一个完整的学习流程和激励体系,用户在使用口袋阿语APP学习时,可以有效提高用户的注意力、提升学习过程的趣味性、提高用户成就感并减少用户遗忘等效果。笔者通过对广东外语外贸大学南国商学院的阿拉伯语专业的师生进行需求调研,采用软件工程的开发方法,结合APP设计理念针对口袋阿语APP进行了近一年的设计与开发,本文从APP架构设计到具体的功能的设计与实现进行了详细的阐述,旨在为学习类APP设计者和开发者分享设计与实现的思路和方法。

1  APP架构

1.1  开发平台——Android Studio

Android Studio是美国谷歌公司推出的一个基于IntelliJ IDEA的Android集成开发环境,谷歌公司在IDEA的基础上为其提供了基于Gradle的构建支持、Android专属的重构、优化小贴士和功能强大的可即时预览的布局编辑器等开发工具有效地提高了本项目开发和调试效率。

1.2  开发语言——Java

Java是一种面向对象的语言,其语言特性是封装、继承和多态,这些特性使得在牺牲一定的性能情况下能设计出低耦合的系统,这样的系统还具有易维护、易复用和易扩展的特点。在减少代码量的同时还降低了系统维护成本。由于本项目的需求不断变化,因此这些特点为开发和维护带来了极大的便利。

1.3  开发框架

本项目采用Android原生开发,原生开发模式开发的APP具有运行速度快、性能高和兼容性好等特点。原生应用支持大量的图形以及动画,能更好操控手机硬件设备(比如多点触控、NFC等),在开发中充分利用这些特点可以给予用户更好的体验。在本项目中以最为常用的MVP(Model View Presenter)架构搭建Android端,以SSM(Spring+SpringMVC+ Mybatis)框架搭建服务器后端与Android端进行JSON数据交互。基于MVP设计的系统具有代码逻辑清晰、低耦合和方便维护等优点。项目部署在装有CentOS 7系统的云端服务器中,Android端通过Web请求实现前后端的数据交互,这样前后端分离的设计模式更加符合现代APP需求快速变更的特以及海量数据需要存储的基本特征,同时降低系统的耦合度,对日后的维护工作具有深远意义。

2  总体设计与需求分析

2.1  功能框架介绍

功能模块如图1所示。

2.2  UI设计

APP部分UI设计如图2、图3所示。口袋阿语APP部分模块的UI设计采用Google Material Design的设计风格,如趣味模块中的“消消乐”卡片复习模式,就是直接采用了Android提供的原生MaterialCardView组件设计成卡片式布局,这样具有动效且色彩大胆的卡片布局更符合视觉连贯性并且更有交互性,在用户的使用过程中这些细节能给用户带来一种细腻的愉悦感。精致的UI设计可以使用户在口袋阿语APP停留更多的时间,以此变相地增长用户的学习时间。

2.3  数据库设计

通过前期的调研,根据需求分析说明书以及使用条件设计了满足3NF范式的数据库。在本项目中采用了MySQL数据库,MySQL数据库是关系型数据库,其支持多种数据类型、语句和函数。数据库部分数据表如表1~表3所示,数据库E-R图如图4所示。

3  功能实现

3.1  注册登录模块

注册模块采用了通过邮箱发送验证码的方式验证本次注册是一次“合法”的注册,这种方式可以有效限制“非法”的注册,如:编写恶意程序短时间进行多次注册或大量无用注册等等,“非法”注册会造成服务器拥挤甚至崩溃,导致损失大量用户关键数据。这种方式不仅保护了服务器,同时也为用户注册带来了更多的便利,利用邮箱注册不需要用户记住新建的账号,只需要输入使用了多年的邮箱地址即可,更可以为健忘的用户提供了一个可靠的找回密码的途径。

登录功能的初衷是把每个用户的状态数据持久化到服务器,但是传统无免登录功能的方式却提高了打开这个APP的时间开销,同时会间接地降低用户体验度。作为一个用户每天都需要使用的APP,如果每次使用前都需要进行登錄操作是一件极其不愉快的事情,因此,口袋阿语APP在保证用户信息安全的前提下把用户登录设计为具有时效性的登录,即在一段合理时间内用户可以免登录使用APP,如果用户长时间内处于不活跃的状态,系统会自动要求该用户下一次使用时必须进行登录。

用户密码是敏感信息,因为用户很有可能为了便利把所有APP以及支付软件的密码都设置为同一个密码,一旦泄漏会造成用户个人信息泄漏甚至造成财产损失。因此用户密码加密是重中之重,口袋阿语APP在应用层使用SHA-256加密算法,使用户密码在网络上传输时具有可靠的安全性。SHA-256是迭代的单向Hash函数,可以处理消息以产生称为“消息摘要”的精简表示。在抵抗生日攻击和抵御已知差分攻击方面,SHA-256比现在广泛使用的MD5和SHA-1等更具安全性。

3.2  查词模块

查词模块支持中文和阿拉伯语互查与模糊查询,用户在搜索框中输入部分阿拉伯语字母时,APP会根据所输入的字母进行即时查询,并在搜索框下方提示符合输入内容的单词,以方便用户通过直接点击提示的单词完成一次查询动作,而不需要用户输入完整的单词。用户对搜索框内容的每一次修改都会触发一次提示内容的更新,因此可以保证提示内容的实时性。用户在输入中文查阿拉伯语单词时会根据用户的输入进行中文智能组词,并在提示框中显示,每一栏中文词语后都会显示该中文词语的阿拉伯语近义词供用户参考。

3.3  单词学习复习模块

3.3.1  当前课时

口袋阿语APP默认按照课时是顺序为用户合理安排背词内容,设n为每日必学单词量,即一组词,n∈[15,25](单位:个)为一组词的合理区间。当一个用户学习完第五章才开始使用这个APP的情况下,用户可以点开当前课时功能选择任意课时作为起点背诵。这个功能使得用户在背词内容选择上更加的自由。

3.3.2  章节学习情况

以章节为单位采用进度条的形式直观地展示了用户对当前词书学习的具体情况,同时,给用户制定未来学习计划提供了参考数据。

3.3.3  单词学习

单词学习以考核的形式学习,考核分为两种形式:(1)提示阿拉伯语单词,从选项中选出正确的中文意思;(2)提示中文,从选项中选出正确阿拉伯语单词。这两种方式出现的比例为2:1。选项数量的设定为四个。在选项内容的设定上,系统会首先检测当前单词是何种词性,进一步筛选出同词性的单词作为干扰项。这样的设置方式可以使得干扰项更具有迷惑性。具体流程图如图5所示。

3.3.4  复习

复习提供了两种模式分别是正常模式和趣味模式。正常模式下几乎与“单词学习”模块中提供的考核模式相似,但在考核形式上两种方式出现的比例会对调。趣味模式详细的介绍在(3.4.2“消消乐”复习模式)中。复习的内容有两种:(1)用户自行选择任意章节(可多选)作为复习内容;(2)系统会根据用户的每日学习内容并依据艾宾浩斯遗忘曲线为用户智能地规划出当前需要复习的内容。

3.4  趣味模块

3.4.1  阿拉伯语短视频

短视频的素材来源于阿拉伯本地的经典动画片、电视剧、电影、新闻和学术讲座等视频的剪辑。剪辑的内容经过阿拉伯语言专业人士挑选,其内容为一小段(1~5句)对话和单人讲述等,经过如此筛选的内容是具有一定教学意义的,在短视频中也提供了考核方案和激励措施。

(1)考核方案。用户可以反复观看一个短视频,在点击“开始回答”的按钮后,界面出现两个选择按钮以及一个倒计时器,倒计时的时长系统会根据当前视频的时长设定。考核的形式分为两种:1)两个按钮内容相近时是考核对视频的细节辨析;2)按钮内容不相近时是考核对视频的主旨大意理解。用户作出选择后,倒计时停止,以剩余的秒数作为本题目的分数计入用户账户中。

(2)激励措施。“口袋阿语世界”是一个由使用本APP的全体用户构成的排行榜,会根据用户的分数进行世界排名。“口袋阿语世界”设置有周榜、月榜和年榜,榜首用户可以获得一枚勋章以及礼物作为激励。用户可以实时查看榜单以及自己当前的世界排名,可以邀请其他用户建立群组排行。群组性质类似于学校中的班级,群组的初衷是为了方便阿拉伯语教师组织以班级为单位的每日学习任务(第二课堂),同时也可以让多位志同道合的阿拉伯语学习者通过群内排名竞争以起到相互激励的作用。

中国互联网络信息中心(CNNIC)的相关调查数据显示,截至2020年3月,我国网民数量达9.04亿,其中85.6%的网民使用短视频应用,用户规模达7.73亿;而在用户使用时长方面,截至2019年12月,短视频则仅次于即时通信和网络视频(不含短视频),位列第三。在此大背景下,阿拉伯语短视频为阿拉伯语学习者提供了一种新式阿拉伯语学习途径。短视频这种表现形式,自诞生之日起便展现出独特的吸引力和影响力,阿拉伯语短视频使用户可以在空闲的时候以愉悦轻松的方式在短时间内学习多种题材和多种场景的阿拉伯语知识。

3.4.2  “消消乐”复习模式

如图3所示,考核方式一改传统的四选一模式。用户通过中文和阿拉伯语配对的方式消除掉两个对应方块,直到消除完六个方块,卡片上会浮现出这些单词对应的完整释义。卡片式的布局可以使用户在任意时候通过左右滑动浏览前面考核过的单词,如图6所示。

其中关键算法和难点是在对用户点击事件进行判断后的动画播放期间仍能对用户的再次选词提供准确和即时的判断执行,下文为代码描述。

定义全局变量并用volatile修饰保证线程可见性,由于一张卡片中有三组元素,考虑到在用户极端操作(上组配对动画还未结束的1.5秒内完成全部配对),因此为保证系统的稳定运行,入队元素必须与卡片中元素组数相同。代码为:

3.5  用户数据模块

用户数据包含了用户密码、已收藏和已学习单词、个性化设置中的邮箱地址和头像、用户签到等信息。用户的签到詳情,用户的签到详情以万年历的形式展示给用户,系统也会记录每天的背词数量,通过计算后以进度条形式展示,方便用户了解学习情况。

4  结  论

目前应用市场上阿拉伯语学习APP偏少,或者大多数阿拉伯语学习APP规模偏小,缺乏针对性和科学的记忆方法。本文设计开发的基于Android的阿拉伯语单词学习APP可以很好地满足广大阿拉伯语学习者的需要,另外该APP的移动学习模式符合大学生的心理诉求,丰富了阿拉伯语教学的形式和教学资源,成为学生课外自主学习的“第二课堂”,同时还打破了师生交流的时空限制,提高了学习交流的及时性。

参考文献:

[1] 何润民,马俊.SHA-256算法的安全性分析 [J].电子设计工程,2014,22(3):31-33.

[2] 冉思清.社会学视域下短视频与传统电视比较 [J].青年记者,2020(24):64-65.

[3] 孙未冉.艾宾浩斯遗忘曲线在学习中的应用 [J].科学大众(科学教育),2018(10):32.

[4] 刘东宁,马立蓉.基于智能手机的高校阿拉伯语移动学习策略和模式分析 [J].当代教育实践与教学研究,2019(19):35-36.

[5] LI Z Q,WANG Y N. Design and Implementation of Online Learning System based on Android Platform [J]. World Scientific Research Journal,2020,6(11):376-384.

[6] KURNIAWAN B,PERRY D. Android Application Development:A Tutorial [M].Canada:Brainy Software,2015.

[7] HENDIKAWATI P,ARIFUDIN R,ZAHID M Z. Development of computer-assisted instruction application for statistical data analysis android platform as learning resource [J]. Journal of Physics Conference Series,2018,983(1):1-7.

[8] KIM D K. Towards Performance-Enhancing Programming for Android Application Development [J]. International JOURNAL OF CONTENTS,2017,13(4):39-46.

[9] ALLEN G,OWENS M.SQLite权威指南:第2版 [M].杨谦,刘义宣,谢志强,译.北京:电子工业出版社,2012.

[10] 孟德国,王耀龙,周金利,等.深入理解Android:WebKit卷 [M].北京:机械工业出版社,2016.

[11] 秦小波.设计模式之禅:第2版 [M].北京:机器工业出版社,2014.

[12] 张思民.Java语言程序设计:第3版 [M].北京:清华大学出版社,2015.

[13] 李俊山,叶霞,罗蓉,等.数据库原理及应用(SQL Server):第3版 [M].北京:清华大学出版社,2017.

[14] GOETZ B,PEIERLS T,BLOCH J,等.Java并发编程实战 [M].童云兰,译.北京:机器工业出版社,2012.

作者简介:刘巨铭(1998—),男,汉族,广东肇庆人,本科在读,研究方向:软件工程;温柔(1998—),女,汉族,广东河源人,本科在读,研究方向:阿拉伯语;赖益强(1982—),男,汉族,广东梅州人,副教授,硕士,研究方向:数据库技术;周海贝(1998—),女,汉族,广东汕尾人,本科在读,研究方向:阿拉伯语。

猜你喜欢

阿拉伯语
浅析阿拉伯语语音学习难点及解决方法
百年翻译运动对阿拉伯语的影响
国内“阿拉伯语比喻”问题研究
阿拉伯语书籍电子化及其网络销售的项目研究
阿拉伯语书籍电子化及其网络销售的项目研究
阿拉伯文学选读课程“五读”教学模式初探
从社会语言学视角论阿拉伯语对西班牙语的影响