基于iOS的手机应用开发去哪吃的设计与实现.docx

上传人:b****4 文档编号:3387822 上传时间:2022-11-22 格式:DOCX 页数:23 大小:345.18KB
下载 相关 举报
基于iOS的手机应用开发去哪吃的设计与实现.docx_第1页
第1页 / 共23页
基于iOS的手机应用开发去哪吃的设计与实现.docx_第2页
第2页 / 共23页
基于iOS的手机应用开发去哪吃的设计与实现.docx_第3页
第3页 / 共23页
基于iOS的手机应用开发去哪吃的设计与实现.docx_第4页
第4页 / 共23页
基于iOS的手机应用开发去哪吃的设计与实现.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

基于iOS的手机应用开发去哪吃的设计与实现.docx

《基于iOS的手机应用开发去哪吃的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于iOS的手机应用开发去哪吃的设计与实现.docx(23页珍藏版)》请在冰豆网上搜索。

基于iOS的手机应用开发去哪吃的设计与实现.docx

基于iOS的手机应用开发去哪吃的设计与实现

 

摘要

中国是一个拥有五千年的饮食文化的大国,随着现在人们的生活方式的转变,饮食已经成为了一种时尚,实时实地地了解身边的美食已经成为一种十分·必要的趋势。

因此,开发设计一款“去哪吃”的手机应用软件具有非常高的实用价值。

“去哪吃”由地图定位功能模块、商业菜系模块、美食专辑模块、美食分享模块、好友动态模块等五大模块组成。

商业菜系模块罗列出了所有的商业酒店菜系信息;美食专辑模块展现不同地区的美食信息;美食分享模块分享自己喜欢的美食;好友动态模块实现实时查看好友的动态。

本文设计的“去哪吃”产品,通过手机可随时掌握、了解和发现身边的美食信息。

通过测试后本系统能够稳定运行,实现了设计的所有功能。

【关键词】美食搜索;移动互联;iOS

DesignandImplementationof"WheretoEat"BasedonIOSMobile

Abstract

Chineseisafivethousandyearsoffoodcultureofthecountry,aspeoplelifestylechanges,diethasbecomeakindoffashion,realtimetoknowFoodhasbecomeanecessarytrend.Therefore,thedevelopmentofthedesignofa"wheretoeat"mobilephoneapplicationsoftwarehasveryhighpracticalvalue.

"Wheretoeat"composedofmappositioningmodule,module,Foodcommercialcuisinealbummodule,Foodsharingmodule,thefrienddynamicmodulefivebigmodules.CommercialcuisinemodulelistsinformationallTheCommercialHotelcuisine;FoodalbummoduleshowdifferentregionsoftheFoodinformation;FoodsharingmoduletosharetheirloveoffriendsFood;dynamicmoduletorealizethedynamicreal-timeviewfriends.Inthispaper,thedesignof"wheretoeat"products,themobilephonemayatanytimetograsp,understandandfoundaroundtheFoodinformation.Bytestingthesystemcanrunstably,realizingallthefunctionsofthedesign.

【Keywords】Foodsearch;MobileInternet;iOS

1绪论

现今,人类社会己进入了后互联网时代,科技进步给人类生活带来了巨大的改变,各种方便人们实际应用的产品应运而生,科技产品的不断丰富极大地提高和改善了人们的生活品质,“去哪吃”就是此环境背景下的产物。

本文设计了一个精简版的美食查找应用,可以让人们随时随地了解到身边的美食,同大家一起分享自己因为美食而带来的快乐,更为热爱旅游与美食的人们带去了帮助,让旅途更加欢乐。

1.1“去哪吃”应用概述

1.1.1“去哪吃”应用的定义

“去哪吃”是完全基于用户和好友关系,通过本地活跃的美食用户发布特色美食与攻略,定位自动搜索周边商家信息,给力的美食试吃,时时掌握身边的美食动态,同时间一起享受生活,为大众解决‘去哪吃,最好吃’等个性、精准所需的美食分享平台。

