劉巨銘 溫柔 賴益強(qiáng) 周海貝
摘? 要:針對(duì)目前手機(jī)應(yīng)用市場(chǎng)上關(guān)于阿拉伯語學(xué)習(xí)類APP功能單一,無法滿足學(xué)習(xí)者日常學(xué)習(xí)需求的問題,同時(shí)為了廣外南國(guó)商學(xué)院阿拉伯語學(xué)習(xí)者們能擁有一個(gè)具有自身特色的學(xué)習(xí)APP,設(shè)計(jì)并實(shí)現(xiàn)了口袋阿語APP。該APP基于Android平臺(tái),使用了多線程、9Patch、XML、JSON和SHA-256等技術(shù)實(shí)現(xiàn)了用戶注冊(cè)登錄、單詞學(xué)習(xí)復(fù)習(xí)、趣味學(xué)習(xí)、個(gè)人中心和打卡簽到等功能。該APP可以為學(xué)習(xí)者們?cè)谝苿?dòng)端學(xué)習(xí)阿拉伯語帶來極大的便利和趣味性。
關(guān)鍵詞:Android;APP開發(fā);阿拉伯語;單詞學(xué)習(xí)
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? 引? 言
國(guó)內(nèi)對(duì)于英語學(xué)習(xí)軟件的開發(fā)起步較早,但與阿拉伯語相關(guān)的學(xué)習(xí)軟件可選擇范圍較小且功能單一。針對(duì)此問題,口袋阿語APP借鑒了各類外語學(xué)習(xí)APP軟件的功能特點(diǎn),為阿語學(xué)習(xí)者們搭建了一個(gè)具有專業(yè)特色的學(xué)習(xí)互動(dòng)平臺(tái)。該APP通過查詞、單詞學(xué)習(xí)、基于艾賓浩斯遺忘曲線的智能單詞復(fù)習(xí)、“消消樂”卡片復(fù)習(xí)和口袋阿語世界排行榜等功能模塊構(gòu)成了一個(gè)完整的學(xué)習(xí)流程和激勵(lì)體系,用戶在使用口袋阿語APP學(xué)習(xí)時(shí),可以有效提高用戶的注意力、提升學(xué)習(xí)過程的趣味性、提高用戶成就感并減少用戶遺忘等效果。筆者通過對(duì)廣東外語外貿(mào)大學(xué)南國(guó)商學(xué)院的阿拉伯語專業(yè)的師生進(jìn)行需求調(diào)研,采用軟件工程的開發(fā)方法,結(jié)合APP設(shè)計(jì)理念針對(duì)口袋阿語APP進(jìn)行了近一年的設(shè)計(jì)與開發(fā),本文從APP架構(gòu)設(shè)計(jì)到具體的功能的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行了詳細(xì)的闡述,旨在為學(xué)習(xí)類APP設(shè)計(jì)者和開發(fā)者分享設(shè)計(jì)與實(shí)現(xiàn)的思路和方法。
1? APP架構(gòu)
1.1? 開發(fā)平臺(tái)——Android Studio
Android Studio是美國(guó)谷歌公司推出的一個(gè)基于IntelliJ IDEA的Android集成開發(fā)環(huán)境,谷歌公司在IDEA的基礎(chǔ)上為其提供了基于Gradle的構(gòu)建支持、Android專屬的重構(gòu)、優(yōu)化小貼士和功能強(qiáng)大的可即時(shí)預(yù)覽的布局編輯器等開發(fā)工具有效地提高了本項(xiàng)目開發(fā)和調(diào)試效率。
1.2? 開發(fā)語言——Java
Java是一種面向?qū)ο蟮恼Z言,其語言特性是封裝、繼承和多態(tài),這些特性使得在犧牲一定的性能情況下能設(shè)計(jì)出低耦合的系統(tǒng),這樣的系統(tǒng)還具有易維護(hù)、易復(fù)用和易擴(kuò)展的特點(diǎn)。在減少代碼量的同時(shí)還降低了系統(tǒng)維護(hù)成本。由于本項(xiàng)目的需求不斷變化,因此這些特點(diǎn)為開發(fā)和維護(hù)帶來了極大的便利。
1.3? 開發(fā)框架
本項(xiàng)目采用Android原生開發(fā),原生開發(fā)模式開發(fā)的APP具有運(yùn)行速度快、性能高和兼容性好等特點(diǎn)。原生應(yīng)用支持大量的圖形以及動(dòng)畫,能更好操控手機(jī)硬件設(shè)備(比如多點(diǎn)觸控、NFC等),在開發(fā)中充分利用這些特點(diǎn)可以給予用戶更好的體驗(yàn)。在本項(xiàng)目中以最為常用的MVP(Model View Presenter)架構(gòu)搭建Android端,以SSM(Spring+SpringMVC+ Mybatis)框架搭建服務(wù)器后端與Android端進(jìn)行JSON數(shù)據(jù)交互?;贛VP設(shè)計(jì)的系統(tǒng)具有代碼邏輯清晰、低耦合和方便維護(hù)等優(yōu)點(diǎn)。項(xiàng)目部署在裝有CentOS 7系統(tǒng)的云端服務(wù)器中,Android端通過Web請(qǐng)求實(shí)現(xiàn)前后端的數(shù)據(jù)交互,這樣前后端分離的設(shè)計(jì)模式更加符合現(xiàn)代APP需求快速變更的特以及海量數(shù)據(jù)需要存儲(chǔ)的基本特征,同時(shí)降低系統(tǒng)的耦合度,對(duì)日后的維護(hù)工作具有深遠(yuǎn)意義。
2? 總體設(shè)計(jì)與需求分析
2.1? 功能框架介紹
功能模塊如圖1所示。
2.2? UI設(shè)計(jì)
APP部分UI設(shè)計(jì)如圖2、圖3所示??诖⒄ZAPP部分模塊的UI設(shè)計(jì)采用Google Material Design的設(shè)計(jì)風(fēng)格,如趣味模塊中的“消消樂”卡片復(fù)習(xí)模式,就是直接采用了Android提供的原生MaterialCardView組件設(shè)計(jì)成卡片式布局,這樣具有動(dòng)效且色彩大膽的卡片布局更符合視覺連貫性并且更有交互性,在用戶的使用過程中這些細(xì)節(jié)能給用戶帶來一種細(xì)膩的愉悅感。精致的UI設(shè)計(jì)可以使用戶在口袋阿語APP停留更多的時(shí)間,以此變相地增長(zhǎng)用戶的學(xué)習(xí)時(shí)間。
2.3? 數(shù)據(jù)庫設(shè)計(jì)
通過前期的調(diào)研,根據(jù)需求分析說明書以及使用條件設(shè)計(jì)了滿足3NF范式的數(shù)據(jù)庫。在本項(xiàng)目中采用了MySQL數(shù)據(jù)庫,MySQL數(shù)據(jù)庫是關(guān)系型數(shù)據(jù)庫,其支持多種數(shù)據(jù)類型、語句和函數(shù)。數(shù)據(jù)庫部分?jǐn)?shù)據(jù)表如表1~表3所示,數(shù)據(jù)庫E-R圖如圖4所示。
3? 功能實(shí)現(xiàn)
3.1? 注冊(cè)登錄模塊
注冊(cè)模塊采用了通過郵箱發(fā)送驗(yàn)證碼的方式驗(yàn)證本次注冊(cè)是一次“合法”的注冊(cè),這種方式可以有效限制“非法”的注冊(cè),如:編寫惡意程序短時(shí)間進(jìn)行多次注冊(cè)或大量無用注冊(cè)等等,“非法”注冊(cè)會(huì)造成服務(wù)器擁擠甚至崩潰,導(dǎo)致?lián)p失大量用戶關(guān)鍵數(shù)據(jù)。這種方式不僅保護(hù)了服務(wù)器,同時(shí)也為用戶注冊(cè)帶來了更多的便利,利用郵箱注冊(cè)不需要用戶記住新建的賬號(hào),只需要輸入使用了多年的郵箱地址即可,更可以為健忘的用戶提供了一個(gè)可靠的找回密碼的途徑。
登錄功能的初衷是把每個(gè)用戶的狀態(tài)數(shù)據(jù)持久化到服務(wù)器,但是傳統(tǒng)無免登錄功能的方式卻提高了打開這個(gè)APP的時(shí)間開銷,同時(shí)會(huì)間接地降低用戶體驗(yàn)度。作為一個(gè)用戶每天都需要使用的APP,如果每次使用前都需要進(jìn)行登錄操作是一件極其不愉快的事情,因此,口袋阿語APP在保證用戶信息安全的前提下把用戶登錄設(shè)計(jì)為具有時(shí)效性的登錄,即在一段合理時(shí)間內(nèi)用戶可以免登錄使用APP,如果用戶長(zhǎng)時(shí)間內(nèi)處于不活躍的狀態(tài),系統(tǒng)會(huì)自動(dòng)要求該用戶下一次使用時(shí)必須進(jìn)行登錄。
用戶密碼是敏感信息,因?yàn)橛脩艉苡锌赡転榱吮憷阉蠥PP以及支付軟件的密碼都設(shè)置為同一個(gè)密碼,一旦泄漏會(huì)造成用戶個(gè)人信息泄漏甚至造成財(cái)產(chǎn)損失。因此用戶密碼加密是重中之重,口袋阿語APP在應(yīng)用層使用SHA-256加密算法,使用戶密碼在網(wǎng)絡(luò)上傳輸時(shí)具有可靠的安全性。SHA-256是迭代的單向Hash函數(shù),可以處理消息以產(chǎn)生稱為“消息摘要”的精簡(jiǎn)表示。在抵抗生日攻擊和抵御已知差分攻擊方面,SHA-256比現(xiàn)在廣泛使用的MD5和SHA-1等更具安全性。
3.2? 查詞模塊
查詞模塊支持中文和阿拉伯語互查與模糊查詢,用戶在搜索框中輸入部分阿拉伯語字母時(shí),APP會(huì)根據(jù)所輸入的字母進(jìn)行即時(shí)查詢,并在搜索框下方提示符合輸入內(nèi)容的單詞,以方便用戶通過直接點(diǎn)擊提示的單詞完成一次查詢動(dòng)作,而不需要用戶輸入完整的單詞。用戶對(duì)搜索框內(nèi)容的每一次修改都會(huì)觸發(fā)一次提示內(nèi)容的更新,因此可以保證提示內(nèi)容的實(shí)時(shí)性。用戶在輸入中文查阿拉伯語單詞時(shí)會(huì)根據(jù)用戶的輸入進(jìn)行中文智能組詞,并在提示框中顯示,每一欄中文詞語后都會(huì)顯示該中文詞語的阿拉伯語近義詞供用戶參考。
3.3? 單詞學(xué)習(xí)復(fù)習(xí)模塊
3.3.1? 當(dāng)前課時(shí)
口袋阿語APP默認(rèn)按照課時(shí)是順序?yàn)橛脩艉侠戆才疟吃~內(nèi)容,設(shè)n為每日必學(xué)單詞量,即一組詞,n∈[15,25](單位:個(gè))為一組詞的合理區(qū)間。當(dāng)一個(gè)用戶學(xué)習(xí)完第五章才開始使用這個(gè)APP的情況下,用戶可以點(diǎn)開當(dāng)前課時(shí)功能選擇任意課時(shí)作為起點(diǎn)背誦。這個(gè)功能使得用戶在背詞內(nèi)容選擇上更加的自由。
3.3.2? 章節(jié)學(xué)習(xí)情況
以章節(jié)為單位采用進(jìn)度條的形式直觀地展示了用戶對(duì)當(dāng)前詞書學(xué)習(xí)的具體情況,同時(shí),給用戶制定未來學(xué)習(xí)計(jì)劃提供了參考數(shù)據(jù)。
3.3.3? 單詞學(xué)習(xí)
單詞學(xué)習(xí)以考核的形式學(xué)習(xí),考核分為兩種形式:(1)提示阿拉伯語單詞,從選項(xiàng)中選出正確的中文意思;(2)提示中文,從選項(xiàng)中選出正確阿拉伯語單詞。這兩種方式出現(xiàn)的比例為2:1。選項(xiàng)數(shù)量的設(shè)定為四個(gè)。在選項(xiàng)內(nèi)容的設(shè)定上,系統(tǒng)會(huì)首先檢測(cè)當(dāng)前單詞是何種詞性,進(jìn)一步篩選出同詞性的單詞作為干擾項(xiàng)。這樣的設(shè)置方式可以使得干擾項(xiàng)更具有迷惑性。具體流程圖如圖5所示。
3.3.4? 復(fù)習(xí)
復(fù)習(xí)提供了兩種模式分別是正常模式和趣味模式。正常模式下幾乎與“單詞學(xué)習(xí)”模塊中提供的考核模式相似,但在考核形式上兩種方式出現(xiàn)的比例會(huì)對(duì)調(diào)。趣味模式詳細(xì)的介紹在(3.4.2“消消樂”復(fù)習(xí)模式)中。復(fù)習(xí)的內(nèi)容有兩種:(1)用戶自行選擇任意章節(jié)(可多選)作為復(fù)習(xí)內(nèi)容;(2)系統(tǒng)會(huì)根據(jù)用戶的每日學(xué)習(xí)內(nèi)容并依據(jù)艾賓浩斯遺忘曲線為用戶智能地規(guī)劃出當(dāng)前需要復(fù)習(xí)的內(nèi)容。
3.4? 趣味模塊
3.4.1? 阿拉伯語短視頻
短視頻的素材來源于阿拉伯本地的經(jīng)典動(dòng)畫片、電視劇、電影、新聞和學(xué)術(shù)講座等視頻的剪輯。剪輯的內(nèi)容經(jīng)過阿拉伯語言專業(yè)人士挑選,其內(nèi)容為一小段(1~5句)對(duì)話和單人講述等,經(jīng)過如此篩選的內(nèi)容是具有一定教學(xué)意義的,在短視頻中也提供了考核方案和激勵(lì)措施。
(1)考核方案。用戶可以反復(fù)觀看一個(gè)短視頻,在點(diǎn)擊“開始回答”的按鈕后,界面出現(xiàn)兩個(gè)選擇按鈕以及一個(gè)倒計(jì)時(shí)器,倒計(jì)時(shí)的時(shí)長(zhǎng)系統(tǒng)會(huì)根據(jù)當(dāng)前視頻的時(shí)長(zhǎng)設(shè)定??己说男问椒譃閮煞N:1)兩個(gè)按鈕內(nèi)容相近時(shí)是考核對(duì)視頻的細(xì)節(jié)辨析;2)按鈕內(nèi)容不相近時(shí)是考核對(duì)視頻的主旨大意理解。用戶作出選擇后,倒計(jì)時(shí)停止,以剩余的秒數(shù)作為本題目的分?jǐn)?shù)計(jì)入用戶賬戶中。
(2)激勵(lì)措施?!翱诖⒄Z世界”是一個(gè)由使用本APP的全體用戶構(gòu)成的排行榜,會(huì)根據(jù)用戶的分?jǐn)?shù)進(jìn)行世界排名?!翱诖⒄Z世界”設(shè)置有周榜、月榜和年榜,榜首用戶可以獲得一枚勛章以及禮物作為激勵(lì)。用戶可以實(shí)時(shí)查看榜單以及自己當(dāng)前的世界排名,可以邀請(qǐng)其他用戶建立群組排行。群組性質(zhì)類似于學(xué)校中的班級(jí),群組的初衷是為了方便阿拉伯語教師組織以班級(jí)為單位的每日學(xué)習(xí)任務(wù)(第二課堂),同時(shí)也可以讓多位志同道合的阿拉伯語學(xué)習(xí)者通過群內(nèi)排名競(jìng)爭(zhēng)以起到相互激勵(lì)的作用。
中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)的相關(guān)調(diào)查數(shù)據(jù)顯示,截至2020年3月,我國(guó)網(wǎng)民數(shù)量達(dá)9.04億,其中85.6%的網(wǎng)民使用短視頻應(yīng)用,用戶規(guī)模達(dá)7.73億;而在用戶使用時(shí)長(zhǎng)方面,截至2019年12月,短視頻則僅次于即時(shí)通信和網(wǎng)絡(luò)視頻(不含短視頻),位列第三。在此大背景下,阿拉伯語短視頻為阿拉伯語學(xué)習(xí)者提供了一種新式阿拉伯語學(xué)習(xí)途徑。短視頻這種表現(xiàn)形式,自誕生之日起便展現(xiàn)出獨(dú)特的吸引力和影響力,阿拉伯語短視頻使用戶可以在空閑的時(shí)候以愉悅輕松的方式在短時(shí)間內(nèi)學(xué)習(xí)多種題材和多種場(chǎng)景的阿拉伯語知識(shí)。
3.4.2? “消消樂”復(fù)習(xí)模式
如圖3所示,考核方式一改傳統(tǒng)的四選一模式。用戶通過中文和阿拉伯語配對(duì)的方式消除掉兩個(gè)對(duì)應(yīng)方塊,直到消除完六個(gè)方塊,卡片上會(huì)浮現(xiàn)出這些單詞對(duì)應(yīng)的完整釋義??ㄆ降牟季挚梢允褂脩粼谌我鈺r(shí)候通過左右滑動(dòng)瀏覽前面考核過的單詞,如圖6所示。
其中關(guān)鍵算法和難點(diǎn)是在對(duì)用戶點(diǎn)擊事件進(jìn)行判斷后的動(dòng)畫播放期間仍能對(duì)用戶的再次選詞提供準(zhǔn)確和即時(shí)的判斷執(zhí)行,下文為代碼描述。
定義全局變量并用volatile修飾保證線程可見性,由于一張卡片中有三組元素,考慮到在用戶極端操作(上組配對(duì)動(dòng)畫還未結(jié)束的1.5秒內(nèi)完成全部配對(duì)),因此為保證系統(tǒng)的穩(wěn)定運(yùn)行,入隊(duì)元素必須與卡片中元素組數(shù)相同。代碼為:
3.5? 用戶數(shù)據(jù)模塊
用戶數(shù)據(jù)包含了用戶密碼、已收藏和已學(xué)習(xí)單詞、個(gè)性化設(shè)置中的郵箱地址和頭像、用戶簽到等信息。用戶的簽到詳情,用戶的簽到詳情以萬年歷的形式展示給用戶,系統(tǒng)也會(huì)記錄每天的背詞數(shù)量,通過計(jì)算后以進(jìn)度條形式展示,方便用戶了解學(xué)習(xí)情況。
4? 結(jié)? 論
目前應(yīng)用市場(chǎng)上阿拉伯語學(xué)習(xí)APP偏少,或者大多數(shù)阿拉伯語學(xué)習(xí)APP規(guī)模偏小,缺乏針對(duì)性和科學(xué)的記憶方法。本文設(shè)計(jì)開發(fā)的基于Android的阿拉伯語單詞學(xué)習(xí)APP可以很好地滿足廣大阿拉伯語學(xué)習(xí)者的需要,另外該APP的移動(dòng)學(xué)習(xí)模式符合大學(xué)生的心理訴求,豐富了阿拉伯語教學(xué)的形式和教學(xué)資源,成為學(xué)生課外自主學(xué)習(xí)的“第二課堂”,同時(shí)還打破了師生交流的時(shí)空限制,提高了學(xué)習(xí)交流的及時(shí)性。
參考文獻(xiàn):
[1] 何潤(rùn)民,馬俊.SHA-256算法的安全性分析 [J].電子設(shè)計(jì)工程,2014,22(3):31-33.
[2] 冉思清.社會(huì)學(xué)視域下短視頻與傳統(tǒng)電視比較 [J].青年記者,2020(24):64-65.
[3] 孫未冉.艾賓浩斯遺忘曲線在學(xué)習(xí)中的應(yīng)用 [J].科學(xué)大眾(科學(xué)教育),2018(10):32.
[4] 劉東寧,馬立蓉.基于智能手機(jī)的高校阿拉伯語移動(dòng)學(xué)習(xí)策略和模式分析 [J].當(dāng)代教育實(shí)踐與教學(xué)研究,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權(quán)威指南:第2版 [M].楊謙,劉義宣,謝志強(qiáng),譯.北京:電子工業(yè)出版社,2012.
[10] 孟德國(guó),王耀龍,周金利,等.深入理解Android:WebKit卷 [M].北京:機(jī)械工業(yè)出版社,2016.
[11] 秦小波.設(shè)計(jì)模式之禪:第2版 [M].北京:機(jī)器工業(yè)出版社,2014.
[12] 張思民.Java語言程序設(shè)計(jì):第3版 [M].北京:清華大學(xué)出版社,2015.
[13] 李俊山,葉霞,羅蓉,等.數(shù)據(jù)庫原理及應(yīng)用(SQL Server):第3版 [M].北京:清華大學(xué)出版社,2017.
[14] GOETZ B,PEIERLS T,BLOCH J,等.Java并發(fā)編程實(shí)戰(zhàn) [M].童云蘭,譯.北京:機(jī)器工業(yè)出版社,2012.
作者簡(jiǎn)介:劉巨銘(1998—),男,漢族,廣東肇慶人,本科在讀,研究方向:軟件工程;溫柔(1998—),女,漢族,廣東河源人,本科在讀,研究方向:阿拉伯語;賴益強(qiáng)(1982—),男,漢族,廣東梅州人,副教授,碩士,研究方向:數(shù)據(jù)庫技術(shù);周海貝(1998—),女,漢族,廣東汕尾人,本科在讀,研究方向:阿拉伯語。