美味食谱手机应用客户端开发Word下载.docx
《美味食谱手机应用客户端开发Word下载.docx》由会员分享,可在线阅读,更多相关《美味食谱手机应用客户端开发Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
thewholeprocessofprojectdevelopment,includingrequirementsanalysis,overalldesign,modulepartition,andthecontentoftheimplementationprocess,etc,finallytotheoperationofthevariousfunctionalmodulesanditsinterfaceisdescribed.
ThesystemdesignisbasedonthedevelopmentofapplicationXcode5.0iosproject,USESmorethanonethirdpartylibraries,usingtheMVCdevelopmentpattern,observerpatterndevelopment.Thissystemhassimpleoperation,easytounderstand,portable,easytouse,suchasthecharacteristicsoflargecapacity,verysuitableformodernlifeandthedevelopmentofmobileInternet.
Keywords:
Xcode5.0,deliciousfood,MVC
1绪论
当今移动互联网正在推动互联网第三波浪潮的到来,摩根士丹利的调查报告,2011年全球的移动互联网用户已达到20亿人,产值近千亿美元。
而中国的手机上网用户也已达到4亿,由此产生的市场总值在300亿人民币左右。
移动互联网不仅将深入改变人们的生活方式,而且会造就一个又一个新的数字财富英雄。
特别是AppStore的成功模式给移动应用开发搭建了良好的商业模式和环境。
目前有越来越多的开发者加入到移动开发的队伍,而基于MacOS和iPhone移动应用开发则是其中一个重要的分支。
1.1课题开发背景
两年前,《舌尖上的中国》播出后引发收视热潮,缔造出惊人收视纪录,单集最高收视份额达到4.47%,赶超了黄金档电视剧。
《舌尖上的中国Ⅱ》近期在央视播出。
《舌尖2》依然定位为一部美食纪录片,并将延续第一季的主题,探讨中国人与食物的关系。
《舌尖上的中国2》引爆的不仅是新一轮美食搜索,更是直接将电商捧上订购的第一渠道的位置,边看电视边下订单成为一道独特商业模式;
视频网站在得到版权之后,都动用自己的手段对节目进行进一步挖掘,形成节目价值的无限放大;
广告主们围绕《舌尖2》的赞助、冠名也在一起发酵,期望借着这部人气沸腾的中国纪录片赌一把。
借“舌尖效应”,谋得市场,“舌尖”引发的了各类的效应。
舌尖中的腊肉一经播出后就为四川腊肉过去颓废的市场带来了全新的面貌,一小时内几万斤的销量就是最好的写照。
与其同时上海红烧肉更是近期主妇们在家必做的食物。
而没有具体的食谱,不能完整的做出地道的美味食物是件遗憾的事情,本系统基于次来为广大观众提供具体而详细的食谱,让主妇们烹饪起来游刃有余,得心应手。
1.2系统开发的意义
这个系统可以实现在iphone终端上的美食欣赏,可搜寻要做的美食,可以查看想做的美食的具体做法与步骤。
能够获得最新的最流行的美食的做法,让食物紧跟时代的前沿,让美食变得更加健康与便民,让美食变得更加卫生,让美食不在是有钱人的专属。
PC端的笨重,移动端的方便快捷,随时随地的观看美食和了解美食的做法为本系统最大特色,让美食变得简单与家常。
1.3本系统预达到的目标
用sqlite数据库实现了对数据的存储,UIView实现了图片的动画翻页,UIScrollerview实现了滑动翻页技术,使用了多个第三方库,在网上面搜索图书的名字,得到的json数据用Json解析,然后用SDWebImage加载图书的图片。
用UIPickView显示字体font,包括颜色,大小,样式,翻页方式。
1.4章节介绍
第一章,介绍了课题的开发背景、课题开发的现实意义。
第二章,概略地介绍了开发此系统用到的各种技术理论基础,ios系统构架,程序框架等。
第三章,对该的系统结构设计、系统结构功能、运行环境等概要分析设计阶段做工了大体介绍即需求分析。
第四章,对系统总体流程设计和功能设计作了简要说明,具体介绍了系统各功能实现过程。
第五章,总结。
第六章,参考文献和致谢。
2理论技术基础
2.1理论基础
美味食谱应用系统的开发使用了计算机领域的常用技术,首先是软件工程理论,包括软件工程过程,软件生存周期,软件周期模型,软件开发的增量模型,软件开发方法等。
软件工程规定了获取,供应,开发,操作和维护软件时要实施的过程。
软件生存周期是指一个软件从提出开发要求开始直到该软件报废为止的整个周期。
把整个生存周期划分为若干阶段,使得每个阶段有明确的任务,是规模大结构复杂和管理复杂的软件开发变的容易控制和管理。
软件生存周期模型是描述软件开发过程中各种活动如何执行的模型,软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段活动的准则,确立开发过程所遵守的规定和闲置,便于各种活动的协调,便于各种人员的有效通讯,有利于活动重用,有利于活动管理。
软件增量模型是在项目的开发过程中以一系列的增量方式开发系统。
软件开发方法是一种使用早已定义好的技术及符号表示习惯来组织软件产生的过程,方法一般表述成一系列的步骤,每一步骤都与相应的技术符号相关,软件开发方法是克服软件危机的重要方面之一。
面向对象是一种新兴的程序设计方法,是一种程序设计泛型,基本思想是使用对象,类,封装,继承,聚合,关联,消息,多态等基本概念来进行程序设计,面向对象不仅是一些具体软件开发技术与策略,而且是一套关于如何看待软件系统与现实世界的关系的软件方法学。
软件开发室对问题的求解过程,按照软件工程学对软件生命周期的划分,软件开发过程包括分析,设计,编程,测试和维护等主要阶段,从认识论的角度看,整个软件开发过程又可归结为两项主要活动,即人们对所要解决的问题及相关事务的认识和基于这种认识所进行的描述。
这正是体现了面向对象的思想,object-c语言是一门面向对象编程语言,本系统的开发就是采用了面向对象语言实现了系统的功能。
数据库技术是一种对大量数据进行统一集中和独立的管理的工具,数据库不仅包括数据本身,而且包括相关数据之间的联系,是一个逻辑上紧密相连的数据集,拥有确定的用户组和预订应用,顾名思义,数据库是存储和管理数据的仓库,而这个仓库是在计算机存储设备上,而且数据是按一定格式进行组织和存取的。
数据库有很多类型,而现在应用最方法的就是关系数据库。
网络通信技术是通过计算机和网络通讯设备对图形和文字等形成的资料进行采集,存储,处理和传输等,使信息资源达到充分共享的技术。
通信网是一种由通信端点,节点和传输链路相互有机地链接起来,以实现在两个或更多的规定通信端点之间提供链接或非链接传输的通信体系。
计算机网络是以相互共享资源方式链接起来,且各自具有独立功能的计算机系统的集合,在网络协议的控制下,由若干台计算机和数据传输设备组成的系统。
在现代的广域网结构中,通信子网由交换设备与通信线路组成,它负责完成网路中数据传输与转发任务。
交换设备主要是路由器与交换机。
计算机网络的主要性能指标是指带宽,吞吐量和时延。
未来的计算机网络都是基于IPv6技术的网络,相对于ipv4技术减少了些局限性。
软件开发工具的目的是从与开发过程有关的信息管理与信息处理方面,给予软件开发人员帮助与支持。
软件开发工具较为复杂,庞大,因此它的功能设计与总体结构必须首先考虑,开发工具的功能具有足够的开放性和灵活性,它的结构为实现这种开放性和灵活性提供了基础信息库存储着与软件开发相关的,尽可能完整的信息,而且需要提供保持一致的切实措施,着需要花费大量的人力,物力才能做到。
除了品目上的人机对话之外,文档生成与代码生成时软件开发工具的两种主要输出功能。
跨越生命周期的信息管理随着软件开发工具的普遍应用,在这方面的需求越来越多。
软件开发工具描述软件状况及其开发过程的慨念模式,提供存储和管理有关信息机制与手段,帮助使用者编制,生成及修改各种文档,帮助使用者编写程序代码,把项目运行与版本更新的有关信息科学地管理起来。
2.2技术基础
移动app顾名思义就是手机软件app,也叫移动终端,手机客户终端,移动软件,手机应用软件等,属于移动设备上面运行的一款终端软件。
在移动互联网风生水起的时代,移动app已经越来越深入人心,app应用开发市场突飞猛进,成为了移动互联网的主流。
美味食谱是基于app的开发理论基础而实现的,首先是基于移动终端上的随身性,互动性通过新技术以及数据分析,实现了精准定位企业目标用户。
其次软件开发是一个复杂的过程,软件过程可以通过软件过程模型来表示。
概念模式是非常重要的,它是指人们在认识事物的过程中,对于某一事物或者系统形成的抽象的一般化的框架,是在人们长期的实践活动中实现的,概念模式简单明了,易于理解。
概念模式具有相对性,面对不同的用途会有不同形式的概念模型,各有各的用处。
软件开发中有常见的其中概念模式,结构图,数据流程图,实体关系图等等,这些概念模式都是为了实现软件的易于理解性。
该部分主要包括对iOS系统架构的分析,核心操作系统的分析,应用程序框架的分析,内核的分析,开发环境的配置信息,选用数据库描述信息等,具体如下。
2.3ios系统架构
iOS的系统架构和其操作系统一样,采用了分层的架构。
iOS分为四层,分别为核心操作系统(theCoreOSlayer),核心服务层(theCoreServiceslayer),媒体层(theMedialayer),Cocoa触摸架构层(theCocoaTouchlayer)。
2.3.1核心操作系统层
位于iOS系统架构最下面的一层是核心操作层,它包括内存管理,文件管理,电源管理以及一些其他的操作系统业务,它可以直接和硬件设备交互。
核心操作系统层包括以下这些组件:
OSXKernel,Mach3.0,BSD,Sockets,PowerMgmt,FileSystemKeychain,Certificates,Security,Bonjour等。
2.3.2核心服务层
开发人员也可以完全访问核心服务层来方问iOS的一些服务,包括数据库连接,URL学习等等,它主要包括以下这些组件:
Collections,AddressBook,Networking,FileAccess,CoreLocation,NetServices,Threading,Preferences,URLUtilities等。
NetServicer主要负责网络服务,在开发过程中,承担应用程序与服务器之间连接的角色,有很强的交互性。
媒体层,通过它可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。
它包括以下这些组件:
CoreAudio,OpenGL,AudoMixing,AudioRecording,VideoPlayback,JPG,PBG,TIFF,PDF,Quartz,CoreAnimation,OpenGLES。
最上面一层是可触摸层,这一层为应用开发提供了各种有用的框架,并且大部分与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。
Multi-TouchEvents,CoreMotion,Camera,ViewHierarchy,Localization,Alerts,WebViews,ImagePicker,Multi-TouchControls。
在CocoaTouch层中的很多技术都是基于Objective-C语言的。
Objective-C语言为iOS提供了相机集合,文件管理,网络操作等支持。
例如UIKit框架,它为应用程序提供了各种可视化组件,窗口(window),视图(view)和按钮组件(UIButton)。
CocoaTouch层中的其他框架,对我们在应用程序中的开发来说也是非常有用的,如访问用户通信录功能框架,获取照片信息功能的框架,负责加速感应器和三维陀螺仪等硬件支持的框架等等。
2.3.3应用程序框架
编写应用程序项目,都是从CocoaTouch层开始的,具体来说是从UIKitFramework开始的。
iOS常用的SDK框架如下:
AddressBook.framework提供访问存储核心数据库中用户联系人信息的功能。
AddressBook.framework提供一个用户界面,用于显示存储在地址薄中的联系人详情。
AudioUnit.framework提供一个接口,让我们的应用程序可以对音频进行处理。
AudioToolbox.framework和AVFoundation.framework提供音频录制和回放的底层API,同时也负责管理音频硬件。
CFNetwork.framework访问和配置网络,像HTTP,FTP和BonjourServices等。
CoreFoundation.framework提供抽象的常用数据类型,如Unicode、strings、XML、URL等。
CoreGraphics.framework提供2D绘制的基于C的API。
Foundation.framework提供Object-C的基础类(像NSObject)、基本数据类型和操作系统服务等。
GameKit.framework为游戏提供网络功能,点对点互联和游戏中的语音交流。
MapKit.framework为应用程序提供内嵌地图的接口。
MediaPlayer.framework提供视频播放和音频的功能。
MessageUI.framework提供视图控制接口用以处理E-mail和短信。
OpenGLES.framework提供简洁而高效的绘制2D和3D图形的OpenGLAPI。
QuartzCore.framework提供动画特效以及通过硬件进行渲染的能力。
StoreKit.framework为应用程序提供在程序运行中消费的支持。
SystemConfiguration.framework检测当前网络是否可用和硬件设备状态的能力。
2.3.4Unix内核
iOS的核心是以Darwin为基础的,是在有Unix衍生出来的BSD基础上开发出来适合在移动设备上运行的系统。
2.3.5开发环境配置
Xcode5.0,整合大量框架,开发iOS程序必须的开发工具。
iOSSDK(iOS软件开发包),系统开发中导入的SDK。
3系统分析与设计
3.1需求分析
根据第一章所定义的课题研究方向及目标,本章将对系统功能进行具体的需求分析,该部分主要包括:
技术条件可行性描述,硬件可行性描述,社会因素可行性描述,市场因素可行性描述等。
具体描述内容如下。
3.2系统需求分析
本系统是基于iOS平台开发的一款美味食谱系统,将要应用在iOS移动通讯设备上,能够尽可能的满足用户更方便更快捷的需求,能够在家中厨房随时随地的浏览做菜的方法,不受地点的限制。
美味食谱手机应用客户端总体的架构图如图3-1所示。
图3-1总体架构图
3.3可行性分析
下面从四个方面进行分析系统的可行性,分别是技术条件可行,性硬件条件可行性,社会因素可行性,市场因素可行性。
3.3.1技术条件可行性
使用Objective-C编程技术。
Objective-C是C语言的面向对象扩展,可以将其称为“带有对象的C”。
相对于其他面向对象语言,Objective-C更加容易学习。
1.动态绑定
函数和消息的最根本不同是:
函数和它的参数是在编译的时候已经确定下来,但是消息和接收对象知道程序已经在运行,消息在传递时才能确定下来。
确切的消息方法实现依赖于消息的接收者,不同的接收者可能有相同的方法名不同的方法实现,只有在消息接收时才能确定(动态类型),通过源代码的类型定义并不能完全确认接收者的类型。
运行时消息例程查找接收者和消息方法,找到消息方法实现的机器码,呼叫这个方法,传递给它消息实例变量指针。
2.多态性
在Objective-c中消息的调用看上去和标准C中的函数调用相似,但因为方法属于一个对象,消息的行为与函数调用还是不同。
在一些情况下,一些对象仅能对针对它涉及的方法起作用,不能被其他类的方法使用,即使这些类有同样名称的方法。
这意味着两个对象对同样的消息有着不同的响应,即多态性。
Objective-c中多态性和动态绑定配合使用,可以使代码提供给任意数量不同类型的对象使用,这些对象不需要再写代码的时候就已经定义好,它们可以是以后开发的对象,也可以是其他项目的对象。
3.面向对象
面向对象程序构建在多种对象之上,基于Cocoa框架的程序可能使用NSMatrix对象、NSWindow对象、NSDirectonary对象、NSFont对象以及许多其它对象。
在Objective-c中通过定义类来定义对象。
面向对象让开发者更容易开发应用程序软件,以及更加规范化。
4.继承性
类的定义是累进的,任一个新类都是在另一个类的基础上定义的,新类继承了它的方法和实例变量。
继承使所有的类构成一颗树形的结构,在Objective-c中使用类一般要继承或间接继承于基类:
NSObject,因为NSObject提供了大量的有用特性。
比如,一些图形类,需要继承于Shape类,而Shape是Graphic类的子类,Graphic又继承于NSObject类,因此,还是间接继承于NSObject类。
类的继承关系图3-2所示:
图3-2类的继承关系图
5.使用工具方面:
开发环境为xcode5.0。
6.操作系统方面:
使用mac10.8操作系统。
3.3.2硬件条件可行性
开发本系统所需的硬件环境只需要需要Mac电脑一台即可,运行环境是苹果的ios手持设备,比如iphone,ipad,itouch都是市面上的主流产品,有一定的市场占有率。
该系统硬件条件可行具备开发价值。
3.3.3社会因素可行性
如今社会发展迅速,人们对美食的品位与要求越来越高,舌尖上的中国引领了当代美食文化的进程,促进各地美食文化的发展与传承。
家庭主妇们都希望能在家里烹饪出和电视上一样的美食,即健康卫生又经济实惠。
所以本款软件为家庭主妇们提供了详细的制作流程,使烹饪美食变得简单,且可随时随地进行,不受地点的限制。
虽然市面上相关的软件数目巨大,但往往不够新颖,能在手机上运行的就更少,所以需要开发全新的软件,满足广大手机用户的需求;
本程序界面清晰、简单易用,具备高亲和力的唯美界面和偏好设置功能,符合男女老少各个年龄段的人群。
3.3.4市场因素可行性
按照目前市场情形,越来越多的移动开发者涌进iOS开发领域。
iOS平台上应用软件,AppStore的支付模式更为成熟而且有监管,另外iOS的兼容性问题小,开发人员不用考虑太多的配置兼容问题,美观大方的外形,更是吸引了大量的用户。
而且其良好的用户体验,都为iOS的发展奠定了良好的基础。
该ios美食食谱系统实现了多种功能来满足不同的用户需求。
3.4总体设计
3.4.1系统结构
该软件从大体上是由四个大模块组成的,首先最底层的是一个自定义的UITabBarController,管理了4个UINavigationController,每一个导航控制器又管理了自己的子视图控制器.子视图控制器中又有自己的自视图控制器,且相互之间可以跳转。
该系统的体系结构是完全基于mvc模式的,采用了arc进行了内存管理,每个视图控制器都是在层次结构上创建的,这就体现了继承关系,子视图控制器继承了父试图控制器。
体现了面向对象的继承关系。
该系统的体系结构如图3-3所示。
IndexViewController
SubjectViewController
UIViewCo