1.1.2“去哪吃”在中国的发展

好豆网自2009年创办以来,受到了全国百余家媒体广泛的关注与报道,被媒体和业内专家一致公认为中国生活互联网领域的新锐代表,是全球最受欢迎、最为活跃、成长性最好的中文美食社区服务平台。

2012年12月13日,由《IT时代周刊》、IT商业新闻网联合主办的《IT时代周刊》第八届CEO年会在北京凯宾斯基饭店隆重开幕,一场北京地区规模最大、规格最高的IT行业领袖们思想交流与碰撞的盛会由此展开。

围绕“握在掌中的明天”的会议主题,大会还特别评出了各种奖项,其中好豆网凭借其手机应用——“去哪吃”的强大竞争力荣获了2012中国最佳移动应用奖。

2013年年初,好豆网荣获艾瑞“金瑞奖”,在全球移动互联网大会荣获“重新定义移动互联网最佳案例奖”,并受邀参与CCTV2《对话》栏目,共谋移动互联网的发展[1]。

2013年4月,好豆网成为微软全球首选合作伙伴,中国区九大合作伙伴之一。

2013年5月,好豆网获得了全球移动互联网大会“最佳应用案例奖”以及中国互联网年度创新大典“中国饮食服务网站——最佳创新力奖”两项殊荣。

同年9月,“去哪吃”受邀加入Appstore全球推广计划,与苹果官方展开更深层次的合作;2013年12月,好豆网荣获“2013年度上升最快热门网站”殊荣。

1.2“去哪吃”的新趋势

相对于传统的美食网站和应用,“去哪吃”是完全基于用户和好友关系,通过本地活跃的美食用户发布特色美食与攻略,为大众解决‘去哪吃,最好吃’等个性、精准所需的美食分享平台(和手机应用)”[2]。

在“去哪吃”平台上,每个人都是美食内容的建设者,也都是受益者。

而且,作为“去哪吃”的分享用户,还可以享受各种有价值的奖励,尤其是一旦成为认证的核心用户——美食地主,还可以享受美食大礼包、生日红包、免单霸王餐等各种丰厚的荣誉和物质奖励,从某种意义上讲“吃货甚至可以成为一种时尚职业”。

1.3本文研究内容

本文深入分析了课题的背景及意义、iPhone应用的现状和发展趋势。

在此研究基础上对影视手机客户端进行了设计和重构。

本应用主要是借助iphone手机载体向专业的美食交流发布平台,找美食,发美食,寻找附近的商业菜系,时时更新的美食资讯,GPS定位自动搜索周边商家信息的功能。

本文共分6章,主要内容如下:

第1章绪论部分,主要概述去哪吃的定义、发展和未来趋势。

第2章是开发工具介绍。

第3章是功能模块的设计。

第四章详细说明了功能模块的具体实现。

第5章是简述测试过程。

第6章是本文的总结和展望。

2开发平台及相关技术简介

2.1IOS简介

iOS是由苹果公司开发的手持设备操作系统,苹果公司于2007年1月9日的Macworld大会上公布了这个系统,并命名为iPhoneOS,但由于iphoneOS与苹果的MacOSX操作系统一样,并且此系统后来在iPodtouch、iPad以及AppleTV等苹果产品上也广泛应用,所以苹果公司于2010年6月7日WWDC大会上将其改名为IOS,并获得了思科iOS的名称授权[3]。

2010年冬季,苹果公司的iOS操作系统已经占据了全球智能手机操作系统26%的市场份额。

2011年10月4日,苹果公司宣布iOS平台的应用程序已经突破50万个。

随着Andriod开源操作系统的异军突起以及WindowsPhone的发力,iOS市场份额正被一点点的蚕食,但IOS设备的利润率高的惊人,以智能手机为例,iphone的利润额占到整个智能手机利润额的80%,受益于此,苹果的市值也达到了5000亿美元。

