楊澤豐++王海春++李均
摘要:本文描述了基本Android環(huán)境的一款手機(jī)端菜譜系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程。本APP實(shí)現(xiàn)了用戶(hù)所在地定位、商家定位、商家導(dǎo)航(含語(yǔ)音播報(bào))、商家詳情展示、用戶(hù)信息更改、模糊查詢(xún)菜譜、搜索歷史、地域菜色、菜譜詳情、早餐至宵夜推薦、用戶(hù)之間交流心得等功能,可以通過(guò)服務(wù)器端查看并維護(hù)用戶(hù)數(shù)據(jù)(使用了Bmob第三方服務(wù)器)。本系統(tǒng)具備菜譜類(lèi)應(yīng)用所需要的所有基本功能,實(shí)現(xiàn)服務(wù)器端與app之間交互。系統(tǒng)具有較強(qiáng)實(shí)用性,可提供給用戶(hù)良好的操作體驗(yàn),解決用戶(hù)生活困擾,有良好的應(yīng)用價(jià)值和使用前景。
關(guān)鍵詞:手機(jī)端菜譜 服務(wù)器響應(yīng) APP定位
中圖分類(lèi)號(hào):TP393.09 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)12-0153-02
1 引言
手機(jī)作為當(dāng)今人們?nèi)粘I钪胁豢扇鄙傥锲?,而手機(jī)App也逐漸走進(jìn)千家萬(wàn)戶(hù),擺脫身邊沒(méi)有電腦不方便的煩惱,越來(lái)越多的傳統(tǒng)行業(yè)加入互聯(lián)網(wǎng)大軍,以簡(jiǎn)潔精美的界面、簡(jiǎn)單快捷的操作在手機(jī)上生成了App,App的實(shí)現(xiàn)也使得用戶(hù)可以有更好的消費(fèi)體驗(yàn)。在節(jié)奏快、應(yīng)接不暇的都市生活中,本系統(tǒng)主要可以使用戶(hù)通過(guò)手機(jī)學(xué)習(xí)到相關(guān)菜肴的信息,進(jìn)行菜肴的學(xué)習(xí)以及烹調(diào),方便快捷。同時(shí)實(shí)現(xiàn)了導(dǎo)航定位,方便用戶(hù)前往相應(yīng)餐館就餐。
本系統(tǒng)可以實(shí)現(xiàn)App菜單的基本流程和功能,還新增了部分功能,可以應(yīng)用于生活中,增加生活便捷性。
隨著互聯(lián)網(wǎng)的高速發(fā)展,越來(lái)越多的人體驗(yàn)到了這種“互聯(lián)網(wǎng)+”這種全新模式的可貴之處。與此同時(shí),各種外賣(mài)類(lèi)APP以及訂餐類(lèi)APP應(yīng)運(yùn)而生,這兩類(lèi)APP極大程度解決了人們因生活節(jié)奏變快,經(jīng)常加班沒(méi)時(shí)間等原因造成的飲食問(wèn)題,但就算如此,人們長(zhǎng)時(shí)間吃外賣(mài)以及到外餐館吃飯,先不說(shuō)營(yíng)養(yǎng)問(wèn)題,單是飲食衛(wèi)生及飲食安全就難以保障,這是一個(gè)越不過(guò)去的坎。
根據(jù)以上情況,開(kāi)發(fā)菜單類(lèi)APP勢(shì)在必行,APP不僅可以滿(mǎn)足人們因生活節(jié)奏變快導(dǎo)致的沒(méi)時(shí)間學(xué)習(xí)菜肴問(wèn)題,還可以有效的提高人們生活品質(zhì),讓人們?cè)跁r(shí)間緊張的情況下吃到健康美味的食物。而當(dāng)下社會(huì),“吃”占了消費(fèi)的很大比例,因此,“吃貨”也是日益增多,對(duì)于“吃貨”而言,最痛苦的就是沒(méi)有好吃的,該類(lèi)APP也有效的解決此問(wèn)題,讓吃貨每天都可以看到不同的美食,簡(jiǎn)直是“吃貨”的福音。
本系統(tǒng)運(yùn)行于目前性能非常好的智能手機(jī)操作系統(tǒng)Android上,為當(dāng)代人們帶來(lái)了意想不到的驚喜,同時(shí)系統(tǒng)界面簡(jiǎn)潔、操作簡(jiǎn)單、內(nèi)容豐富,能夠符合用戶(hù)操作APP的需求。
2 系統(tǒng)需求分析
當(dāng)今,人們的生活節(jié)奏變快了,所以對(duì)生活中各項(xiàng)要求也加快了需求。本系統(tǒng)的產(chǎn)生適應(yīng)人們對(duì)生活要求的提高,極大改善人們的生活品質(zhì),讓人們?cè)谟邢薜臅r(shí)間里,可以做出自己心滿(mǎn)意足的食物。
從技術(shù)層面說(shuō):Android使用語(yǔ)言為Java,是基于C語(yǔ)言的面向?qū)ο笳Z(yǔ)言,所以學(xué)習(xí)起來(lái)很快。使用MVC設(shè)計(jì)模式使工程簡(jiǎn)潔,使用Model請(qǐng)求數(shù)據(jù),使用View顯示數(shù)據(jù)、處理數(shù)據(jù),使用Controller處理邏輯,分工明確。使用使用的云服務(wù)器Bmob已經(jīng)集成了Android SDK,使用Bmob封裝好的方法可以快速的實(shí)現(xiàn)數(shù)據(jù)表添加、刪除、更改的操作。
從經(jīng)濟(jì)層面說(shuō):因?yàn)槭腔贏ndroid開(kāi)發(fā),所以使用設(shè)備很好找,畢竟支持Android開(kāi)發(fā)的硬件設(shè)備太過(guò)龐大,開(kāi)發(fā)該系統(tǒng)的Android Studio能夠從各大網(wǎng)站下載到,方便快捷,而且不會(huì)收取任何費(fèi)用(特定收費(fèi)軟件除外),而且系統(tǒng)屬于個(gè)人項(xiàng)目,不會(huì)找太多的資源(人力,物力,財(cái)力),成本低下,也不用各部門(mén)協(xié)商,開(kāi)發(fā)效率可觀。
從社會(huì)層面說(shuō):本系統(tǒng)可以滿(mǎn)足人們對(duì)生活品質(zhì)的需求,人們對(duì)吃越來(lái)越注重,吃的健康、質(zhì)量好、品種豐富成了現(xiàn)在人們的首選,本系統(tǒng)中可以通過(guò)菜品的詳細(xì)描述和成品展示的方式選擇更好的更符合用戶(hù)自己口味的菜品。
本系統(tǒng)是基于Android的菜譜大全系統(tǒng),本系統(tǒng)要求是實(shí)現(xiàn)菜品展示,用戶(hù)登錄注冊(cè),通過(guò)定位了解商家具體位置并獲取到相應(yīng)地區(qū)的商家信息,通過(guò)導(dǎo)航前往商家品嘗菜品;用戶(hù)的信息以及頭像文件均可通過(guò)Bmob第三方服務(wù)器的數(shù)據(jù)表進(jìn)行查看。
3 系統(tǒng)結(jié)構(gòu)與功能
因現(xiàn)在Android版本已經(jīng)發(fā)展到Android7.0,所以基于Android的app端開(kāi)發(fā)要向下兼容,我使用的是Android6.0開(kāi)發(fā)環(huán)境,實(shí)現(xiàn)API21(為了實(shí)現(xiàn)按鈕水波樣式)以上用戶(hù)均可使用APP,又能不影響大部分功能即可,版本太高也不敢嘗試。
為了實(shí)現(xiàn)菜譜APP的基本功能,該系統(tǒng)主要包含如下功能:①用戶(hù)管理;②用戶(hù)信息存儲(chǔ);③搜索功能;④定位功能;⑤語(yǔ)音導(dǎo)航功能;⑥商品展示;⑦其它功能。
系統(tǒng)各功能模塊的具體描述如下。
(1)用戶(hù)管理。數(shù)據(jù)存儲(chǔ)于Bmob第三方數(shù)據(jù)后臺(tái),通過(guò)驗(yàn)證用戶(hù)輸入用戶(hù)名與密碼是否吻合來(lái)進(jìn)行登錄,通過(guò)判斷Bmob后臺(tái)是否已含有該用戶(hù)名來(lái)進(jìn)行注冊(cè),通過(guò)匹配Bmob后臺(tái)的ObjectId來(lái)進(jìn)行相應(yīng)的頭像修改,密碼修改,昵稱(chēng)修改。
(2)用戶(hù)信息存儲(chǔ)。使用Bmob第三方數(shù)據(jù)后臺(tái)進(jìn)行數(shù)據(jù)存儲(chǔ),便于與用戶(hù)app進(jìn)行交互,增強(qiáng)體驗(yàn)。為了信息安全性考慮,本系統(tǒng)的密碼使用了MD5算法進(jìn)行加密。
(3)搜索功能。自定義了一個(gè)控件,實(shí)現(xiàn)了搜索功能以及搜索歷史功能,使用SharPerfence進(jìn)行了搜索歷史的本地存儲(chǔ),并通過(guò)訪問(wèn)網(wǎng)絡(luò)接口實(shí)現(xiàn)了關(guān)鍵詞的搜索以及模糊查詢(xún)。
(4)定位功能。通過(guò)集成高德第三方定位SDK,使用GPS與WIFI實(shí)現(xiàn)了用戶(hù)精確定位,并獲取到相關(guān)定位數(shù)據(jù),進(jìn)行了相應(yīng)的區(qū)域判斷,通過(guò)訪問(wèn)網(wǎng)絡(luò)接口獲取到相應(yīng)區(qū)域的商家信息,定位功能是后續(xù)商家詳情,導(dǎo)航等功能實(shí)現(xiàn)的基礎(chǔ)。
(5)語(yǔ)音導(dǎo)航功能。與定位功能類(lèi)似,集成于高德第三方SDK,并在此基礎(chǔ)上集成了訊飛SDK,語(yǔ)音導(dǎo)航功能成功接入,導(dǎo)航功能的實(shí)現(xiàn),為用戶(hù)前往商家提供了有效路徑規(guī)劃,減少了用戶(hù)浪費(fèi)時(shí)間的可能,并有效的將商家與用戶(hù)連接在了一起,提高了用戶(hù)體驗(yàn),并采用模擬導(dǎo)航來(lái)實(shí)現(xiàn)功能的檢驗(yàn)。
(6)商品展示。通過(guò)網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù),將所請(qǐng)求到的數(shù)據(jù)展示到相應(yīng)頁(yè)面,提供給用戶(hù)良好的UI體驗(yàn),并供給用戶(hù)選擇,學(xué)習(xí)用戶(hù)所需菜品,該功能是整個(gè)APP的核心功能,也是諸多功能的紐帶。
(7)其它功能。包含了二維碼掃描功能,二維碼識(shí)別功能,二維碼生成,用戶(hù)社交功能,只為了增強(qiáng)體驗(yàn)以及后續(xù)開(kāi)發(fā)。模塊的功能所屬關(guān)系如下表1所示。
4 系統(tǒng)主要模塊的設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)分為后端服務(wù)器和手機(jī)端應(yīng)用兩部分,后端服務(wù)器目前僅僅搭有1張數(shù)據(jù)表,用于存儲(chǔ)用戶(hù)相關(guān)信息以及文件存儲(chǔ)區(qū),用于存儲(chǔ)用戶(hù)頭像信息,具體數(shù)據(jù)表搭建見(jiàn)第五章詳情設(shè)計(jì)。
app啟動(dòng),首先是Launch(歡迎)頁(yè)面(每次都會(huì)啟動(dòng)),在此頁(yè)面APP會(huì)提醒用戶(hù)獲取相應(yīng)權(quán)限(Android 6.0部分權(quán)限需要申請(qǐng)),當(dāng)用戶(hù)向左滑動(dòng)完四張歡迎圖之后,會(huì)進(jìn)入登陸界面(該APP需先登錄才可使用)。
(1)用戶(hù)登錄注冊(cè)。用戶(hù)通過(guò)輸入用戶(hù)名以及密碼來(lái)進(jìn)行登錄,可選擇是否記住密碼(記住密碼后,每次進(jìn)入都會(huì)默認(rèn)輸入用戶(hù)名以及密碼),并可根據(jù)所輸入帳號(hào)顯示用戶(hù)頭像,若無(wú)帳號(hào),則進(jìn)行注冊(cè)。
(2)用戶(hù)頭像修改。用戶(hù)登錄后,可從相冊(cè)選取圖片或相機(jī)拍攝照片作為用戶(hù)頭像。
(3)用戶(hù)昵稱(chēng)修改。用戶(hù)登錄后,可進(jìn)行昵稱(chēng)修改。
(4)用戶(hù)密碼修改。用戶(hù)登錄后,可進(jìn)行用戶(hù)個(gè)人的密碼修改,密碼修改流程。
(5)菜品推薦。登錄成功后,進(jìn)入首頁(yè),首頁(yè)向用戶(hù)展示了早餐-宵夜的推薦菜品、今日特殊推薦以及猜你喜歡,早餐-宵夜可通過(guò)拉動(dòng)橫向時(shí)間軸來(lái)查看,時(shí)間軸還顯示了當(dāng)前具體時(shí)間,今日特殊推薦有才要推薦,有制作過(guò)程等。若用戶(hù)對(duì)某項(xiàng)感興趣,點(diǎn)擊便可跳轉(zhuǎn)到相應(yīng)頁(yè)面。
(6)搜索功能。當(dāng)用戶(hù)點(diǎn)擊某項(xiàng)菜品時(shí),便會(huì)跳轉(zhuǎn)到此頁(yè)面(接口原因,不能直接跳到對(duì)應(yīng)的菜品詳情),用戶(hù)只需要輸入菜品名稱(chēng)或菜譜名稱(chēng)或關(guān)鍵詞均可實(shí)現(xiàn)查詢(xún),并賦以搜索記錄,讓用戶(hù)隨時(shí)可查看搜索歷史(搜索功能設(shè)置在美食版塊)。
(7)用戶(hù)定位。當(dāng)用戶(hù)進(jìn)入美食版塊時(shí),首先開(kāi)始進(jìn)行用戶(hù)地理位置的精確定位,并根據(jù)用戶(hù)當(dāng)前定位查找用戶(hù)所在區(qū)域的商家美食,并將商家數(shù)據(jù)展示出來(lái),還可供用戶(hù)進(jìn)行區(qū)域選擇(此功能與導(dǎo)航功能密不可分)。
(8)用戶(hù)區(qū)域選擇。用戶(hù)若想知道其他區(qū)域的商家情況,可以通過(guò)區(qū)域選擇功能來(lái)選擇不同的區(qū)域,并根據(jù)選擇區(qū)域與定位區(qū)域進(jìn)行判斷,是否相同,給予用戶(hù)相應(yīng)的提示信息展示,該系統(tǒng)會(huì)根據(jù)用戶(hù)所選擇的區(qū)域來(lái)進(jìn)行相應(yīng)區(qū)域的商家展示。
(9)商家展示。通過(guò)用戶(hù)所選擇區(qū)域,請(qǐng)求相應(yīng)的網(wǎng)絡(luò)數(shù)據(jù),展示出對(duì)應(yīng)區(qū)域的商家。
(10)商家詳情。用戶(hù)通過(guò)選擇心儀的商家,可前往商家詳情查看商家的具體定位位置以及其它信息,若用戶(hù)滿(mǎn)意,有意前往對(duì)應(yīng)商家,可通過(guò)撥打電話(huà)的方式預(yù)定位置,并可通過(guò)語(yǔ)音導(dǎo)航前往商家。
(11)語(yǔ)音導(dǎo)航。通過(guò)傳入的商家定位信息以及之前用戶(hù)的精確定位信息,采用高德第三方導(dǎo)航SDK并接入了訊飛語(yǔ)音SDK,實(shí)現(xiàn)了從用戶(hù)位置前往商家位置的導(dǎo)航功能,加上語(yǔ)音提示,讓用戶(hù)體驗(yàn)進(jìn)一步升級(jí)。
(12)菜品詳情。通過(guò)搜索功能進(jìn)入菜品展示頁(yè),用戶(hù)可通過(guò)選擇心儀的菜品進(jìn)入菜品詳情頁(yè),菜品詳情頁(yè)包含了菜品的成品圖,菜品的配料成分以及烹調(diào)步驟,且每一步都有圖片展示,讓用戶(hù)直觀感受整個(gè)菜肴的制作過(guò)程,讓用戶(hù)方便快捷的學(xué)習(xí)菜肴烹飪技藝。
5 結(jié)語(yǔ)
整個(gè)系統(tǒng)主要使用了高德SDK、Bmob SDK等第三方軟件來(lái)進(jìn)行輔助開(kāi)發(fā),該系統(tǒng)使用還算穩(wěn)定,界面也還算美觀,但有幾個(gè)遺憾的問(wèn)題就是用戶(hù)之間的交流功能未能完成(因?yàn)榻涌谑峭ㄟ^(guò)Fiddler抓包工具獲取的美食杰接口,但是美食杰部分參數(shù)是通過(guò)某種加密方式加密,就算知道了加密方式,解密也不太可能),原本還想增加搜索附近的功能,但由于時(shí)間原因,來(lái)不及完善,這些均是遺憾的事情,以及掃描添加好友等功能也未完善,并且部分?jǐn)?shù)據(jù)接口參數(shù)隨時(shí)在改變,需要不定期進(jìn)行抓包獲取。鑒于以上的遺憾,欲提高整體穩(wěn)定以及功能的完善,則需要一個(gè)較為穩(wěn)定的后臺(tái)而不是使用Bmob第三方后臺(tái)進(jìn)行數(shù)據(jù)交互,最好是使用自己的后臺(tái),就像公司開(kāi)發(fā)的一般。
本設(shè)計(jì),基本實(shí)現(xiàn)了菜譜APP的所有流程,app通過(guò)與后端交互,向用戶(hù)展示了較為良好的UI界面,功能也較傳統(tǒng)的菜譜APP有所擴(kuò)展。由于接口原因(均為抓包工具網(wǎng)上抓取),限制了部分功能,導(dǎo)致未能實(shí)現(xiàn)。希望以后有機(jī)會(huì)能將此軟件完善發(fā)布。
參考文獻(xiàn)
[1]richard.對(duì)菜譜App的思考[J].2015.08.17.
[2]趙亮,張維.基于Android技術(shù)的界面設(shè)計(jì)與研究[D].徐州:徐州建筑職業(yè)技術(shù)學(xué)院,2010.05.06.
[3]2016年Q1中國(guó)Android市場(chǎng)份額增至76.4%[N].飛象網(wǎng).2016.04.19.
[4]Kevin涂騰飛.java內(nèi)存管理機(jī)制[J].CSDN.2012.03.22.
[5]何紅輝,關(guān)愛(ài)民.Android源碼設(shè)計(jì)模解析與實(shí)戰(zhàn)[M].北京:人民郵電出版社,2015.11.01.
數(shù)字技術(shù)與應(yīng)用2016年12期