资源描述
目录学士学位论文(设 计)题 目 基于iOS美食APP的设计与实现 姓 名 陈丽丽 学 号 412417080120 专 业 计算机科学与技术 指导教师 傅玥 2016年 5月 25日15摘要摘 要在当今社会的飞速发展中,在信息化时代的今天,人们对于科技的追求越发的炙热。随着科技的发展,智能手机已经成为了当今市场的主流产品,智能手机的发展势不可挡。智能手机的出现也让人们对于美食产生了更大的追求,也促使了更多有关于美食的APP出现。通过对后台数据库的需求分析,以及从网络上请求数据的方法可以实现数据的请求,在Xcode的平台上将代码与数据库进行连接。界面的展示以及流畅跳转,会让用户拥有更好的体验,最后配合第三方的使用可以更加完善此APP。关键词 iOS;SQLite;美食AbstractIn the rapid development of todays society in the information age of today, it is the pursuit of science and technology more and more hot. With the development of technology, smart phones have become mainstream products in the market today, the development of smart phones unstoppable. Smart phones also allow people to produce food for a greater pursuit, also contributed more about food APP appears.Through analysis of the need for back-end database, and a method of requesting data from the network can request data, the code in Xcode platform will connect with the database. Screen display and smooth jump, let users have a better experience with the use of a third party can last more perfect this APP.Keyword: iOS; SQLite; cuisine目录目 录1.绪论11.1.课题来源及国内外现状11.2.目的意义11.3.课题研究内容22.系统的开发环境、工具以及数据库介绍12.1.开发环境介绍12.2.系统开发工具介绍12.3.数据库介绍22.4.第三方介绍23.系统分析13.1.可行性分析13.2.需求分析13.2.1.APP的性能需求23.2.2.APP主要功能需求33.3.数据流图34.系统概要设计14.1.系统功能设计14.2.系统模块划分15.数据库设计15.1.数据库物理结构设计16.结论17.致 谢18.参考文献1绪论1. 绪论1.1. 课题来源及国内外现状世界在发展,社会在进步,在信息化时代的今天,人们对手机有了进一步的了解与应用。随着科技的发展,智能手机已经成为了今天手机市场的主流产品,现在大部分的人都在用智能手机。智能手机的发展势不可挡。现在常用的智能手机有苹果iOS智能系统,安卓智能系统,windowsPhone系统等。毫无疑问,手机的智能化是手机的一场革命。互联网科技的发展和3G网络的成熟,吸引了众多的消费者使用智能手机聊天交流,看电影,打游戏,浏览网页等。手机的智能化不仅让人们的生活更加便捷,还让社会走上了科技的顶峰。吃饭是日常生活中每个人都需要的做的事,但是在现在物质飞速发展的时代,但是人们也随着加快了脚步,以至于没有时间去享受一顿精致的美食,更甚者没有时间去思考自己吃什么,只是象征性的的填饱肚子。美食APP可以帮助人们选择美食然后自己去做,选择属于自己的味道。根据市场调研公司Kantar Worldpanel近日发布的智能手机销售数据显示,从去年12月到今年2月份,苹果iOS设备在中国市场的份额已经达到27.6%,为有史以来最高纪录,已经占到中国智能手机市场将近三分之一的份额。1.2. 目的意义自从计算机、互联网出现以来,人类社会就开始经历一场全方位的变革,先进的科技让人们充分体会到网络带来的快捷与便利,使之逐渐成为了现代生活中不可或缺的部分。在互联网不断的发展变化,开始走向移动端,移动互联网的时代已经来到了我们的面前,手机终端似乎变成了人们身体延伸的一部分。而且移动端相对于PC端非常的方便。例如出门在外的时候不可能随时抱着一台电脑进行操作,但是手机就比较方便。移动端非常人性化,方便了人们的衣食住行。在日常生活中,人们会经常为为了吃什么而烦恼,不论是出去吃还是自己在家做着吃,又或者是出去完看看当前城市有什么特色美食,所以这时候就需要一款APP来帮帮助人们去挑选搭配或者推荐美食。所以这款设计非常人性化,也非常方便,可以帮助人们去寻找自己的口味。也可以分享自己的美食经历,或者向人们展示自己完美的厨艺。1.3. 课题研究内容课题先在研究目前西方发达国家和我国房屋出租出售管理系统情况的情况下,根据实际的需要,使用了现在较为普遍的B/S(Browser/Server浏览器/服务器)结构和JSP动态网页开发技术,以Windows操作系统与SQLServer2000数据库为平台,采用JSP技术,开发了一个功能比较完善的房屋出租出售管理系统。并且对系统进行一系列的需求分析、设计、编码、测试等工作。在网站中游客可以浏览和查看房屋信息,也可以通过注册成为网站会员进行登陆网站,然后发布个人房屋信息等,系统管理员可以对房屋信息和网站会员进行管理。重点对系统设计过程作了相应描述,同时也对系统需要改进的地方做了总结系统的开发环境、工具以及数据库介绍2. 系统的开发环境、工具以及数据库介绍每个APP的情况各有不同,现在我所设计的美食APP,它是以iOS为运营环境,以Objective-C以及SQLite数据库为开发工具进行的。数据库的开发是需要经过准确的分析,以及详细的内容相联系在一起才能进行设计,数据库的设计目标是嵌入式的,且占用资源非常低,方便用户的使用。2.1. 开发环境介绍iOS可以被视作一个网际互连中枢。一个高度智能的管理员,负责管理、控制复杂的分布式网络资源。它早期的版本是一个单独系统,基本上以路由器为中心。它被排列成一个过程(Procedure)集,允许任何过程之间相互呼叫。这种单一的结构使数据的隐蔽性和独立性不强。它的大多数操作代码拥有结构和操作的相关性。2.2. 系统开发工具介绍本系统使用的开发语言是Objective-C,以iOS系统为操作平台。Objective-C,通常写作ObjC或OC和较少用的Objective-C或Obj-C,是扩充C的面向对象编程的语言。它主要应用在Mac OSX这个标准系统中,而在NeXTSTEP和OpenStep中它更是基本语言。1980年代初布莱德考克斯(Brad Cox)在七公司Stepstone发明Objective-C。他对软件设计和编程里的真实可用度问题十分关心。Objective-C语言的基本特点:Objective-C是非常实用的语言。它是一个用C写成很小的运行库,令应用程序的尺寸增加很小,和大部分系统不一样。Objective-C写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。因此,Objective-C完全兼容标准C语言,在此基础上还增加了面向对象编程语言的特性以及Smalltalk消息机制。Objective-C的最初版本并不支持垃圾回收。在当时这是争论的焦点之一,很多人考虑到Smalltalk回收时有漫长的死亡时间,令整个系统失去功用。Objective-C为避免此问题才不拥有这个功能。虽然Objective-C是C的超集,但它不是C的基本类型为第一级的对象。2.3. 数据库介绍1、SQLite介绍SQLite,是一款轻量型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中,是D.RichardHipp建立的公有领域项目。它最初的设计目标是用于嵌入式系统,目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。目前,它能够支持Windows/Linux/Unix等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月,至2016年已经有16个年头,SQLite也迎来了一个版本 SQLite 3已经发布。2、SQLite的功能特性(1)ACID事务。(2)独立: 没有额外依赖。(3)储存在单一磁盘文件中的一个完整的数据库。(4)零配置 无需安装和管理配置。(5)支持数据库大小至2TB。(6)足够小, 大致13万行C代码, 4.43M。(7)操作快,可自由共享。(8)简单, 轻松的API。(9)良好注释的源代码, 并且有着90%以上的测试覆盖率。(10)源码完全的开源, 你可以用于任何用途, 包括出售它。(11)支持多种开发语言,C, C+, PHP, Perl, Java, C#, Python, Ruby等。2.4. 第三方介绍AFNetWorking可以处理从网络上请求来的数据,对数据可以起到监听的作用,并实现寻出请求、响应、响应数据等中间状态。AFHTTPRequestOperation和它的子类可基于http状态和内容来区分否成功请求数据。SDWebImage最简单的使用方式是以UIImageView类目的方式提供下载网络图片的方法,除此之外还可以使用它作为图片异步下载器、图片自动缓存、支持gif动态图等,它会保证相同的url图片资源只下载一次。MBProgressHUD主要用四个部分组成,第一个是loading动画视图,可以是菊花、进度条,也可以是自定义视图;第二个是标题文本框,只要用来显示提示的主题信息,通常位于loading动画视图的下面,且单行显示;第三个是详情文本框,标题的附属信息;第四个是HUD背景,主要是最为上面三个部分的一个背景。UMengSocialICOM主要是用来实现分享,根据它的SDK集成文档,可以实现分享到新浪微博、微信、朋友圈、QQ、空间等地方。系统分析3. 系统分析 3.1. 可行性分析可行性分析也被称为可行性研究,是在调查的基础上探究APP的开发是否具有必要性和可能性,对新APP的开发从经济、技术、社会的方面进行分析和研究,以避免投资失败,导致公司资金损失严重。可行性研究的目的就是在最短的时间用最小的成本确定问题是否能够解决,该系统的可行性分析包括以下几个方面的内容:1、经济可行性:主要看自己编写的项目能否达到预期的标准,并且能后获得良好的经济效益。本APP作为一个毕业设计,不需要任何的经济费用,但是如果选择上架就需要一定的经济支持。代码上的安全性也需要自己进行维护,这样才能保证在版本升级的时候不会发生故障。2、技术可行性:技术上的可行性分析主要是看在做APP的时候能否顺利开始,以及顺利结束,同时也需要自己使用的环境平台以及软件的支持。本系统主要采用了Xcode和SQLite进行相关的开发,Xcode属于做苹果APP的主要工具,而Objective-C语言是整个APP主要内容,没有此语言的支持是无法进行程序的编写,虽然Swift语也渐渐替代Objective-C语言,但是这毕竟还是需要时间。SQLite属于轻量级的数据库语言,但是它的功能强大,可以实现数据库的所有功能。 3、社会可行性:当今社会人类的经济发展了,所需要的生活也需要发展,甚至是提高,提高物质能力,享受生活。美食APP不仅可以满足人们对于美食的要求,也能满足人们生活上的需求,当人们每天对于吃而烦恼的时候,打开手机APP查一查看一看就可以选择到满意的菜谱,需要保持身材的人们,也可以使用此款APP,因为它提供减肥食谱,让人们在享受美食的同时也能保持美丽的身材,喜爱甜点的人们也能在此APP上找到属于自己的口味,享受生活。由此可知,本系统的开发是可行的。3.2. 需求分析随着社会的发展,科技的进步,人们的经济能力也有了很大的提高,在经济能力提高的时候,人们对于生活质量的要求也随之提高了。有机蔬菜,健身房锻炼,防雾霾口罩等都是在为自己的身体进行保养,但是还是有许多人因为拼命工作没有时间好好的吃饭,也有许多人因为每天不知道做什么而吃一样的对做饭渐渐失去了兴趣,所以越来越多的人为此搞坏了胃,身体变得不好了。许多美食APP并没有对美食进行分类,使得看起来杂乱无章,让用户没有办法去找到自己想要寻找的食谱,界面的美观实施用户选择的意大利有,条目不清晰的APP界面会让人没有想看下去的欲望,简洁的APP最适合时间紧凑而又想享受高质量生活的人。需求分析是一个渐进的过程,需要开发者先了解各种用户的需求,才能进行合理的开发,让用户一看就爱上此APP,而且也需要通过开发人员和后台的不断交流,加深对系统功能和性能的认识。需求分析是软件开发过程中的中心思想,目的在于了解需要什么和做什么,并将用户的需求展现出来。3.2.1. APP的性能需求为了保证APP能够长期、安全、稳定、可靠的运行,酒店管理系统应该满足以下的性能需求: (1)APP的安全性系统处理的安全性是系统的必要性能。在APP的设计和开发过程中,要充分考虑APP的安全性,这样不但能保证用户的隐私不被泄露,也保证了公司良好的口碑。安全性是任何一个APP都最重要的需求,如果APP失去了安全性能,那便直接可以下架不用了。(2)APP的稳定性在开发过程中,应该充分考虑到APP的稳定性。而要实现这一点,应该拥有良好的数据接口,以及公司市场的调查,通过公司市场的调查才能知道每一个APP的优缺点,以及用户的需求,这样才能对APP进行升级,才能保证用户长期使用此APP,才能保证公司的市场,保证公司有利可赚,也保证了用户的方便和高效的使用。(3)APP的维护性美食APP的维护需要开发者和后台进行不断的交流,开发者需要在苹果设备移动端的系统升级的时候,对APP内部代码和结构进行相应的修改,让用户能够及时看到焕然一新的界面,以及享受APP带来的换了。而后台人员需要维护好数据库,随时进行数据库的更新,让用户每时每刻能看到不同的内容,不会因为重复而产生厌烦感。3.2.2. APP主要功能需求首页:有三个分区。第一个是轮播图以及圆形的CollectionView控件,共4个。轮播图为精美事物的图片,而4个item分为每天食谱、国外美食、减肥食谱、甜点。第二个分区为美食食谱,美食食谱可以提供许多关于美食的文章。精选:从接口上获取数据,展示一些关于美食的文章,或者美食的推荐,或者美食的做法等,有题目和图片的展示。可以点进去查看详细的做法。社区:所有用户在社区发表的动态都会在此界面展示,有用户的头像展示,文字内容的展示、以及食物的图片。我的:分为4个部分。我的收藏,查看用户自己收藏的菜谱;夜间模式,切换到夜间模式;寻味服务,介绍此APP;清除缓存,清理使用APP时缓存的图片或者内容。3.3. 数据流图由上述功能模块得出本美食APP第0层数据流图,如图3-1所示。图3-1 第0层数据流图图3-1 第0层数据流图细分第0层数据流图得第1层数据流图,如图3-2所示。图3-2 第1层数据流图系统概要设计4. 系统概要设计4.1. 系统功能设计此APP主要有4个界面,分别是首页,精选页,社区页,个人中心页。但是首页和个人中心页都有详细内容进行查看。通过不同页面的选择以及跳转可以充分展示APP的详细内容,让用户有更好的体验,以及可以找到自己的需求。1、首页:该界面向每一个拥有这款APP的人展示美食,最上面是轮播图,下面有一排展示collectionView,可以是分类,例如甜点,国外美食,减肥食谱,每日一餐等,下面是一个分区美食食谱,可以展示菜谱或者美食的文章。可以进行搜索,搜索自己想要的类型的美食。 2、精选页:该界面主要展示推荐的美食,或者是美食餐厅,让用户可以阅读关于美食的文章,或者去推荐的地方去品尝美食。3、社区页:该界面是展示用户发表的美食文章,或者美食图片,或者美食心情,是广大用户交流的平台。4、个人中心页:分为4个部分。我的收藏,查看用户自己收藏的菜谱;夜间模式,切换到夜间模式;寻味服务,介绍此APP;清除缓存,清理使用APP时缓存的图片或者内容。4.2. 系统模块划分系统中的每个界面都有一定的功能,此APP在首页展示了许多美食,也有许多不同的内容的模块,每日一餐,甜点,减肥餐等内容,不同人群可以根据自己的需要进行查看详细的页面,选择中意的菜谱。精选页展示了许多精挑细选的美食,不仅食物图片看着美观,而且做法详细,味道也很好,主要是为了有时间的人群而搭建的此页面,让有时间的享受生活的人们做的精致的美食。社区页是为了让全世界的人们有个交流的平台,每一名用户都能发表自己做的美食,把快乐带给每一个人。个人中心的页面主要是方便用户查看自己信息的页面,例如查看之前收藏的美食,或者看一下此APP的详细介绍更熟练地使用。如下图4.1所示为系统结构图,详细讲解了系统的结构。图4-1 系统结构图数据库设计5. 数据库设计5.1. 数据库物理结构设计根据系统模块需要建立用户表,数据表具体内容如下,用户表主要是记录了用户基本信息。表结构如表5-1所示。表5-1普通用户表字段名数据类型长度允许空是否主键说明usernameNSString255否是用户名passwordNSString255否否用户密码headphotoNSData255否否头像根据系统模块需要建立每日一餐表,数据表具体内容如下,每日一餐表是用来存储每日一餐的数据信息。表结构如表5-2所示。表5-2每日一餐表字段名数据类型长度允许空是否主键说明idNSString255否是IDtitleNSString255否否标题imageNSString255否否图片根据系统模块需要建立精选表,数据表具体内容如下,精选表主要是记录了精选页的数据信息。表结构如表5-3所示。表5-3精选表字段名数据类型长度允许空是否主键说明IdNSString255否是IDtitleNSString255否否标题descriptionNSString255否否描述playUrlNSString255否是视频数据tagsNSString255否否标签iconNSString255否否图标categoryNSString255否是分类authorNSString255否否作者根据系统模块需要建立社区表,数据表具体内容如下,社区表主要是记录了用户在社区发表的状态的信息。结论6. 结论经过四个多月,寻味APP将近成型,本系统采用Objective-C为开发工具,并采用SQLite数据库,按照软件开发的流程,需求分析、系统设计分析,逐步完成了整个系统的开发。本系统可以查看菜谱,查看别的用户的动态,还可以选择自己喜欢的菜谱的类型,是一款非常方便且贴近用户生活的美食APP。寻味APP虽然成功设计出,但是由于个人能力有限,所设计出的这样一个简单的APP所涉及到的界面并不是很全面,还有很多值得改进的地方。在设计刚开始时,我感到自己所学知识的匮乏,开始慢慢温故之前的学习内容,以及拓展新的知识,并且问老师同学,再加上自己慢慢的写代码,终于开始有感觉了。在开展的过程中,各种各样的问题铺面而来,上网搜集资料寻找答案,以及同学的帮助,这样才跌跌撞撞的走到了现在。虽然说在这次设计的过程很难,但是通过这次的设计不仅为我之前的知识打了一个稳定的基础,更让我对新的知识用了更深的认识,同时我对计算机这个行业产生了浓厚的兴趣。在学习的道路上,不怕你遇到的是什么样的坎坷什么样的难题,只要自己肯走过去肯抗过去,艰难的时候过去了,剩下的路也就随之平坦。致 谢7. 致 谢在本论文完成之际,我由衷地感谢帮助、支持,鼓励我的老师跟同学们。本论文的完成离不开傅老师的热情关怀和悉心指导下,傅老师在对待我们学术上的事情,非常认真,即使自己很忙,但也会详细的阅读我们的文档,在我们又不会的问题的时候,傅老师也能为我们细心的解答。再次,设计的成功跟同学的帮助也是分不开的,在我遇到不懂的知识的时候,他们也会细心的讲解给我听,帮我找到我在程序中遇到的Bug,而且还帮助我让我的程序更加的完善。所以,在此我谨向敬爱的傅老师致以最诚挚的谢意,向帮助过我的同学说一声:谢谢。 参考文献 8. 参考文献
展开阅读全文