iOS并不依赖于传统的鼠标和键盘事件,而是引入了触摸事件,包括滑动、轻触屏幕和图标及按键。

一个触摸事件可以随时发生,也可以和一个或几个附加的触摸事件组合发生。

触摸可以用于检测跟内容的简单交互,拖放对象等,也可以用于检测复杂的手势或交互行为,例如手指合拢和手指分开的手势(例如在照片程序中,用于放大缩小照片)。

此外,iOS移动设备中还内置了加速器,使得旋转iOS设备时,界面也可以得到旋转,这也使得iPhone等便携设备更便于使用。

自3GS开始,iphone装备有陀螺仪,这使得iphone有了重力感应,游戏效果更加的突出。

Iphone手机屏幕的下方是home键,单按回到主界面。

连续按两次回到控制页面,控制页面是一些之前打开过的应用程序,它们处于后台状态,单击可以重新打开,向上轻扫可以关闭该应用程序。

手机顶端有一个Power键,用于唤醒和锁定屏幕,而home键和Power键同事按下是截屏操作。

底部是dock,用户可以放置四个平时最经常使用的应用程序图标。

屏幕最上方是状态栏,也成为电池条,显示一些有关资讯:

如时间、电池电量、讯号强度、网络状态等。

其余的屏幕用于显示当前的应用程序。

启动程序,只需点按该程序的图标,点按屏幕下方的home键即退出应用程序。

Iphone还有推送功能,当第三方软件收到了新的讯息时,苹果公司的服务器将把这些通知推送至iPhone或iPodTouch上(不管它是否正在运行中),用户可以根据自身的需求选择推送消息的显示样式,在设置中也设有开关供用户选择哪些应用程序不需要推送通知,哪些应用程序需要推送通知,极其人性化。

2.2开发语言Objective-C

Objective-C,OC语言是C语言的一个超集,只是在C语言的基础上添加了面向对象的思想,Objective-C最开始并不支持垃圾回收,因为垃圾回收有漫长的“死亡时间”,会导致整个系统失去性能。

但自Xcode4.0开始,OC引入了ARC(AutomaticReferenceCounting)自动引用计数机制来管理内存,不需要用户手动管理内存,编译器会在编译期间在合适的位置自动给对象插入retain、release或者autorelease。

2.3开发环境

2.3.1Xcode工具

Xcode是苹果公司提供给开发者用于开发应用程序的一个不开源的集成开发环境,在苹果公司的Mac操作系统下运行。

Xcode支持C、OC、C++等多种语言的混编,支持项目管理、编辑代码、构建可执行程序、代码级调试、代码的版本管理、性能调优等等[2]。

Xcode4支持开发者开发基于iOS的iPad、iPhone、iPodTouch设备的应用程序,这个功能给开发者提供诸多方便,开发者只需编写一套代码就可以移植到苹果的多种设备上,只是需要简单的适配一下屏幕尺寸而已。

Xcode提供友好的页面开发环境,开发者可以通过项目窗口快速访问应用程序的所有元素,组和文件列表管理项目文件,包括了源代码文件和编译后的目标文件。

报错日志可以帮助开发者方便快速的查看报错信息进而快速定位错误信息位置加以解决。

Xcode有一个高级的代码编辑器,它提供代码补全、语法高亮、代码隐藏(临时隐藏代码块),还有错误、警告和说明的内置注释,这给英语基础不是很好的开发者提供了便捷,不用去刻意的记单词,只要打出首字母,Xcode会给你自动补全后面的内容,如果语法错误它还会自动警告并提供警告原因。

Xcode环境中提供了一些默认的设置和用户环境设置。

Xcode搜索助手提供了上下文文档,同时开发者可以在帮助文档窗口中浏览和搜索相关信息。

2.3.2Simulator模拟器

