一种手机端菜谱系统的设计与实现
2017-04-15杨泽丰王海春李均
杨泽丰++王海春++李均
摘要:本文描述了基本Android环境的一款手机端菜谱系统的设计与实现过程。本APP实现了用户所在地定位、商家定位、商家导航(含语音播报)、商家详情展示、用户信息更改、模糊查询菜谱、搜索历史、地域菜色、菜谱详情、早餐至宵夜推荐、用户之间交流心得等功能,可以通过服务器端查看并维护用户数据(使用了Bmob第三方服务器)。本系统具备菜谱类应用所需要的所有基本功能,實现服务器端与app之间交互。系统具有较强实用性,可提供给用户良好的操作体验,解决用户生活困扰,有良好的应用价值和使用前景。
关键词:手机端菜谱 服务器响应 APP定位
中图分类号:TP393.09 文献标识码:A 文章编号:1007-9416(2016)12-0153-02
1 引言
手机作为当今人们日常生活中不可缺少物品,而手机App也逐渐走进千家万户,摆脱身边没有电脑不方便的烦恼,越来越多的传统行业加入互联网大军,以简洁精美的界面、简单快捷的操作在手机上生成了App,App的实现也使得用户可以有更好的消费体验。在节奏快、应接不暇的都市生活中,本系统主要可以使用户通过手机学习到相关菜肴的信息,进行菜肴的学习以及烹调,方便快捷。同时实现了导航定位,方便用户前往相应餐馆就餐。
本系统可以实现App菜单的基本流程和功能,还新增了部分功能,可以应用于生活中,增加生活便捷性。
随着互联网的高速发展,越来越多的人体验到了这种“互联网+”这种全新模式的可贵之处。与此同时,各种外卖类APP以及订餐类APP应运而生,这两类APP极大程度解决了人们因生活节奏变快,经常加班没时间等原因造成的饮食问题,但就算如此,人们长时间吃外卖以及到外餐馆吃饭,先不说营养问题,单是饮食卫生及饮食安全就难以保障,这是一个越不过去的坎。
根据以上情况,开发菜单类APP势在必行,APP不仅可以满足人们因生活节奏变快导致的没时间学习菜肴问题,还可以有效的提高人们生活品质,让人们在时间紧张的情况下吃到健康美味的食物。而当下社会,“吃”占了消费的很大比例,因此,“吃货”也是日益增多,对于“吃货”而言,最痛苦的就是没有好吃的,该类APP也有效的解决此问题,让吃货每天都可以看到不同的美食,简直是“吃货”的福音。
本系统运行于目前性能非常好的智能手机操作系统Android上,为当代人们带来了意想不到的惊喜,同时系统界面简洁、操作简单、内容丰富,能够符合用户操作APP的需求。
2 系统需求分析
当今,人们的生活节奏变快了,所以对生活中各项要求也加快了需求。本系统的产生适应人们对生活要求的提高,极大改善人们的生活品质,让人们在有限的时间里,可以做出自己心满意足的食物。
从技术层面说:Android使用语言为Java,是基于C语言的面向对象语言,所以学习起来很快。使用MVC设计模式使工程简洁,使用Model请求数据,使用View显示数据、处理数据,使用Controller处理逻辑,分工明确。使用使用的云服务器Bmob已经集成了Android SDK,使用Bmob封装好的方法可以快速的实现数据表添加、删除、更改的操作。
从经济层面说:因为是基于Android开发,所以使用设备很好找,毕竟支持Android开发的硬件设备太过庞大,开发该系统的Android Studio能够从各大网站下载到,方便快捷,而且不会收取任何费用(特定收费软件除外),而且系统属于个人项目,不会找太多的资源(人力,物力,财力),成本低下,也不用各部门协商,开发效率可观。
从社会层面说:本系统可以满足人们对生活品质的需求,人们对吃越来越注重,吃的健康、质量好、品种丰富成了现在人们的首选,本系统中可以通过菜品的详细描述和成品展示的方式选择更好的更符合用户自己口味的菜品。
本系统是基于Android的菜谱大全系统,本系统要求是实现菜品展示,用户登录注册,通过定位了解商家具体位置并获取到相应地区的商家信息,通过导航前往商家品尝菜品;用户的信息以及头像文件均可通过Bmob第三方服务器的数据表进行查看。
3 系统结构与功能
因现在Android版本已经发展到Android7.0,所以基于Android的app端开发要向下兼容,我使用的是Android6.0开发环境,实现API21(为了实现按钮水波样式)以上用户均可使用APP,又能不影响大部分功能即可,版本太高也不敢尝试。
为了实现菜谱APP的基本功能,该系统主要包含如下功能:①用户管理;②用户信息存储;③搜索功能;④定位功能;⑤语音导航功能;⑥商品展示;⑦其它功能。
系统各功能模块的具体描述如下。
(1)用户管理。数据存储于Bmob第三方数据后台,通过验证用户输入用户名与密码是否吻合来进行登录,通过判断Bmob后台是否已含有该用户名来进行注册,通过匹配Bmob后台的ObjectId来进行相应的头像修改,密码修改,昵称修改。
(2)用户信息存储。使用Bmob第三方数据后台进行数据存储,便于与用户app进行交互,增强体验。为了信息安全性考虑,本系统的密码使用了MD5算法进行加密。
(3)搜索功能。自定义了一个控件,实现了搜索功能以及搜索历史功能,使用SharPerfence进行了搜索历史的本地存储,并通过访问网络接口实现了关键词的搜索以及模糊查询。
(4)定位功能。通过集成高德第三方定位SDK,使用GPS与WIFI实现了用户精确定位,并获取到相关定位数据,进行了相应的区域判断,通过访问网络接口获取到相应区域的商家信息,定位功能是后续商家详情,导航等功能实现的基础。
(5)语音导航功能。与定位功能类似,集成于高德第三方SDK,并在此基础上集成了讯飞SDK,语音导航功能成功接入,导航功能的实现,为用户前往商家提供了有效路径规划,减少了用户浪费时间的可能,并有效的将商家与用户连接在了一起,提高了用户体验,并采用模拟导航来实现功能的检验。
(6)商品展示。通过网络请求数据,将所请求到的数据展示到相应页面,提供给用户良好的UI体验,并供给用户选择,学习用户所需菜品,该功能是整个APP的核心功能,也是诸多功能的纽带。
(7)其它功能。包含了二维码扫描功能,二维码识别功能,二维码生成,用户社交功能,只为了增强体验以及后续开发。模塊的功能所属关系如下表1所示。
4 系统主要模块的设计与实现
系统分为后端服务器和手机端应用两部分,后端服务器目前仅仅搭有1张数据表,用于存储用户相关信息以及文件存储区,用于存储用户头像信息,具体数据表搭建见第五章详情设计。
app启动,首先是Launch(欢迎)页面(每次都会启动),在此页面APP会提醒用户获取相应权限(Android 6.0部分权限需要申请),当用户向左滑动完四张欢迎图之后,会进入登陆界面(该APP需先登录才可使用)。
(1)用户登录注册。用户通过输入用户名以及密码来进行登录,可选择是否记住密码(记住密码后,每次进入都会默认输入用户名以及密码),并可根据所输入帐号显示用户头像,若无帐号,则进行注册。
(2)用户头像修改。用户登录后,可从相册选取图片或相机拍摄照片作为用户头像。
(3)用户昵称修改。用户登录后,可进行昵称修改。
(4)用户密码修改。用户登录后,可进行用户个人的密码修改,密码修改流程。
(5)菜品推荐。登录成功后,进入首页,首页向用户展示了早餐-宵夜的推荐菜品、今日特殊推荐以及猜你喜欢,早餐-宵夜可通过拉动横向时间轴来查看,时间轴还显示了当前具体时间,今日特殊推荐有才要推荐,有制作过程等。若用户对某项感兴趣,点击便可跳转到相应页面。
(6)搜索功能。当用户点击某项菜品时,便会跳转到此页面(接口原因,不能直接跳到对应的菜品详情),用户只需要输入菜品名称或菜谱名称或关键词均可实现查询,并赋以搜索记录,让用户随时可查看搜索历史(搜索功能设置在美食版块)。
(7)用户定位。当用户进入美食版块时,首先开始进行用户地理位置的精确定位,并根据用户当前定位查找用户所在区域的商家美食,并将商家数据展示出来,还可供用户进行区域选择(此功能与导航功能密不可分)。
(8)用户区域选择。用户若想知道其他区域的商家情况,可以通过区域选择功能来选择不同的区域,并根据选择区域与定位区域进行判断,是否相同,给予用户相应的提示信息展示,该系统会根据用户所选择的区域来进行相应区域的商家展示。
(9)商家展示。通过用户所选择区域,请求相应的网络数据,展示出对应区域的商家。
(10)商家详情。用户通过选择心仪的商家,可前往商家详情查看商家的具体定位位置以及其它信息,若用户满意,有意前往对应商家,可通过拨打电话的方式预定位置,并可通过语音导航前往商家。
(11)语音导航。通过传入的商家定位信息以及之前用户的精确定位信息,采用高德第三方导航SDK并接入了讯飞语音SDK,实现了从用户位置前往商家位置的导航功能,加上语音提示,让用户体验进一步升级。
(12)菜品详情。通过搜索功能进入菜品展示页,用户可通过选择心仪的菜品进入菜品详情页,菜品详情页包含了菜品的成品图,菜品的配料成分以及烹调步骤,且每一步都有图片展示,让用户直观感受整个菜肴的制作过程,让用户方便快捷的学习菜肴烹饪技艺。
5 结语
整个系统主要使用了高德SDK、Bmob SDK等第三方软件来进行辅助开发,该系统使用还算稳定,界面也还算美观,但有几个遗憾的问题就是用户之间的交流功能未能完成(因为接口是通过Fiddler抓包工具获取的美食杰接口,但是美食杰部分参数是通过某种加密方式加密,就算知道了加密方式,解密也不太可能),原本还想增加搜索附近的功能,但由于时间原因,来不及完善,这些均是遗憾的事情,以及扫描添加好友等功能也未完善,并且部分数据接口参数随时在改变,需要不定期进行抓包获取。鉴于以上的遗憾,欲提高整体稳定以及功能的完善,则需要一个较为稳定的后台而不是使用Bmob第三方后台进行数据交互,最好是使用自己的后台,就像公司开发的一般。
本设计,基本实现了菜谱APP的所有流程,app通过与后端交互,向用户展示了较为良好的UI界面,功能也较传统的菜谱APP有所扩展。由于接口原因(均为抓包工具网上抓取),限制了部分功能,导致未能实现。希望以后有机会能将此软件完善发布。
参考文献
[1]richard.对菜谱App的思考[J].2015.08.17.
[2]赵亮,张维.基于Android技术的界面设计与研究[D].徐州:徐州建筑职业技术学院,2010.05.06.
[3]2016年Q1中国Android市场份额增至76.4%[N].飞象网.2016.04.19.
[4]Kevin涂腾飞.java内存管理机制[J].CSDN.2012.03.22.
[5]何红辉,关爱民.Android源码设计模解析与实战[M].北京:人民邮电出版社,2015.11.01.