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