iPhoneSimulator是集成在iPhoneSDK中提供给开发者测试应用程序的一个工具,应用程序在模拟器上运行的效果和在Iphone真机上的运行效果基本相同,只是模拟器没有打电话、发短信、真实定位的一些功能,这样,开发者在开发初期无需使用实际的iPhone/iPodTouch就可以测试应用程序。

iPhoneSimulator不需要开发者手动去启动,应用程序在Xcode上运行的时候模拟器会自动开启。

Xcode会自动将应用程序安装到iPhoneSimulator上[3]。

开发者在Xcode上创建的应用程序,在运行时需要选择iPhone模拟器还有设备。

iPhoneSimulator提供给开发者一个本地的应用测试环境。

应用程序在iPhone模拟器通过测试后,可以用Xcode编译并运行到与计算机相连接的iPhone上(先要下载证书授权真机)。

应用程序的运行效果最后都以真机为主,Xcode可以在设备测试时用内置的调试器跟踪代码。

2.3.3InterfaceBuilder

InterfaceBuilder是Mac操作系统下一个不开源的用于设计用户界面的应用程序,在iPhoneSDK中提供的。

使用InterfaceBuilder创建应用程序图形用户界面,可以节约大量短时间,不需要手工编写代码创建、设置和定位界面对象,它是一个可视编辑器,程序员可以在运行程序前直观的看到程序在运行时的界面效果。

2.4应用程序框架

MVC(模型-视图-控制器)是XeroxPARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式,MVC设计模式至今已被广泛使用[4]。

近年来被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的IOS和PHP的开发者的欢迎。

2.4.1模型

模型是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据。

2.4.2视图

视图是应用程序中处理数据显示的部分,是用户能够看到并与之交互的界面,通常视图是依据模型数据创建的。

2.4.3控制器

控制器对象是应用程序的视图对象和模型对象之间的协调者。

通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

 

图2-1MVC模式设计

MVC的核心是多个视图能共享一个模型,从而减少代码的重复性。

模型层与视图层和控制器层是相互分离的,改变三个部分中的任意一个,都不会影响到另外两个,也就是说如果一个应用程序有多个业务需求,开发者不需要去重新创建模型和控制器的代码,只需要新建视图即可,模型层可以包含某个视图没有用到的元素,但是必须包含多个视图合起来用到的所有元素,也就是说模型层的元素在视图层可以根据业务需求不展示出来,但是视图层展示出来的元素一定要在模型层中有相应的数据元素与之对应。

MVC设计模式与数据结构无关,数据可能用不同的方式来表示,如HTML,WAP等,开发者不需要去修改模型层和控制器的代码,只需要改变视图层的实现方式,就能展示给用户不同的界面[5]。

这样极大的提高了代码的重用性,大大的降低了代码的耦合性,部署特别快,可维护性特别高,有利于软件工程化管理。

本设计也大量用到了MVC设计模式,如电影页面、Top250页面以及影院页面。

这样一来,我就可以根据不同的用户需求而共用某个模型创建不同的视图去展示,减少了很多繁琐的操作,提高了我的编码效率。

2.5第三方类库

2.5.1网络工具

ASIHTTPReques该工具由三方提供,在网络方面有这很强大的功能,将复杂的网络请求集成成简单的接口,可以用于同步、异步网络请求、下载、上传二进制文件等;具体作用[6]:

(1)通过简单的接口,即可完成向服务端提交数据和从服务端获取数据的工作;

(2)下载的数据,可存储到内存中或直接存储到磁盘中;

(3)能上传本地文件到服务端;

(4)可以请求并返回HTTP头信息的访问和操作方便;

(5)能够获得到上传或下载的进度消息,为应用程序提供更好的体验;

(6)支持上传或下载队列,并且可获取队列的进度信息;

(7)支持Cookie;

(8)当应用(iOS4+)在后台运行时,请求可以继续运行;

(9)支持GZIP压缩数据;

(10)内置的ASIDownloadCache类,可以缓存请求返回的数据,这样即使没有网络也可以返回已经缓存的数据结果[7];

(11)ASIWebPageRequest–可以下载完整的网页,包括包含的网页、样式表、脚本等资源文件,并显示在UIWebView/WebView中。

(12)支持客户端证书;

(13)支持通过代理发起Http请求;

(14)支持带宽限制。

在iOS平台,能够按照目前网络情况来自动决定是否限制带宽,比方当使用WWAN(GPRS/Edge/3G)网络时限制,而当使用WIFI时不做任何限制;

(15)支持断点续传;

(16)支持同步和异步请求;

JSONKit:

该第三发框架,用户数据解析,可以将网络获取的数据解析出来,还原成原来服务器提供的格式,当然,这样的工具还有SBJson等一些工具,但是根据自己的熟练程度,最终我还是选择了JSONKit这个解析工具;

2.5.2SDWebImage

这个框架属于开发必备的框架,一个性能很好、接口很好用的图片缓存工具,在SDWebImage工具中,它会优先调用本地的图片,查看本地是否有缓存,这样就很有效的避免了重复请求、下载图片,可以节省用户的流量,和增加用户的体验效果;

2.5.3efreshTableHeaderView

该框架用户下拉刷新,比如一个页面以表格视图展示数据的时候,用户从网络端更新视图上展示的数据时,可以再顶部添加一个刷新按钮,但是正如大家所知,手机屏幕尺寸有限,在上面添加一个这样的按钮,会减少数据的展示量,使用RefreshTableHeaderView框架,就很好的解决了这个功能。

2.6本章小结

本章主要介绍本设计所用到的开发工具Xcode,介绍了Ios开发常用的几种设计模式,并对MVC设计模式进行了深入的剖析,最后简单介绍了一下本设计用到的一部分开源框架。

3系统详细设计

3.1需求分析

“去哪吃”美食系统需要在进入系统的时候开启地图定位,获取到当前用户位置。

首页有四个小模块,分别是广告位、商业菜系、美食专辑和附近美食,每一个小模块都是根据当前位置来展示信息,同时可以通过城市选择按钮选择你想要了解的城市的美食信息。

当想要进入动态页的时候,首先需要判断是否登录,登录成功后跳转到动态页,否则重新登录。

美食分享页,添加美食图片,评论的等级以及你的评价,当点击上传时候发表评论。

个人中心页,需要先进行登录判断,如果在其它页面已经登录成功过,则直接进入个人中心页面,否则重新登录。

更多页面,是对应用的设置页面。

3.2详细设计

根据需求分析与调查结果设计,将“去哪吃”分为首页、动态页、个人中心、美食分享与更多五个模块,其中各个模块及其包括的具体功能子模块如图3-1所示。

图3-1系统结构

3.2.1首页

(1)首页功能描述

首页内容的组成:

城市选择按钮、轮播图、三个按钮。

城市选择按钮是有定位当前城市获取城市名称进行展示,也可以点击页面进入城市选择页选择想要的城市,通过城市选择刷新首页内容。

轮播图是由一个图像视图、一个提示视图和名称标签。

图像视图展示当前比较好美食图片,提示视图是通过自定义封装的,可以对背景颜色以及对提示点进行改变,提示你当前所在页面,名称标签是当前美食的名称,点击图像视图可以通过加载一个webview显示选中的图像视图的具体内容。

三个按钮分别是附近美食按钮、商业菜系按钮、美食专辑按钮,点击附近美食按钮进入附近美食页面,附近美食页由一个列表视图实现,每个自定义的cell含店铺的名称、位置、消费额度以及店内美食图片,点击每一个cell进入对应店铺页内含地图展示以及电话联系。

商业菜系页分热门菜系与分类两个部分展示各类不同口味的美食。

美食专辑页则是对对应城市的特别美食的介绍,是由美食图片、名称以及简介组成。

(2)首页的设计思路

界面的布局:

在XIB上面添加一个320*300的UIView视图作为轮播视图的背景视图,在View上面添加上添加一个UIScrollView视图作为轮播视图,一个UIlabel作为名称视图。

业务逻辑:

项目启动的时候首先会通过地图定位获取到当前的坐标经纬度,对坐标进行反编码得到当前所在城市的名字,将城市名字通过block语法传到首页,以城市的名字作为字典的key获取字典的value值也就是城市的id,将id传入接口获得首页所需要的数据,将数据解析添加到视图上

3.2.2动态页

(1)功能描述

动态页的组成:

刷新按钮、好友动态列表。

刷新按钮可以更新好友动态列表,展示当前最新的好友动态。

好友列表是你所关注的所有好友的集合,每一个列都是由头像、用户名、美食图片、美食介绍、发表的时间组成,对应的用户列表可以让你欣赏到好友所发表美食的大图,而且还有这道美食所在的餐馆的具体位置以及联系方式,同样你可以通过查看具体位置而在地图上显示你的当前位置与美食餐馆的位置。

好友头像可以让你进入好友的空间页面。

(2)设计思路

界面布局:

在控制器的视图上面添加一个UITableView列表视图,自定义封装列表视图里面的内容,先添加一个UIview作为背景视图,在view添加一个30*30的UIImageView作为头像视图,添加五个label按要求布好句作为内容和标签的显示视图,通过-(id)initWithStyle:

(UITableViewCellStyle)stylereuseIdentifier:

(NSString*)reuseIdentifier加载到UITableView上

业务逻辑:

要进入动态页需要先登录,登录成功后会获取一个用户的私人id通过id请求网络获取到数据进行展示。

当进入动态详情页会将一级页面的数据进行筛选处理然后通过点语法保存传到二级页面,在二级页面进行展示,通过获取到的经纬度,调用MapView来做地图定位。

3.2.3美食分享页

(1)功能描述

美食分享页的组成:

图片选择、口味评价、餐馆名称、美食名称、评论。

图片选择有两种途径,一是通过直接进入手机相册库来选着你想要的发表的美食。

二是通过拍照,拍照可以让你实时实地的上传你所喜欢的美食。

口味评价是你对当前美食的评分,分五个级别,你可以对你喜欢的美食进行评分。

评论是你自己所发表一些美食的的感悟,分享你的心情。

(2)设计思路

通过调用系统的方法可以打开系统相册或相机(需要真机),选择相片通过代理方法将选中的相片显示在事先定义好的UIImageView上面。

口味评价通过for语句循环遍历五个button当点击button的时候为button添加一个图片,通过取反的思想当再次点击的时候就隐藏图片。

评论是一个UITextField控件,点击时候会通过代理方法调用出来键盘,同时底部视图会上移一定距离,上移的过程中对其添加了动画,再次点击的时候让键盘对象失去第一响应者隐藏键盘,

将你输入内容作为参数通过接口上传到服务器。

3.2.4豆窝页

(1)功能描述

豆窝页的组成:

用户头像、所在地、豆币、分享的美食。

豆窝页是个人的动态页,里面包含了个人的所有信息,在这里面你可以查看以前所发表过的美食来细细回味曾经的那种感觉,也可以查看你的粉丝数以及你所收藏的美食,还有你曾经编辑未完成的发表信息,总之豆窝就是你的个人的美食之家,这里面有你的所有动态,同时,你也可以同样查看到你所关注的好友的一些动态。

(2)设计思路

在控制器的视图上面添加一个UITableView列表视图,自定义封装一个视图,在自定的视图上添加ImagView、Label、Button按照要求进行布局,将自定义封装的视图做一个UitableView的头部视图添加到tableview上,可以实现滑动的效果,视图布局完成后通过用户的id请求网路获取json数据,解析数据对数据内的一维数组进行二维数组的转换,获取的粉丝数据是一个很大的数通过类型转换处理后保存数据然后进行加载展示。

3.3登录的流程设计

自定义的登陆与注册页面,在注册页面你需要输

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1